OFP
Avis laissé au Japon le 4 octobre 2019
使い方の問題かもしれませんが、arduino とこの製品の組み合わせで CAN速度1M の通信が上手く行きませんでした。CAN速度500Kまでは正常に動作しました。
G.S.
Avis laissé en Allemagne le 15 mars 2018
Informationen zu den Modulen sind im Netz reichlich vorhanden. Softwarebeispiele für Arduino und Raspberry ebenso. Ich nutze diese Module für ein CAN-Bus Netzwerk zum Datenaustausch mehrerer Arduino (Nano) basierender Sensorknoten im Haus. Dabei setzen die Arduinos die Werte verschiedener I2C-Sensoren (z.B. Temperatur, Luftdruck, Luftfeuchtigkeit) in CAN-Bus Nachrichten um. Tests mit zwei Teilnehmern an einer preiswerten 50m Telefonleitung (2x2-adrig verdrillt + Abschirmung) aus dem Baumarkt hat fehlerfrei funktioniert.Über die Bibliothek mcp_can.h für (Arduino) ist eine einfache Ansteuerung des Moduls zum Senden und Empfangen von Daten möglich. Je nach Leitungslänge können unterschiedliche Datentransfergeschwindigkeiten vorgegeben werden, dabei gilt, je kürzer die Leitung umso höher die Geschwindigkeit. Die allgemenien CAN-Bus Netzwerkspezifikationen sind im Internet reichlich dokumentiert.Die Module an den Netzwerkenden benötigen je einen Abschlusswiderstand, der auf den Modulen durch einen Jumper an den Pins von J1 aktiviert werden kann. Jumper werden extra benötigt, sie liegen der Packung nicht bei !Die Datenleitungen können sowohl an den beiden Schraubanschlüssen (blauer Anschlussblock J2) oder den beiden Pins von J3 angeschlossen werden. Über die Pfostenleiste von J4 werden alle anderen Signale angeschlossen. Wichtig bei allen Pfostenleisten ist, daß sie alle (J1/J3/J4) nicht exakt so zueinander ausgerichtet sind, daß sie auf einer Lochrasterplatine (2,45mm Rastermaß mit Buchsenleisten) gemeinsam ins Raster passen - nur in leicht schräger Anordnung.Fazit: Die recht preiswerten CAN-Module bieten eine hervorragende Langstreckenkommunikation beim Datenaustausch auf preiswerten Kabeln. Ideal für Maker-Projekte - daher haben sie meine volle Kaufempfehlung.Nachtrag: Ich habe lange Zeit benötigt, um herauszufinden, wie man auch Nachrichten mit Extended-ID's empfangen kann. Nach Initialisierung der CAN-Controller stehen in den Maskierung- und Filterregistern scheinbar Werte, die nur Standard-ID's zulassen - Extended-ID's werden dem Programm damit nicht gemeldet - herausgefiltert. Damit ist eine Initialisierung der Masken- und Filter manuell nötig. Ich erledige das jetzt mit folgendem Code, der alle ankommenden Nachrichten akzeptiert - mit Standard- und Extended ID's:if ( CAN_OK == CAN.begin(CAN_250KBPS)) // ######## init CAN-Controller #######################{CAN.init_Mask(0, CAN_STDID, 0); // Mask no Standard-ID bits to be filtered (0x00)CAN.init_Mask(1, CAN_EXTID, 0); // Mask no Extended-ID bits to be filtered (0x00)CAN.init_Filt(0, CAN_STDID, 0); // Init filter #0.0 in mcp2515 for no filteringCAN.init_Filt(1, CAN_STDID, 0); // Init filter #0.1 in mcp2515 for no filteringCAN.init_Filt(2, CAN_EXTID, 0); // Init filter #1.2 in mcp2515 for no filteringCAN.init_Filt(3, CAN_EXTID, 0); // Init filter #1.3 in mcp2515 for no filteringCAN.init_Filt(4, CAN_EXTID, 0); // Init filter #1.4 in mcp2515 for no filteringCAN.init_Filt(5, CAN_EXTID, 0); // Init filter #1.5 in mcp2515 for no filtering}Zum Experimentieren werden damit alle Nachrichten bearbeitbar. Wer dann doch auf Grund hoher Nachrichtenmengen auf dem CAN-Bus nur bestimmte Nachrichten bearbeiten will, kann im Netz zur korrekten Nutzung von Masken und Filtern entsprechende Beipiele finden.
Vianello Leonardo
Avis laissé en Italie le 28 septembre 2017
Usato con moduli "Arduino-Uno" e "Arduino-Mega" funzona perfettamente. La libreria per Arduino la si può trovare facendo una ricerca per "mcp_can.h Loovee". E' semplice da collegare e lo si può connettere ai PIN del connettore SPI (ICSP) + un PIN CS (o chiamato anche SS) dedicato o usare i PIN corrispondenti al SPI (ICSP) presenti in alcuni modelli Arduino come (Uno, Duemilanove, Mega ecc..) In pratica in questi modelli Arduino ha in comune i PIN SPI con i PIN esterni del microcontroller.Con Arduino-Mega si hanno le seguenti connessioni :ARDUINO - HALJIAPin VCC Pin VCCPin GND Pin GNDPin 53 Pin CS (o SS)Pin 50 Pin SO (MISO)Pin 51 Pin SI (MOSI)Pin 52 SCK (o SCLK)Con Arduino-Uno le seguenti :ARDUINO - HALJIAPin VCC Pin VCCPin GND Pin GNDPin 10 Pin CS (o SS)Pin 12 Pin SO (MISO)Pin 11 Pin SI (MOSI)Pin 13 SCK (o SCLK)IMPORTANTE : Solitamente il cristallo per il clock montato sul presente shield è da 8 Mhz e non da 16 Mhz per cui nell'inizializzazione con la libreria (CAN_Library-master.zip) deve essere fatta nel seguente modo :if(CAN_OK == CAN0.begin(MCP_ANY,CAN_250KBPS,MCP_8MHZ))Il canli CAN-H e CAN-L sono poi quelli da collegare alla rete CAN.Ho usato la presente libreria : https://github.com/coryjfowler/MCP_CAN_lib che funziona. (testata con Arduino UNO e Arduino MEGA 2560).Per specifiche di utilizzo personale ho modificato alcune righe riguardante i tempi di lettura e scriitura nella rete CAN.Bisogna avere un infarinatura sulla trasmissione con protocollo CAN (vi è il tipo esteso o no e la lunghezza della parte data del frame CAN).Personalmente sono partito da 0 ma ora il progetto funziona bene con questo shield.Logicamante ho sviluppato del codice per utilizzare la libreria che ho indicato in base alle specifiche che avevo.Buon Lavoro.