Hallo zusammen, für ein kleines vorweihnachtliches Projekt suche ich gerade nach einer Möglichkeit, Daten über ein Audiokabel zu senden. Wichtig ist hierbei, dass die Daten tatsächlich als Audiosignal kodiert sein müssen, da sie von einem Audioplugin einer DAW generiert werden. Der Rückweg vom AVR zur DAW geschieht dann ebenfalls auf diese Weise. Meine bisherigen Überlegungen haben mich auf das Verfahren der "Frequenzumabtastung" gebracht, wie es auch bei den alten analogen Modems verwendet wurde. Problem hierbei ist, dass ich nicht weiß, wie ich mit einem ATmega8@16MHz solch ein Signal zuverlässig abtasten soll bzw. wie ich es schnell genug generiere. Hat da jemand eventuell Erfahrungen oder Ideen? Viele Grüße und einen schönen Restnikolausabend trakuna
Um welche Datenmengen geht es denn? Wenn es nur wenige Bytes sind, ist DTMF eine Option. Dafür gibts fertige Chips: http://www.hestore.hu/files/mt8880.pdf Wenn Du Dich entschließen könntest, Deinen Atmega8 gegen einen dsPIC33F (gibts auch im 28 SDIP) einzutauschen, geht das auch in Software: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2680&dDocName=en536955 Dann kannst Du aber auch ein Softmodem bei Dir einbauen. Microchip hat auch dafür fertige Bibliotheken: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en023590 Mit 40 MHz, 16 Bit und einer extra 56 Bit DSP-Einheit bekommst Du da halt deutlich mehr Leistung fürs gleiche Geld. fchk
Was hat die "Deutsche Abfallwirtschaft" mit vorweihnachtlichen Projekten zu tun? Spaß beiseite: Wenn es nur um ein-zwei Bytes mit genügend langsamer Übertragung (sagen wir mal 300 Bd) geht, kann so ein AVR-Komparator-Eingang in Zusammenarbeit mit einem Timer die Sache erledigen.
Mit dem comperator des AVR kann man bestimmt gut Nulldurchgänge zählen und auch die Zeit zw. Zwei nulldurchgänge bestimmen. Ein Code mit 4 Frequenzen bis 20 kHz sollte der AVR mühelos auswerten können. Ebenso sollte er einen solchen Code erzeugen können. Ggf. Einfach ein Filter hinter einem Ausgang schalten und auf die Leitung geben.
guckstdu hier Beitrag "AudioBootloader für AVR" Beitrag "SOUNDRX - Datenübertragung/Bootloader PC -> µC über PC-Soundkarte"
kopfkratz Welche Frequenz und welche Modulation ? Frage nach Datenmenge wurde schon genannt. Ich würde FM Modulation bevorzugen und z.B. via PWM das Signal generieren und da ich nicht weiß was DAW bedeutet kann ich nur raten und Dir den ADC als Eingangsquelle nennen.
Da können wir jetzt noch viele Vorschläge machen. Wenn der TO nicht sagt, wieviel Daten er in welcher Zeit austauschen möchte, ist das vergebeliche Mühe...
Vielen Dank für eure Antworten. Die Datenrate kann ziemlich gering sein, round about 50 Bytes/Sek. sollten reichen. Ich habe mir das SoundRX-Projekt angesehen und würde zumindest die Komparatorschaltung mit dem LM358 nutzen. Eine entsprechende Software, die ich dann nach erstem Überfliegen nur noch in kleinen Details anpassen müsste, gibt es hier: http://arms22.googlecode.com/files/SoftModem-005.zip Die Frequenzen wären bei dem Projekt 4900 Hz (LOW) bzw. 7350 Hz (HIGH). Baudrate liegt bei 1225 Baud. Oh, für das Projekt soll ein Arduino Leonardo benutzt werden, das wäre evtl. noch erwähnenswert. Wenn alles läuft, route ich eine eigenständige Platine dafür, aber zum prototypen muss das erstmal reichen...
So ein Tipp aus der Ecke: Steinberg's Wavelab kann aus einer Folge ein DTMF Signal als WAVE generieren. Hilft gfs.
> Die Frequenzen wären bei dem Projekt 4900 Hz (LOW) bzw. > 7350 Hz (HIGH). > Baudrate liegt bei 1225 Baud. Ein LOW-Bit = 4 * 204 µs - Perioden Ein HIGH-Bit = 6 * 136 µs - Perioden Das ist mit einem Mega8 machbar: Audiosignal über ein C an einen Analog-Comparator-Eingang, beide Analog-Comparator-Eingänge über Widerstände mit der halben Betriebsspannung verbinden. Analog-Comparator-Interrupt auf z.B. negative Flanke. Im Interrupt einen Zähler auslesen und den Zähler wieder auf Null setzen. Aus der Abfolge der Zählerstände lässt sich der serielle Signalverlauf wieder zusammensetzen.
trakuna schrieb: > für ein kleines vorweihnachtliches Projekt suche ich gerade nach einer > Möglichkeit, Daten über ein Audiokabel zu senden. Wichtig ist hierbei, > dass die Daten tatsächlich als Audiosignal kodiert sein müssen Nun ja, wenn das Audiokabel genug Bandbreite bietet, um auch den nahen Ultraschallbereich noch zu übertragen, ist das eigentlich kein großes Problem. Da nimmt man z.B. ca. 17kHz und 19kHz als Träger für die Daten. Die tastet man im Wechsel, also z.B. 0-Bit->17Khz, 1-Bit->19kHz. Auf Senderseite kostet das nur einen Timer im Fast-PWM-Mode mit Top=ICR oder OCRxA und eine ISR für die Zykluszeit, die jeweils den Timer-Top aktualisiert. Und ein wenig primitive Hardware zu Addition des Datensignals mit dem Audiosignal. Beim Empfänger hat man die Wahl, ob man die Dekodierung in Software erledigt oder Hardware dafür bemüht. Decodierung in Software geht mit einer Goertzelbank mit zwei Kanälen. Durch das Prinzip der Übertragung mit zwei Trägern kann man (bei klug gewählten exakten Trägerfrequenzen) nicht nur ziemlich zweifelsfrei feststellen, ob überhaupt ein Datensignal anliegt, sondern dieses auch noch einfachst decodieren. Allerdings stellt der Filter schon eine relativ hohe Rechenzeitbelastung dar. Allerdings noch sehr weit weg von wirklich kritischen Werten. Und sie liegt vor allem auch weit unter den Anforderungen einer zuverlässigen DTMF-Übertragung, denn dort muß man eine viel geringere Bandbreite für die Filter erzielen und braucht außerdem mindestens 8, besser 16 Kanäle in der Görtzelbank. Angenehmer Nebeneffekt: Im Unterschied zu DTMF-Gedüdel ist der Ultraschallkram für erwachsene Menschen nicht hörbar. Allenfalls Mischprodukte mit dem Audiosignal könnten hörbar werden. Das kriegt man dann dadurch in den Griff, daß man das Datensignal im Pegel so weit absenkt, wie bei der geforderten Datenrate und Übertragungssicherheit irgend möglich.
Wurde früher als Aufzeichnungsformat bei Homecomputern(VC20 Atari usw.)benutzt,da reichten dann auch 1Mhz Taktfrequenz. Dazu fällt mir dann noch Hypertape ein - Biphasencodierung. mfg
Schau mal in die technischen Unterlagen der Commodore 64 Datasette. Dieser Rechner konnte Programme auf einen Kassettenrekorder speichern und wieder laden. Und das mit nur 1 Mhz Taktfrequenz.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.