Kategorie: STM32 Projekte
Zugriffe: 87309

STM32-CAN-Busadapter

Einleitung

Da ich mich in letzter Zeit vermehrt mit den Cortex-Arm-Prozessoren von ST  befasse, musste nun wieder mein Lieblingsprojekt – ein CAN-Bus Interface - herhalten.
Als Ziel habe ich mir ein CAN-Bus Interface vorgenommen, welches sich vor kommerzielle Interfaces nicht verstecken muss, und mit der CANHacker Software von der Seite: http://www.canhack.net laufen soll.


Und das ist es nun, mein aktuelles Projekt: STM32-CAN

Anforderungen:

Realisierung:

Für die CAN-Schnittstelle werden folgende CAN-Treiber verwendet:

Schaltplan:
Schaltplan STM32-CAN  - Version 1.1

Abb. 1.1 Schaltplan STM32-CAN Version V1.1

 

CAN-Anschlussstecker Belegung (SUB-D 9polig männlich):

Pin-Nr. Beschreibung
1 nicht verwendet
2 CAN-LOW -Signal
3 GND (optional)
4 nicht verwendet
5 nicht verwendet
6 GND
7 CAN-HIGH Signal
8 nicht verwendet
9 nicht verwendet

Die Anbindung an den PC erfolgt mittels einer USB-Mini Buchse über die Hardware auch mit Spannung versorgt wird (+5 V).
Für die Umsetzung des Virtuellen Com Ports (VCP) werden die ST-Firmwaretreibern (OTG-Device-Host Firmware für STM32F105/F107) verwendet. Dies Paket beinhalte auch die Standard Peripherie Library in einer etwas aktuellern Version als die V3.5.0.

modifiziertes CANHacker Protokoll (basierend auf dem Lawicel-Protokoll)

Gehäuse

Das Gehäuse stammt vom Dennis T. - Vielen Dank dafür!
Gehäuse für STM32-CAN Board
Abb. 1.2 Gehäuse für das STM32-CAN Board

3D Daten

3D-Gehäuse Entwurf
Abb. 1.3 Gehäuse Entwurf für das STM32-CAN Board

Entwurfsdaten:


Projekt-Status:

März 2013:

August 2014:

 

April 2015:

November 2015:

Dezember  2015:

April 2016:

März 2019:

Januar 2020:

Support

Die Support-Seite steht nur den angemeldeten Benutzern zur Verfügung. Dort finden sich die Downloads der aktuellen Firmware und eine Installations-Anleitung für das Interface.
Link zur STM32-CAN - Download Page  

CAN-Analyzer

Zur Zeit ist ein eigener CAN-Logger in Arbeit. Das besondere wird die RX-Liste sein, bei der dann die aktuellsten Datenbytes grafisch hervorgehoben werden, und ältere Daten werden dann langsam unsichtbar. Dies vereinfacht dann ungemein das lokalisieren von bestimmten Datenbits wenn man im Auto die  CAN-Botschaften analysiert.

Besondern Dank geht an Robert G. für die zur Verfügungstellung des Lazarus-Grundgerüst von dem Projekt, somit konnte ich mich voll auf die grafische Hervorhebung der aktuellen Daten in der RX-Liste konzentrieren.

Hier mal ein Vorschaubild von der RX-Liste:

Vorschaubild von der RX-Liste
Abb.1.4 Vorschau von der RX-Liste mit grafischer Hervorhebung von aktuellen Datenbytes

Funktionsumfang:
- Es werden alle Interfaces unterstützt,  die das Lawicel-Protokoll verwenden (und die gleiche Hardware ID gesendet wird,
  siehe Support-Page). 
  (unter Beachtung, dass ich ein leicht modifiziertes Protokoll für die Baudraten verwendet habe s.o. )
- RX-Liste
- RX-Trace
- Export der Listen/Traces
- Empfangsfilter   (todo)
- eigene Botschaften senden (todo)

Es wird aber noch einige Zeit dauern, bis alles umgesetzt ist.

Die aktuellen Versionen stehen auf der STM32-Supportseite (s.o.) zum Download bereit.

Video: https://www.youtube.com/embed/uIO9P0yFNek


Vorab schon mal die Eagle-3D Bilder von der Leiterplatte:

STM32-CAN-Bus Interface
Abb. 1.5 EAGLE-3D Ansicht von STM-CAN - Inteface Version 1.0 - Prototype

 

STM32 CAN - Leiterpaltte Bestückungsseite
Abb.1.6 -  Bestückseite STM-32-CAN Interface Version 1.0 - Prototype

STM32-CAN - Bestückungsseite   STM-32-CAN - Leiterbahnseite
Abb.1.7 Darstellung ca. original Größe    

 

Fertige Leiterplatte:

Beim Layout hat sich ein kleiner Fehler eingeschlichen, der in der neuen Leiterplattenvariante behoben wird, bzw. in den Protoypenleiterplatten mit etwas Fädeldraht behoben wurde :-)

STM32-CAN - Bestückte Leiterplatte
Abb.1.8 CAN-STM32  - Protoypenversion - V1.0 (manueller Umbau auf V1.1)


inkl. Versand nach
1.Prototypen Version V1.1

Aktuell habe ich wieder ein paar Prototoypen in obiger Ausführung vorrätig, die Ihr für inkl. Versand nach:
- Deutschland: 25,- EUR inkl. Versand    (Brief)
- Europa: 30,- EUR inkl. Versand   (DHL-Päckchen)
erwerben könnt. Wer kein PayPal verwenden will, kann mich auch über das Kontaktformular kontaktieren.


Der Lieferumfang entspricht in etwa obiger Abbildung Abb.1.8

Hinweise:
- Unversicherter Postversand
- Versand nur innerhalb der EU - Außerhalb der EU nur auf Anfrage
- Es handelt sich hierbei um einen Privatverkauf!
- Die gesetzliche Gewährleistung wird hiermit ausgeschlossen. Der Käufer akzeptiert dies mit Klick auf den "Jetzt kaufen" Button
- Das Interface wird vor dem Versand nochmal auf Funktion geprüft.




todos für die Zukunft:

 

 

 

Links:

TJA1055 - Datenblatt
PCA82C250 - Datenblatt

STM32-Resourcen:
UM1021 - User manual  "USB On The Go host und device library für STM32F105/107"
STSW-STM32046 - Version 2.1.0 : stm32_f105-07_f2_f4_usb-host-device_lib.zip
STSW-STM32054 - Version 3.5.0: STM32F10x standard peripheral library

Entwicklungsumgebung: Keil Compiler - MDK-Lite Version V4.70a

www.canhack.net: - CANHacker V2.00.02 Download (direkter Link auf die Zip-Datei: CANHackerV2.00.02.zip)

BUSMASTER (BUSMASTER is an Open Source Software tool to simulate, analyze and test data bus systems such as CAN)

 

 


Produktionschritte vom PCB-Pool:

Die Protoypen LP wurden beim PCB-Pool gefertigt. Hier sind dann die einzelne Arbeitsschritte von der Leiterplattenfertigung dargestellt:

Autragsvorschau

Belichtete Leiterplatte - Bestückungsseite   Belichtete Leiterplatte - Leiterbahnseite
     

 

Geätzte Leiterplatte - Bestückungsseite   Gätzte Leiterplatte - Leiterbahnseite
     

 

....