Probleme mit CAN

  • Hallo,


    Für unser Projekt wurde auf dem NETDCU8 ein DOS-Programm so angepasst, dass die Kommunikation mit
    unserer Hardware über die CAN-Schnittstelle ohne Probleme funktionierte. Beim Umstieg auf den PicoCom1
    wurden zwar CAN-Telegramme ausgegeben (HW reagierte) aber die Antworttelegramme wurden nicht eingelesen (Timeout).
    Für Testzwecke habe ich das folgende vereinfachte Testprogramm auf Basis der bestehenden Funktionen geschreiben (NetDCU ok, Picocom1 mit Timeout beim Empfang)
    Aufgefallen ist mir, dass beim Aufruf des Programms die Meldung: 'ETH: LookupRxBuffers : Error BNA!!' mehrfach auf der Debugschnittstelle
    (COM3) ausgegeben wird. Besteht evtl. damit ein Zusammenhang und wie kann ich diesen Fehler beheben?
    Wenn sie mir weiterhelfen könnten wäre ich ihnen sehr dankbar



    aktuelle PICOCom1 Firmware:
    Boot Loader, Version 1.1
    PicoCOM1 V1.03 Build: Jul 30 2008/08:12:04


    Sourcen


  • Hallo,


    nachdem wir bisher die CAN-Schnittstelle nur mit einem CAN-Sniffer überprüft haben, haben wir zwischenzeitlich noch mit dem Oszi die CAN-Kommunikation überprüft. Es konnten keine Fehler festgestellt werden. Sende und Empfangstelegramm (Quittierung, ..) sind ok. Vom PICOCom1 wird das empfangene Antworttelegramm zwar quittiert, aber kein CANBUS_EVENT_RECEIVED zurückgemeldet.


    Aus anderen Beiträgen weiss ich, dass es mit dem CAN-Treiber Probleme gibt. Haben sie zwischenzeitlich eine Lösung?
    Unter anderem wird im Beitrag 'EventMask CAN-bus' vom 05.08.2008 wird ein neuer Treiber für die CAN-Schnittstelle angekündigt. Wo kann ich ihn finden?
    Des weiteren wurde im Beitrag 'CAN-Schnittstelle über -Controller auf dem Modul?' vom 27.06.2008 ein Software-Paket zum Testen der CAN-Schnittstelle angekündigt. Wo kann ich dieses SW-Paket finden?


    Könnten sie zumindestens einen Status zur CAN-Schnittstelle mitteilen, falls sie noch Änderungen vornehmen müssen.


    Vielen Dank

  • Quote from "ada"

    Unter anderem wird im Beitrag 'EventMask CAN-bus' vom 05.08.2008 wird ein neuer Treiber für die CAN-Schnittstelle angekündigt. Wo kann ich ihn finden?


    Gerade gestern haben wir einen neuen PicoCOM1-Kernel online gestellt (NKPC1_CORE_CF2_080908 bzw. NKPC1_CORE_CF35_080908). Probieren Sie es mal damit.


    Quote

    Des weiteren wurde im Beitrag 'CAN-Schnittstelle über -Controller auf dem Modul?' vom 27.06.2008 ein Software-Paket zum Testen der CAN-Schnittstelle angekündigt. Wo kann ich dieses SW-Paket finden?


    Damals (am 30.7.) hatten wir aber doch schon einen neuen Kernel veröffentlicht (NKPC1_CORE_CF35_080730). Hatten Sie bisher schon diesen Kernel im Einsatz? Weil sonst könnte es sein, dass der Befehl SetCommMask() die Problematik bewirkt.


    Das Problem insgesamt ist, wie diverse Dinge miteinander zusammen hängen. Der CAN-Controller hängt per SPI am Microcontroller. Also muss man hier aufpassen, dass der CAN-Treiber mit dem SPI-Treiber zusammenspielt. Die ersten Versionen taten dies nämlich noch nicht. Der SPI-Treiber wurde aber erst jetzt fertig.


    Auch das Tool zum Testen der CAN-Schnittstelle ist leider noch nicht ganz fertig. Es benutzt diverse Dialoge, um alle Features des Treibers einfach konfigurieren und anzeigen zu können und das ist eben nicht mal so schnell nebenbei programmiert wie ein kleines Kommandozeilentool. Und leider musste ich wegen eines dringenderen Projektes (auch im Zusammenhang mit der PicoCOM1) hier die Arbeit für eine Weile unterbrechen. Da wir natürlich auch selbst dieses Tool zum Testen des CAN-Treibers einsetzen wollten, und wie gesagt das Zusammenspiel zum SPI-Treiber funktionieren sollte, hatten wir bisher die Veröffentlichung etwas verzögert.


    Nachdem nun aber einige Anfragen kommen, haben wir eben doch schon jetzt einen weiteren Kernel veröffentlicht, auch ohne dass das CAN-Testtool zur Verfügung steht. Insofern gehe ich davon aus, dass der CAN-Treiber grundsätzlich schon ganz gut funktioniert, aber im Detail mag es vielleicht noch irgendwo klemmen.


    Könnte es bei Ihrem konkreten Problem sein, dass der Acceptance-Filter falsch gesetzt ist? Lesen Sie doch mal den aktuellen Wert zurück. Bitte beachten Sie, dass für jedes geöffnete Filehandle nun ein eigener virtueller Channel geöffnet wird mit eigenem Acceptance-Filter. Haben Sie den Eintrag "Align" oder "MaskActive" in der Registry irgendwie gesetzt?


    Mit freundlichen Grüßen,


    H. Keller

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Leider habe ich z.Zt. das Problem, dass ich den ursprünglichen Zustand (Senden ja, Empfangen nein) nicht mehr zum laufen bekomme. Ein Wechsel des PICOCom1 hat keinen Erfolg gebracht. Weder mit unserer Hardware als auch mit dem Starterkit ist eine Ausgabe auf die CAN-Schnittstelle erkennbar (überprüft z.B. mit Oszi). Bei der Selbstdiagnose ('T'-Kommando) wird CAN als ok gemeldet. Z. Zt. wird eine neue HW aufgebaut, die hoffentlich den ursprünglichen Zustand wieder herstellt.


    Bei den ursprünglichen Tests war die aktuelle PICOCom1 Firmware:
    Boot Loader, Version 1.1
    PicoCOM1 V1.03 Build: Jul 30 2008/08:12:04 -> (NKPC1_CORE_CF35_080730)


    In der Registry stehen folgende Angaben:
    Prefix CID
    DLL CANDRV.dll
    Order 32
    Index 1
    Ioctl 4
    FriendlyName CAN interface for PicoCOM
    DeviceArrayIndex 0
    IRQ 1
    Die Einträge "Align" und "MaskActive" wurden von mir nicht gesetzt.
    Den Acceptance-Filter hatte ich kontrolliert (mit Funktionen aus ihrem CANcheck-Programm), ebenso unsere HW die eine korrekte Antwort lieferte.
    Als Referenz hatte ich zusätzlich das NETDCU8 Starterkit, bei der die Kommunikation über die CAN Schnittstelle ohne Probleme läuft.
    Bei den Tests wurde immer mit derselben HW nach der CAN-Schnittstelle (NETDCU8, Picocom1) gearbeitet.

    PS
    Beim Aufruf des WCE Remote Registry Editors ist mir aufgefallen, dass die Meldung: 'ETH: LookupRxBuffers : Error BNA!!' ebenfalls mehrfach auf der Debugschnittstelle (COM3) ausgegeben wird.


    Mit freundlichen Grüssen
    M.Kast