Hallo An alle, Was ich vorhabe? Ich will aus der OBD Schnittstelle Daten auslesen. Dafür habe ich eine Platine mit pic18f4580 mit mcp2551 aufgebaut. Baudrate auf 500 kbps eingestellt. Es so programmiert, dass ich nur die ID sehe, die über den Bus geschickt werden. Funktioniert aber nicht. Darauf hin habe ich einen CanUSB kabel genommen. und versucht von da aus Daten zu senden. Aber meine Platine reargiert nicht auf die Daten die ich von CanUSB kabel sende. kriegt aber alle Daten die ich von meiner Platine auf den Bus sende. Ich habe insgesamt 3 Platinen untereinander Funktioniert die Kommunikation. ich kann alle IDs am LCD sehen. Meine Hardware 3 platinen: 2 x pic18f258 mit mcp2551 1 x pic18f4580 mit mcp2551 Node 1: Sendet ID 0x80 und Sorgt dafür, dass Node 2 led toggled. Node 2: Sendet ID 0x350 und Sorgt dafür, dass Node 1 Auf Bildschirm Hallo schreibt. Node 3: funktioniert als CanMonitor da sehe ich alle ID s die über den Bus hin und her geschickt werden. (4x20 LCD) Node 4: Can USB kabel von LAWICEL dient als Überwachung am PC mit Canhecker software Meine Settings: für Test Alle Bus Parameter in original zustand gelassen (125kbps) Bis jetzt funktioniert alles. Ich kann auch alle Daten am PC mir ansehen und die Nodes funktionieren alle. Mein Problem: wenn ich über CanUSB (Canhecker) die ID 0x100 sende sollte : Node 2 seinen LED high machen. Node 3 Die ID 0x100 am LCD zeigen. Funktioniert aber nicht. Feststellungs: Wenn ich meinen CANUSB von Lawicel an OBD anschließe sehe ich sofort alle IDs und alle Daten wenn eine ID wie 0x7DF sende und dazu passende Data kriege ich sofort Antwort. Ich habe am OBD 60 Ohm gemessen und nehme an, dass der gesamt widerstand von 2 parallel geschalteter 120ohm Widerständen ist. Ich kriege keine Daten von CanUSB und auch keine Daten von OBD an meinem Board angezeigt. Die kriegen aber meine Nachrichten. Was kann aber das Problem sein :(
Hier ist meine Schaltung. Ich kann zwischen 3 Platinen Daten senden und Empfangen. kriege aber keine Daten von meinem CanUSB (LAWICEL) oder von OBD an meinem Board angezeigt. Ich kann aber alle Daten die zwischen meine 3 Platinen gesendet werden an CanUSB(LAWICEL) und an meinem CanMonitor(Platine3) sehen. Die Abschlusswiderstände kann über einen schalter dazu geschaltet werden.
Vielleicht ein Problem mit den Filter Einstellungen oder der Messagebuffer Konfiguration? Ändere doch mal deinen Testaufbau dahingehend, dass du zwischen deinen Platinen die OBD Can IDS hin- und herschickst. Versuch danach mal die Baudrate vom Versuchsaufbau auf 500 KB zu andern.
peterguy schrieb: > Vielleicht ein Problem mit den Filter Einstellungen oder der > Messagebuffer Konfiguration? > Ändere doch mal deinen Testaufbau dahingehend, dass du zwischen deinen > Platinen die OBD Can IDS hin- und herschickst. Versuch danach mal die > Baudrate vom Versuchsaufbau auf 500 KB zu andern. Was würdest du mir mir empfehlen wie ich meinen versuch aufbau ändern soll. Zwischen meinen platinen funktoniert die kommunikation. Ich kann von allen platinen daten senden und empfangen. Das problemm ist, dass ich keine daten die von canUsb gesendet werden an meiner platine sehen kann. Aber die daten die auf dem can liegen am canUsb sehen kann.
Stimmt die Bitrate Deiner selbst gebauten Knoten? Hast Du das mit einem Oszi oder Logicanalyzer messtechnisch verifiziert? fchk
Frank K. schrieb: > Stimmt die Bitrate Deiner selbst gebauten Knoten? Hast Du das mit einem > Oszi oder Logicanalyzer messtechnisch verifiziert? > > fchk Ich habe es mit den letzten geänderten parametern nicht gemessen. Aber mich wundert es, dass ich die daten die auf dem bus liege am pc sehen kann. Das würde bedeuten, dass die baudrate stimmt oder nicht?
mehmet cikar schrieb: > peterguy schrieb: > Vielleicht ein Problem mit den Filter Einstellungen oder der > Messagebuffer Konfiguration? > Ändere doch mal deinen Testaufbau dahingehend, dass du zwischen deinen > Platinen die OBD Can IDS hin- und herschickst. Versuch danach mal die > Baudrate vom Versuchsaufbau auf 500 KB zu andern. > > Was würdest du mir mir empfehlen wie ich meinen versuch aufbau ändern > soll. > Zwischen meinen platinen funktoniert die kommunikation. Ich kann von > allen platinen daten senden und empfangen. > > Das problemm ist, dass ich keine daten die von canUsb gesendet werden an > meiner platine sehen kann. Aber die daten die auf dem can liegen am > canUsb sehen kann. OK also dann mal in kleinen Schritten: Platine1: schickt ID 7DF, wartet dann auf ID 7EF und zeigt die empfangenen Daten auf dem Display an. Platine2: wartet auf ID 7DF, schickt nach Empfang von ID 7DF die ID 7EF als Antwort. ID 7EF ist nur ein Beispiel, schau dir am Besten an welche Id dein Auto schickt und nimm die selbe.
mehmet cikar schrieb: > Frank K. schrieb: >> Stimmt die Bitrate Deiner selbst gebauten Knoten? Hast Du das mit einem >> Oszi oder Logicanalyzer messtechnisch verifiziert? >> >> fchk > > > Ich habe es mit den letzten geänderten parametern nicht gemessen. > Aber mich wundert es, dass ich die daten die auf dem bus liege am pc > sehen kann. > > Das würde bedeuten, dass die baudrate stimmt oder nicht? Mess nach, dann weißt Du es. fchk
> Mess nach, dann weißt Du es. > > fchk Hi Frank, Ich habe mir grade die Signale von meiner Platine angeguckt. data lengt 8 Byte bei den parametern für 500 kbps zwischen Can H und Can L habe ich : BRGCON1: 0x00 BRGCON2: 0xBA BRGCON3: 0x07 habe ich 264us gemessen.
Hallo Nochmal, Ich habe grade festgestellt, dass ich zwischen meiner Platinen IDs als Extended ID geschickt habe. can_putd(CzuD, data, 8, 3, TRUE, FALSE); // TRUE Extended ich habe jetzt von meinem CANUSB kabel eine ID als Extended gechickt und ich habe die ID und Data an meinem LCD gesehen. :) daraufhin habe ich Extended False gemacht: can_putd(CzuD, data, 8, 3, FALSE, FALSE); Jetzt habe ich kriege ich zwischen meiner platinen auch keine Nachrichten mehr. Wenn ich aber von CanUSb extended ID schicke kriege es am LCD angezeigt. Also ich kann grade nur Extended ID empfangen. Wie kann ich es ändern, dass ich nur Standard ID empfangen kann.
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.