Hallo, ich habe ein 2-Kanal ADC integriert in einem msp430 uC. Ich moechte die output Daten davon via UART zu einem anderen chip uebertragen, der eine USB Schnittstelle hat, und dann weiter zum PC. Meine Abtasfrequenz ist 27kHz, und habe 2 kanaele die jede 1/27khz=37us 2Bytes ausgeben, d.h. jede 37us habe ich in Summe 4 Bytes. Um die 4Bytes waehrend der Wandlungszeit des naechsten Samples zu uebertragen brauche ich eine Baudrate von ca. 1040kBd. Das ist aber zu hoch! Mein chip kann max 921,6kBd. Ich wollte eigentlich die Daten vom ADC ueber USB zum rechner uebertragen und dort realzeit vizualisieren... Gibt es einen Trick wie ich jetzt bei dieser Situation umgehen kann?
Der msp430 scheint ja nur einen 12bit ADC zu haben, weshalb du die Messungen durch Bitoperationen zusammenfassen kannst. Dann sparst du auch wieder ein ganzes Byte bei jeder Übertragung.
ein Gast schrieb: > Der msp430 scheint ja nur einen 12bit ADC zu haben Eigentlich mein chip hat einen SD 16 bit. Aber da ich einen relativ niedrigen OSR benutze, habe ich letzztendlich effektiv nur 12 bits. Soll ich die 4 unteren bits durch shift rausnehmen? Und dem entsprechen habe ich bei jedem Kanal 1,5 Byte. Also wie kann ich dann spaeter wissen, welches byte gehoert zu welchem Kanal?
Genau, du löscht die unwichtigsten Bits und schreibst dort einen Teil des nächsten Messwertes rein. Du kannst vor der Übertragung einmal durch ein paar Extrabytes oder so mitteilen, dass du jetzt anfangen möchtest. Wenn es danach nicht zu Fehlern kommt wird das wohl auch gehen. Ansonsten kannst du ja alle 1000 Messungen oder so einen Wert wegwerfen und dafür ein Synchronisationsbyte übertragen, zum Beispiel den größten den es gibt, welcher vermutlich nicht in den Messdaten vorkommen wird.
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.