MSP430G2230 Test und RST Pin als UART möglich?

Gast #4373317
Lesenswert?

Hallo Leute,

ich habe den MSP430G2230. Dieser misst Temperatur über einen Sensor.

Da ist eine LED und ein Taster ebenfalls dran. Möchte aber über eine 
UART Verbindung die Temperatur auslesen.

Ich habe hier ab und zu mal was von one wire Uart gelesen.

Die PINS: - RST - TEST - P1.6 (Pin4) sind frei.


Wie kann ich eine UART Verbindung mit dem MSP430G2230 herstellen?

Über Tipps und  Hilfe würde ich mich freuen.


MFG
#4373412
Lesenswert?

Hallo,

der 2230 hat kein Hardware-UART. Über Software ließe sich das 
wahrscheinlich trotzdem lösen, allerdings benötigst du dafür 2 I/O.

Leider hast du nur einen I/O (P1.6) frei. RST und TEST kannst du nicht 
nutzen.

Wie ließt du den Sensor aus? Wofür sind LED und Taster? Kann man da was 
wegrationalisieren?
Persönliche Seite #4373439
Lesenswert?

Nikolaus030 schrieb:
> ... hier ab und zu mal was von one wire Uart gelesen.

Das ist die Debugschnittstelle SBW, über die der Controller JTAG-artig 
u.a. programmiert werden kann. Per Software lässt sich die dafür 
verwendete Hardware im Controller nicht nutzen.

Du wirst entweder eine Software-UART (per Bitbanging) verwenden müssen, 
oder statt des 'G2230 den 'G2553 verwenden. Der nämlich hat eine 
Hardware-UART; ab der Revision 1.5 des Launchpads wird von TI auch einer 
mitgeliefert.
Gast #4373443
Lesenswert?

Hallo

danke erstmal für die Antwort :D.

Also Schaltbild

//                    MSP430G2230
//             -------------------------
//         + -|VCC     (1)  (8)     VSS|- -
//      LED <-|P1.2    (2)  (7)    TEST|-X
//      TMP ->|P1.5    (3)  (6)     RST|-X
//      Frei -|P1.6/A5 (4)  (5)    P1.7|-Taster
//

Programm läuft so ab :

Der mC geht wacht jede Minute auf und prüft ob der Taster gedrückt 
worden ist. Ist der gedrückt, liest er den Temperatursensor ein und 
speichert diesen im FLASH. Die LED Signalisiert ob geschrieben wurde 
oder der FLASH voll ist.

Möchte nun die Werte über UART auslesen.

Hat jemand ne IDEE???

Rufus Τ. F. schrieb:
> Du wirst entweder eine Software-UART (per Bitbanging) verwenden müssen,
> oder statt des 'G2230 den 'G2553 verwenden. Der nämlich hat eine
> Hardware-UART; ab der Revision 1.5 des Launchpads wird von TI auch einer
> mitgeliefert.

Leider kann ich nicht auf einen anderen Chip ausweichen. :(
#4373451
Lesenswert?

(Edit)
1.6 an Pin4 ist ja frei, den nimmst als TX für einen Software-UART.
Einfach zyklisch Sensordaten raushauen.
Oder wenn echtes Protokoll gewünscht, dann widmest RST als NMI um und 
hast einen RX.
Software-UART-Implementierungen findest im Netz.

Wenn du RST nicht anpacken willst, könntest etvl. auch eine 
Doppelnutzung vom Sensorpin mit der LED oder dem Taster machen, dann 
hast noch einen Pin für UART RX frei. Müsste man deine Schaltung besser 
kennen.

Oder du nutzt UART TX und LED zusammen. Z.B. indem du zwischen dem 
intervallartigen Senden von Daten Sequenzen ohne Daten sendest, die nur 
dazu dienen, die LED leuchten oder erlöschen zu lassen. 1.6 dann als RX.

Viele Wege führen nach Rom...
Gast #4373465
Lesenswert?

Sönke P. schrieb:
> RST/NMI kannst du nur als Inputpin nutzen. Kannst nicht da den Taster
> dranhängen, dann hättest du den ehemaligen Taster-Pin frei, um den als
> TX für Software-UART zu nutzen, der könnte ja einfach die Werte in
> Intervallen senden, die Gegenstelle empfängt, bzw. verwirft dann
> entsprechend.


Also wenn das geht dann wäre das super dann würde ich den Taster daran 
bringen aber wie? Ich nutze diese Verbindung um den mC über das 
Launchpad zu programmieren.

Sönke P. schrieb:
> Evtl. kannst auch eine Doppelnutzung vom Sensorpin mit der LED oder dem
> Taster machen, dann hast noch einen Pin für UART RX frei. Müsste man
> deine Schaltung besser kennen.
>
> Oder du nutzt UART TX und LED zusammen. Z.B. indem du zwischen dem
> intervallartigen Senden von Daten Sequenzen ohne Daten sendest, die nur
> dazu dienen, die LED leuchten oder erlöschen zu lassen.


Meine Schaltung habe ich  hier nochmal Abgebildet :

//                    MSP430G2230
//             -------------------------
//         + -|VCC     (1)  (8)     VSS|- -
//      LED <-|P1.2    (2)  (7)    TEST|-X
//      TMP ->|P1.5    (3)  (6)     RST|-X
//      Frei -|P1.6/A5 (4)  (5)    P1.7|-Taster
//

LED mit Vorwiederstand und  Taster im PULLUP Mode.

Könntest du mir nen Beispiel geben ??
#4373755
Lesenswert?

Nikolaus030 schrieb:
> Also wenn das geht dann wäre das super dann würde ich den Taster daran
> bringen aber wie?

Hardwaremäßig hast ja an RST/NMI einen Pullup-Widerstand (beispielsweise 
47k) nach VCC und ggf. noch einen kleinen Kondensator (1nF) nach VSS. 
Den Taster würdest dann vom Pin nach VSS machen.
Im WDTCTL Register konfigurierst du dann NMI (ist ja so, dass nach jedem 
Reset der RST Pin zunächst als solcher funktioniert, also der µC im 
Reset bleibt, solange der low ist).
Schau mal als Beispiel in 
http://www.43oh.com/wp-content/uploads/2010/11/MSP430_reset_nmi_pin_as_input.c

Der Nachteil soll aber nicht verschwiegen werden: Debugging wird 
schwieriger.

Deshalb - wie schon gesagt: am einfachsten nur TX per Software-Uart 
auf dem noch freien Pin machen und ganz stumpf die Temperaturdaten 
rausbrüllen.



PS:
Andere "Pinsparmöglichkeiten" wie LED und Taster an einem Port 
(Stichworte: Spannungsteiler, LED schalten per MOSFET mit V_th > 
V_µC_high) sind mit Schaltungsaufwand verbunden oder bringen andere 
Nachteile (z.B. Taster teilt sich den analogen Eingang mit dem 
Tempsensor --> Auflösung wird geringer).
Gast #4374447
Lesenswert?

Danke leute :D

ich habe das jetzt mittels Software UART gelöst.

Mal ne frage :

ich benutze den VLO als Takt. Für UART aber kriege ich den nur mit 1MHZ 
zum laufen. Kann sowas machen, dass der Taster bestimmt welchen Takt der 
Controller nimmt. Kann man überhaupt den Takt im Betrieb ändern wie es 
einen mag?
Gast #4374628
Lesenswert?

Wie würde das aussehen?

Ich lese einen Wert ein dann lege ich den MSP für ca 1 Minute schlafen. 
Wenn ein Taster jetzt betätigt wurde, geht er in den UART Modus. Dort 
wird der Takt und der Timer verändert?
Persönliche Seite #4375233
Lesenswert?

Ja. Du kannst nach dem Aufwachen aus dem LPM die Takterzeugung 
umprogrammieren, so, wie Du es schließlich auch nach dem POR machst. Und 
bevor Du den Controller nach getaner Arbeit wieder in den LPM schickst, 
kannst Du wieder die Takterzeugung umprogrammieren.

Du musst nur berücksichtigen, daß die jeweiligen Taktgeneratoren eine 
gewisse Zeit benötigen, bis sie stabil angeschwungen sind, aber das 
macht die in praktisch jedem Codebeispiel von TI enthaltene 
Initialisierungsroutine, egal, ob für den DCO oder die 
Quarzoszillatoren. Sobald der Takt stabil ist, kannst Du ihn für die 
UART-Ansteuerung verwenden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren