Ich habe einen STM32F103C8T6 (später möchte ich mehr zu STM32F407VET6). Beide unterstützen CAN. Aber was bedeutet das?
Ich habe einen MCP2551 CAN Controller gekauft (noch nicht erhalten) . Benötige ich das oder ist diese Funktionalität bereits in meinem STM integriert?
Und ich denke, ich brauche auch einen CAN-Transceiver wie TJA1050 ?
Gemäß dieser Beispielschaltung werden beide verwendet und der Eingang des MCP2551, aber dieser hat einen SPI als Eingang und der STM hat RX/TX als CAN-Ein-/Ausgang, was ähnlich wie die „Anschlüsse“ für MCP2551 ist. Aber ich denke, diese Beispielschaltung ist nicht für STM32 gedacht (da SPI nicht für CAN auf STM32 verwendet wird).
(Ich möchte einen CAN-Bus von wenigen Metern machen, nur zwei, später vielleicht 3 Geräte, mit vorzugsweise 1 MBit/s Geschwindigkeit).
Sie sollten mindestens zwei Knoten und ein verdrilltes Paar mit 120-Ohm-Abschlüssen an jedem Ende haben. Bezeichner müssen eindeutig sein. Informieren Sie sich über die verschiedenen Formate (11/29 Bit) und CAN-FD vs. CAN. Ich schlage vor, mit 11 Bit zu beginnen. Die niedriger nummerierte Kennung hat die höhere Priorität.
Wenn ein Mikrocontroller CAN unterstützt, bedeutet dies normalerweise, dass die zweite Netzwerkschicht (Datenverbindung) von einem CAN-MAC unterstützt wird. Normalerweise müssen Sie einen Transceiver (die physikalische Schicht) bereitstellen. CAN hat (elektrisch) anspruchsvolle Anforderungen an eine maximale Spannungstoleranz, die typischerweise mit kostengünstigen monolithischen Prozessen, die die Komplexität von Mikrocontrollern unterstützen, nicht kompatibel wäre. Sie können auch Chips mit seriellen Schnittstellen kaufen, die den MAC implementieren, den Sie mit (z. B.) SPI an fast jeden Mikrocontroller anschließen können.
Es gibt verschiedene High-Level-Protokolle, die über die 2 von CAN spezifizierten Schichten hinausgehen können, oder Sie können für eine einfache Anwendung Ihre eigenen implementieren. CAN-Nachrichten werden im Wesentlichen gesendet und können von jedem Knoten verwendet oder verworfen werden – wie Multicast oder Broadcast.
Ein CAN-Protokollanalysator kann hilfreich sein – Sie können ihn für den Wert von ein oder zwei Stunden Debugging kaufen.
Dirk Brüre
Michel Keijzers