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
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
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.
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
Eine eigene Frage?
Dieser Thread ist über 21 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.