www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Problem mit MSP430 und LM9830 SPP (MasterMode)


Autor: Benedikt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich verwende einen MSP430 über UART verbunden mit dem LMX9830,
Hardware aufbau ist eigenbau und funktioniert, getestet mit Verbindung 
vom PC über BT-Dongle, der PC erkennt den LMX und ich kann auch eine SPP 
verbindung aufbauen und Daten hin und her schicken.

mein problem ist nun das ich gerne mittels MSP Eintellungen am LMX 
machen würde, und das nicht funktioniert.

dies sollte eigentlich funktionieren wenn keine BT verbindung offen ist 
und der MSP einen UART-BREAK schickt dann sollte der LMX doch in den 
CommandMode schalten oder?

und dann kann man mittes LMX-Protokoll CommandBefehle absetzen oder?

ich würde gerne eine Verbindung zurück zum PC aufbauen einfach nur über 
CreateSPPLink mit fixem COMports und BT-Addresse

mein vorgehen:
1.) es ist keine Verbindung offen
2.) senden von einem UART-Break (Code weiter unten beschrieben)
3.) CreateSPPLink Commando 02|52|0A|08|00|64|01|.......|03 senden
4.) Auf Antworten warten (EstablihLinkConfirm, PortStatusChange, 
LinkEstablihedIndicator)
5.) Antworten auswerten
6.) bei erfolg in TransparentMode wechseln
7.) Kommunizieren

Verhalten:
nachdem ich den uart-break gesendet habe ist die BT-Verbindung (sollte 
eine offen gewesen sein nicht mehr erreichbar aber die verbindung bricht 
nicht ab) da so nehme ich an in den CommandMode geschalten wurde?
wenn ich nun ein CreateSPPLink Commando abschicke wird keine antwort vom 
LMX generiert

wenn keine Verbundung besteht und ich einen UART-Break auslöse und 
danach ein CreateSPPLink schicke wird ebenfalls keine antwort vom LMX 
generiert.

mein source für den UART-Break:
void sendUartBreak()
{
  unsigned int i;
  unsigned char c;
  dint(); //interrupts aus
  ME2&= ~UTXEO; //TX interrupt aus
  ME2&= ~URXE0; //RX interrupt aus
  P3SEL&= ~0x30; //TX und RX prots auf IOs
  P3DIR|= 0x10; //TX IO auf ausgang
  P3OUT&= ~0x10; //TX IO auf 0
  for(i=0; i<56535; i++) for(c=0; c<10; c++) //Wait
    WDTCTL=WDTPW+WDTCNTCL; //clear WDT
  initRS232(); //UART wieder initialisieren
}

Wo habe ich einen Fehler gemacht? ich hoffe auf eure antworten

mfg Benedikt

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.