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?
Die UART an sich kann nur 1 Byte puffern. Da muss dein Programm eben die Daten per Interrupt abholen und in einen Puffer schreiben.
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.
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.
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.
die sache mit dem handshake wäre genau das richtige... dann werd ich mal das datenblatt danach durchsuchen :)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.