Forum: Mikrocontroller und Digitale Elektronik MSP430 EZ2500 Uart Puffer


von Michael (Gast)


Lesenswert?

hallo,
mein msp soll über uart daten empfangen und über die rf schnittstelle zu 
einem anderen msp senden. das senden dauert relative lange. was passiert 
mit daten, die während des sendevorgangs an uart ankommen? gibt es da 
einen puffer oder gehen die daten dann verloren?

von Christian R. (supachris)


Lesenswert?

Die UART an sich kann nur 1 Byte puffern. Da muss dein Programm eben die 
Daten per Interrupt abholen und in einen Puffer schreiben.

von MSP (Gast)


Lesenswert?

Hatte der MSP keinen DMA-Kanal für genau solche Sachen ???

von Michael (Gast)


Lesenswert?

ok das heißt also wenn ich die daten nicht rechtzeitig abhole werden sie 
von neuen überschrieben.
oder teilt der msp dem sender mit, wenn sein empfangspuffer nicht 
geleert wurde? da gibts irgendwein signal, welches zur flusskontrolle 
gesetzt wird bei seriellen übertragungen... weiß leider nicht ob das 
auch bei dem msp zum einsatz kommt.

von Jörg S. (joerg-s)


Lesenswert?

In Hardware gibt's keine Flusskontrolle. Sowas müsstest du auch per 
Interrupt und Portpin machen. Ist natürlich sinnlos weil man dann im 
Interrupt auch gleich die Daten verarbeiten könnte.

von Christian R. (supachris)


Lesenswert?

Die größeren MSP430 haben 3 DMA Kanäle, die sich wunderbar dafür eignen. 
Allerdings muss man dann genau wissen, wieviele Bytes jedes mal kommen, 
sonst endet der DMA-Transfer nie. Ich weiß aber nicht, ob der kleine MSP 
auf dem eZ Board auch DMA kann. Aber das abholen per Int ist doch kein 
Thema. ich habe eine ähnliche Anwendung: MSP430 mit CC2420 als 
Netzwerk-Koordinator am PC. Die Daten vom PC kommen mit 460kBaud am MSP 
an, werden dann über den Transceiver geschickt. Geht wunderbar, ich 
setze halt den Hardware-Handshake ein, wenn ich die Daten vom PC 
bekommen hab, und die Sende-Routine zum CC2420 kommt erst zurück, wenn 
die Nachricht am Empfänger angekommen ist. Erst dann geb ich das 
Handshake wieder frei, übermittle dem PC das Ergebnis der Übertragung, 
und der PC darf erneut senden.

von Michael (Gast)


Lesenswert?

die sache mit dem handshake wäre genau das richtige... dann werd ich mal 
das datenblatt danach durchsuchen :)

von Christian R. (supachris)


Lesenswert?

Im Datenblatt findest du garantiert nix dazu. Das musst du in deinem 
Programm selber machen. Einfach einen I/O Pin benutzen.

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
Noch kein Account? Hier anmelden.