- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 17

Thema: Problem mit der seriellen Kommunikation Arduino Due und Navilock NL-852ETTL

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.04.2005
    Ort
    Bad Aibling
    Beiträge
    212

    Problem mit der seriellen Kommunikation Arduino Due und Navilock NL-852ETTL

    Hier hatte ich ja gefragt nach welchem GPS-Modul da es jetzt mehr um die Programmierung geht habe ich jetzt diesen Thread eröffnet.

    Da der DUE über mehrere serielle Schnittstellen verfügt habe ich jetzt mal zum Testen ob mein Programm funktioniert einfach die Daten von seriel 0 über seriel 1 zu seriel 2 und wieder zum PC geleitet das funktionert auch. Zum überprüfen habe ich den serellen Monitor der Arduino IDE benutzt.

    So sieht das Programm aus:
    Code:
    void setup()
    {
    // Serielle Schnittstelle initialsieren
      Serial.begin (9600);
      Serial1.begin (9600);
      Serial2.begin (9600);
    }
    
    void loop() 
    {
      if (Serial.available () > 0)
      {
        Serial1.write (Serial.read ());
      }
        
      if (Serial1.available () > 0)
      {
        Serial2.write (Serial1.read ());
      }
      
      if (Serial2.available () > 0)
      {
        Serial.write (Serial2.read ());
      }
      
    }
    Ich habe auch mal gemessen an der TX Leitung vom Navilock Modul das sendet laufend Daten die auch ankommen aber leider nicht in irgendwie verwertbarer Form. Ich habe auch mal versucht die Daten von seriel 1 (Navilock) zu seriel 0 (PC) durchzuleiten und dann die Windowssoftware von ublox zu benutzen um mit dem Modul zu arbeiten. Die ublox Software sagt aber nur das es einen Timout gibt beim lesen von dem Modul.

    Code:
    void setup()
    {
      Serial.begin (38400);
      Serial1.begin (34800);
    }
    
    void loop()
    {
      if (Serial.available () > 0)
      {
        Serial1.write ((char) Serial.read ());
      }
    
      if (Serial1.available () > 0)
      {
        Serial.write ((char) Serial1.read ());
      }
    }
    Hat vielleicht einer eine Idee an was das liegen könnte?

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Bad Bramstedt
    Alter
    45
    Beiträge
    1.369
    Hallo alexander_ro,

    vielleicht ist es ja sinnvoll bei einer Baudrate (wie z B: 9600) mal zu bleiben. Dann ist es vielleicht sinnvoll einfach mal den Aduino auf einer Schnittstelle (Terminal) das empfangene auszugeben - ohne noch über andere Schnittstellen "versuchen" zu leiten.
    Man kann mit einer einzigen Schnittstelle wie TTL-UART (5V -TX/RX) die Daten über RX reinholen und über TX (sofern man z.B. eine virtuelle Com-Schnittstellen hat) an den PC weitergeben, fürs Terminal. Ground nicht vergessen!!
    Sonst mal wirklich nur die Schnittstellen benutzen die man benötigt - 1x USB zum PC und 1x UART zum GPS Modul.
    Zum Testen der Verbindung einfach mal einen "definierten" String (z.B. hallo) aus dem Arduino-Code senden und ansehen obs ankommt. Dann mit dem GPS Modul verscuhen.
    Laut Datenblatt werden die Daten im NMEA-Satz $GPGSA ausgegeben. Man müsste also nicht nur die Schnittstelle auf empfangen Zeichen prüfen, sondern auch anschliessend prüfen welches Zeichen gekommne ist. Den Anfang sollte das "$" Zeichen machen. Ist das angekommen, wird das Anschliessende als String eingelesen, solange bis wieder das $ kommt. Dann Hast du alle Daten zusammen. Jetzt erst kannst Du den String zerlegen und die Daten separieren, umwandeln und weiter damit arbeiten.

    Viele Grüße
    Jörg
    Geändert von HeXPloreR (25.05.2015 um 12:41 Uhr)

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.04.2005
    Ort
    Bad Aibling
    Beiträge
    212
    Ich habe verschiedenen Baud Raten ausprobiert und dann leider vergessen das im Source oben wieder auf den gewünschten Wert einzustellen.

    Das mit dem Loopback nur am Programmierport (serial 0) hatte ich als erstes probiert. Das mit dem weiterleiten über mehrere Schnittstellen war auch nur ein Experiment um auszuschließen das es am Arduino (seriel 1 od. 2) oder dem Programm liegt. Beide Varianten funktionieren einwandfrei.

    Das zweite Programm ist die Version die der gewünschten Funtion entspricht. Also die Daten vom Programmierport (serial 0) zum Navilock (serial 1) hin und zurück leiten. Da das Modul eine 3,3 Volt TTL Schnittstelle hat kann ich es ja nicht direkt am PC verwenden. Mit dem Arduino DUE als konverter sollte eigentlich dann die Software vom Hersteller auch funktionieren.

    Wie die NEMA Daten aussehen weiß ich schon nur bekomme ich beim lesen (Arduino seriel Monitor) über die Schnittstelle kaum ASCII Zeichen zu sehen.

    Viele Grüße
    Alexander

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.04.2005
    Ort
    Bad Aibling
    Beiträge
    212
    Jetzt funktionierts. Wenn die Hersteller mal brauchbare Doku liefern würden wäre fein. Aber so was kostet halt Geld und Hardware teuer ohne Doku verkaufen gibt mehr Gewinn ... na ja das alte Lied.

    In der Doku steht das Modul stellt sich automatisch auf die Baudrate ein tut es aber nicht.
    4800 8n1 ist scheinbar die default Einstellung mit der es geht. Jetzt funktioniert auch der Arduino als Konverter zwischen USB und 3,3 Volt TTL seriel.

    ... ...

  5. #5
    Moment, der einzige Sinn vom Arduino ist gerade, als Konverter zu funktionieren? Wenn dem so ist: . Für sowas gibt es Pegelwandler. Weiterhin kann man zum Beispiel über einen Timer die Baudrate messen, sofern man kein Oszi zur Verfügung hat. Wenn es dann immernoch eine Plug&Play Lösung sein muss, FT232RL-Breakouts oder vergleichbares gibt es aus China zu Hauf ^^
    Gruß Jannis

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    10.04.2005
    Ort
    Bad Aibling
    Beiträge
    212
    Ich will Dir ja nun nicht zu nahe tretten aber wenn Du das OK findest das man bei einer Komponete die zumindest mal ca. 100 € kostet dann auch noch selbst die grundlegenden Technischen Parameter ausmessen musst ist das Deine Sache meine ist es nicht. Ganz klar nicht meine Baustelle ...

    Ja find ich OK einen ARM 32 BIt 80Mhz Prozessor als Schnittstellen Umsetzer. Wozu soll ich mir einen Konverter bauen oder kaufen wenn der DUE schon da ist? Ausserdem ist er recht fexibel und kann wie in dem Fall auch gleich Schnittstellen Diagnose mit erleichtern hat er ja auch. Bei einem Dummen Konverter ist das nicht möglich.

    1,2-1,4 Khz wie viele Baud ist das?

    Ausserdem ist es nicht mein Schuld das der Chip Hersteller nur eine Windows Software zum konfigurieren anbietet und keine Module als Source Code die das können. Dann bräuchte ich auch den konverter nicht weil ich dann das Modul nicht an den PC anschließen müsste.

    Nach den Start schwierigkeiten macht das Modul aber einen sehr guten Eindruck auch der Empfang ist gut.

    Wenn Du jetzt noch wissen willst obwohl Du nicht erst gefragt hast was es werden soll. Der DUE soll noch ein 5" Display mit Touchscreen (wenn ich eins mit guter Qualität finde) bekommen und dann in meinen Fahrzeugen Daten Sammel. Ist mir bekannte das es fertige Lösungen gibt aber ich will wenigstens halbwegs sicher sein das die Daten meine bleiben (bei Handy oder Navi sehr unsicher) und ausserdem soll der noch eine Statistik erstellen zu welchen Zeiten ich auf welchen der Strecken am schnellsten ans Ziel komme. So zu sagen nicht nur ein Routen Ansager sondern ein Routen Berater der dann auch meine Persönlichen vorlieben berücksichtigt das ich im zweifelsfall lieber länger Fahre als Kürzer stehe. Es ist ein Fahrzeug kein Standzeug und stehen nervt gewaltig.

    Grüße
    Alexander

Ähnliche Themen

  1. Arduino Due mit Pixy-Cam und eigenem TFT-Monitor
    Von HaWe im Forum Eigene fertige Schaltungen und Bauanleitungen
    Antworten: 0
    Letzter Beitrag: 28.01.2015, 19:42
  2. Erfahrungen/Tutorial: Programmierung von Arduino Due + entspr. IDE?
    Von Ford Prefect im Forum Arduino -Plattform
    Antworten: 0
    Letzter Beitrag: 18.06.2014, 10:07
  3. [ERLEDIGT] I2C Problem mit dem Arduino DUE
    Von jok3r im Forum ARM - 32-bit-Mikrocontroller-Architektur
    Antworten: 2
    Letzter Beitrag: 22.03.2014, 12:21
  4. Arduino Due + Treiber + Schrittmotor PROBLEM
    Von stevie3354 im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 30.01.2014, 23:11
  5. Antworten: 13
    Letzter Beitrag: 28.06.2012, 15:31

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress