ich beschäftige mich nun seit ein paar Wochen mit Arduino und habe schon ein paar kleine Projekte angefangen und habe bis jetzt durch die Suche hier im Forum noch alles gefunden, wenn ich mal nicht weiter wusste...
Nun beschäftige ich mich gerade mit Can Bus. Es geht um folgendes: Ich höre auf einem Standart (NICHT KFZ) 125Kbps Can Bus mit, filtere alle IDs bis auf eine und schalte je nach Botschaft (8bytes) Ausgänge am Arduino Uno.
Da ist ja nicht viel dran und das habe ich auch schon mit einem MCP2515 Modul erfolgreich getestet.
Die Schwierigkeit war eher das analysieren des Can Bus, damit ich weiß auf welche IDs und Botschaften ich reagieren muss, aber das habe ich schon bevor ich auf Arduino gestoßen bin mit einem Peak PCAN und socketcan gemacht.
Mit Arduino UNO und MCP2515 Modul funktioniert das also zu meiner vollsten Zufriedenheit.
Jetz würde ich gerne eine Kleinserie auflegen und wollte das zuerst mit China Arduino Mini Pro machen, jedoch will ich wenn möglich kein MCP2515 Modul nehmen, sondern hätte gerne alle Bauteile auf einer Platine.
Hat schon jemand soetwas ähnliches selbst entworfen? Der Minimalaufbau mit 7805, Kondensatoren, Quartz, IC usw. ist mir klar, aber wie kann ich den CanTranceiver integrieren und was hab ich noch vergessen? Würdet ihr einen Atmega benutzen, oder doch STM32?
Freue mich über jeden Tipp, Anregung und auch Kritik
mikeson:
Freue mich über jeden Tipp, Anregung und auch Kritik
Liefere Links zu den Datenblättern der beteiligten Teile. Hilfreich wäre außerdem die Info, was für Teile auf dem Modul sind, das Du nicht als Modul verwenden möchtest.
Was die Frage zu ATmega/STM32 angeht: Benutze das, was Du zum Entwickeln benutzt Entwickle mit dem, was am Ende verbaut werden soll. Wenn Du das jetzt noch nicht entscheiden willst, entwickle in Gottes Namen halt zwei Platinen. Vielleicht motiviert das ja, in der Frage der Plattform zu einer Entscheidung zu kommen.
Über den ATmega z.B. weiß ich sicherlich ein paar Dinge, über den STMdingsda weiß ich gar nichts. Ich weiß nicht einmal, ob Du Dich hierzuforum mit der Erwähnung des STMdingsda „strafbar“ machst.
Vielen Dank für die Antwort- ich bleib beim ATMEL : Auf den STMDingsda bin ich nur gekommen, weil der angeblich schon Canfähig ist und ich somit den Can Controller einsparen könnte...
Auch wenn's nur eine Kleinserie ist, würde ich was suchen, das mit so wenigen Bauteilen wie möglich auskommt.
Der ESP32 hat CAN on board und bräuchte extern nur einen CAN-Wandler dazu.
mikeson:
Hat schon jemand soetwas ähnliches selbst entworfen?
Nein, ich stöpsle nur fertige Platinen zusammen.
STM32 habe ich nicht.
Im Thema UNO - Mega - Teensy mittels CAN-Bus verbinden habe ich den CAN-Bus getestet. Neben dem UNO habe ich auch den Teensy 3.2, der CAN eingebaut hat, verwendet, da genügte dann ein TJA1050 CAN Bus Tranceiver Modul.
MCP2515 und Teensy 3.2 verhalten sich etwas unterschiedlich, welche Konfiguration für Deine Anwendung besser ist, vermag ich nicht einzuschätzen.
ESP32 mit TJA1050 habe ich noch nicht probiert, hätte ich aber da.
Moin Mike,
in dem von Dir verlinkten angeführten Datenblatt findet sich die Information, dass als Treiber der schon erwähnte TJA1050 verwendet wird.
In dessen Datenblatt (PDF) findet sich auf Seite 8 eine Applikationsschaltung. Das sieht jetzt nicht so übermäßig kompliziert aus.
TxD und RxD vom CAN-Controller wären dann beim MCP2515 (PDF) die Pins TXCAN und RXCAN - wenn Du den schon auf dem Modul verwendet hast, kannst Du ihn ja auch auf die Platine packen. Vielleicht zur Sicherheit nochmal mit dem SJA1000 vergleichen; aber das sieht schon ziemlich stimmig aus.
Selber nutze ich die Arduino-CAN-Module(eBay) (als Beispiel, keine Kauf-Empfehlung) als Aufsteck-Platine in eine Buchsenleiste auf einem Uno-Proto-Shield.
Davon werkeln momentan zwei als Sensoren (Außen in thermischer Solar-Anlage und Innen an der Heizung) wie Einer für die Aktoren an der Heizung.
Mit noch Einem Knoten auf meinem Schreibtisch kommuniziere ich mit Diesen (und noch 3 oder 4, Die ich erst wieder finden müsste ..., Die senden von irgendwo Raumtemperaturen - aber auch schon länger - und Einer sendet einen Wasserstand)