Moin! ich muss mir ein kleines MIDI / Seriell Tool bauen, d.h. ich brauche einen Controller mit 2 UARTS (z.B. MEGA128). Soweit kein Problem, allerdings hat die Midischnittstelle 31250 Baud und die serielle soll eben eine Standardbaudrate verwenden. Wie soll ich das nun mit den Quarzen lösen, es gibt keinen Quarz mit dem ich für beide Ports an Baudratenabweichungen um die 0% hinkomme ?! Kann man vielleicht einen 2. Quarz(oszillator) noch irgendwie anhängen ? Im Datenblatt ist das bei "synchronous mode" angedeutet, bin mit aber nicht sicher ob's das ist... MfG Stefan
Geht denn das nicht über einen externen Timer, der einen Port-In füttert und durchgeschleift wird? Das einzige, was dort dann jittert wäre die Reaktion des Prozzis auf den Port, was bei dem 128er von der Geschwindigkeit kein Thema sein sosllte, oder? Die MIDI-Uart wäre dann halt in Software ...
Hi, bei 8,0000 MHz kriegt man die 31250 glatt hin und zum Beispiel 38400 mit einem Fehler von 0,17%. Das funktioniert schon noch :) Viele Grüße PS: Kein Gewähr und so...
Danke Thomas, jo, darauf wirds wohl hinauslaufen müssen... Ist nur die Frage ob ein Fehler von 0,17% wahnsinnig schlimm oder wahnsinnig Banane ist. Naja, bleibt nur testen. Vom Gefühl her sollts aber noch ok sein... Danke, Stefan
Ein Fehler <3% funktioniert zwar, für die Endlösung sollte der Fehler aber <1% liegen, dann hat man eigentlich nie Fehler bei der Übertragung.
Soll denn dieses Adapter nichts anderes machen, als nur PC-Signale auf Midi umsetzen? Dann wäre auch eine Software-UART möglich. Das heißt: Du kannst einen kleineren Controller benutzen, nimmst die eingebaute UART für das MIDI und die Software-UART für den PC.
Uäha, Software UART, genau das wollte ich vermeiden. Von sowas hab ich eine Phobie seit ich auf einem ATTiny26 einen I2C Slave programmieren musste ;-) Und wie gut ist die Ganggenauigkeiten von Software UARTs ? Stefan
Also alles unter 1% ist voll O.K. Brauchst also keine Soft-UART. Ein ATMega162 tuts. Peter
Ein Software-UART ist doch überhaupt nicht tragisch. Wenn man das Ganze Timer-basiert macht, ist er genauso genau wie das Quarz.
Hmm, aber wenn man das so "gut" machen will wie die Hardware UART (siehe Datenblatt, da wird jedes bit 3x gesampelt und so Störspitzen unterdrückt) isses doch ziemliches gewurstel. Werd mir warscheinlich dann einen Mega162 greifen, 8MHz dran, dann stimmt die Midibaudrate haargenau, und die 38k4 gehen um 0,17% daneben. Viel lieber wäre mir 57k6, aber da ist dann der Fehler zu groß, aber 38k4 ist auch ok... Stefan
noch ne Möglichkeit: die SPI-UART von Maxim. Leider etwas teuer, hat mir aber mal ein Design gerettet (Zusatzplatine auf den ISP-Stecker des MC-Boards :-)), nachdem nachträglich weitere Anforderungen kamen. 400 Platinen waren schon komplett bestückt, Kunde war froh, dass die Platinen mit erträglichem Aufwand nutzbar blieben.
Nimm doch ein 12MHz Quarz, dann ist der Fehler bei 57600 Baud 0,16%. Peter
Grummel, Rechnen sollte man können, hatte in meinem Excel Datasheet viele Quarze getestet, aber kurz vor 12 MHz ist was dazwischengekommen ;-) Danke Peter, so isses dann optimal für mich ! Stefan
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.