-
Thread
MCP2515 Probleme wenn an Bus angeschlossen
Ich versuche mit einem MCP2515 CAN Controller und einem SN65HVD230 CAN Tranceiver Nachrichten auf einem HighspeedBus zu lesen. Zuerst zum Problem: Ich kann im Loopback Modus Nachrichten verschicken und auch versenden. Sobald
nicht definiert. (1<<REQOP1)); _delay_ms(10); < - Delay eigentlich überflüssig, weil der MCP2515 wirklich fix ist. can_send_message(&message); _delay_ms(10); while(1) { if(can_get_message(&message2)) { can_send_message(&message); can_get_message(&message2
-
Thread
Simpler CAN Baustein
MCP2515 - allerdings SPI
und leider ein Pic. Aber wenns nicht anders geht werd ich den nehmen. Hat wer Erfahrung mit dem mcp2515? Lg
-
Thread
CAN-Interface mit galvanischer Trennung für Pandaboard (OMAP4)
CAN-Controller erfolgreich mit Linux auf dem Pandaboard anbinden können? Ich habe sowohl SPI und MCP2515-Support im Kernel aktiviert und die board-Datei um die SPI und MCP2515-Routinen erweitert. Jedoch schlägt das Kompilieren des Kernels fehl, weil Attribute wie ".model" im SPI struct nicht bekannt
CAN-Controller erfolgreich mit Linux auf dem > Pandaboard anbinden können? > Ich habe sowohl SPI und MCP2515-Support im Kernel aktiviert und die > board-Datei um die SPI und MCP2515-Routinen erweitert. Jedoch schlägt > das Kompilieren des Kernels fehl, weil Attribute wie ".model" im SPI > struct nicht
-
Thread
Bascom Atmega32 2 SPI gleichzeitig
Hallo. Ich möchte 2 MCP2515 an einen Atmega32 anschliessen. Bis jetzt habe ich nur mit einem gearbeitet, was auch funktioniert hat. Was muss ich machen, damit ich 2 MCP2515, die über SPI funktionieren anschliesen kann?
2 verschiedene CS Leitungen? Mit MOSI mag das ja noch klappen, aber ob der nicht angesprochene MCP auch am MISO "seinen Mund hält", also auf Hochohmig schaltet, musst du schon selbst im Datenblatt nachlesen. Clocks kann/muss man ja denselben nehmen. Gegenfrage: Haben die MCPs einen Dateneingang
-
Thread
Bus für >50m
Achso...ganz vergessen. z.B. so: Tiny <--> MCP2515
wo das Ding braucht? Jo Ka schrieb im Beitrag #2205268: > Mein Plan ist jetzt: > Controller -> MCP2515 -> MCP2551 -> CAT5-Kabel Als kleiner Tipp: Schau mal bei Kreatives Chaos vorbei, da gibts ne fertige Library für den MCP2515 & Atmel: http://www.kreatives-chaos.com/artikel/universelle-can-bibliothek
-
Thread
CAN Bus Log Verständnisfrage
trotzdem welche ausgelesen. Wie kann das sein? Das CAN-Modul habe ich selbst gebaut mit den ICs MCP2515 und MCP2551, wie oben im Schaltplan zu sehen. Für die Kommunikation verwende ich eine fertige CAN-Bus-Library, die ich im Netz gefunden habe (MCP2515.zip). Als Controller verwende ich ein Arduino
DLC > 8 nur die ersten 8 Daten-Bytes auslesen und den Rest ignorieren - Zeitstempel mit ausgeben - MCP2515 austauschen? Hab ich da noch was wichtiges vergessen?
-
Thread
CAN-Bibliothek fans laufen bringen
sollte etwas machen. Die ist aber auch für einen ATMEGA32 mit F_CPU = 14745600 und einem externen MCP2515 !!!
Interrupt noch nicht abgearbeitet, obwohl die nächste Nachricht eingetroffen war. Also mit dem MCP2515 kannst Du über SPI, die Botschaften so schnell auslesen, dass die nachfolgende Botschaft nicht die ausgelesen überschreibt. Außerdem funktioniert beim MCP das Rollover von der RXB0 in die RXB1 recht
-
Thread
Grundlegende Fragen eines Newbie - irq - tasten und schalten
kann man schon einiges machen. Wobei es den ATMEGA128 für um die 9 Euro gibt. Da dann noch nen MCP2515 dran für 1,50 Euro und man kann einen CAN-Bus aufbauen. Oder gleich nen AT90CAN für 8 Euro und nen CAN-Tranciever alla MCP2551 oder PCA82C250 für nen Euro. Wie gesagt, I2C ist für mich immernoch
-
Thread
AVR + CAN - Probleme mit ATMega8-16PU + MCP2515 + MCP2551
verbunden (wie gesagt, mit einem CAN-Bus). Auf beiden Platinen befinden sich ein ATMega8-16PU, ein MCP2515 und ein MCP2551. Auf beiden Megas läuft der gleiche Code. Jetzt zum Problem: Wenn ich von Platine1 Daten zu Platine2 schicke, kommen diese perfekt an. Anders herum (P2 -> P1) funktioniert
Hallo pcb und danke für die Antwort, Ich kann die AVR's miteinander, die MCP2551 miteinander und/oder die MCP2515 miteinander vertauschen und jedes Mal kann ich nur von P1 nach P2 senden. Und ja das ist die gleiche ID, aber erstens ist das egal, weil ich sowieso immer vorher
-
Thread
Entwicklung eines Bussystems
Halblang. Nun fang mal damit an, ein paar Knoten miteinander reden zu lassen. Mittels AVR+MCP2515. Wenn du das im Griff hast, dann kommt der nächste Schritt. Mach nicht alles auf einmal.
können und mein Englisch ist so bescheiden, dass ich kaum einen Absatz aus z.B. dem Datenblatt vom MCP2515 verstehe. Viele Grüße Ps.: Bin noch Neuling auf dem ganze Gebiet.
-
Thread
16 Bit Variable in 2x 8 Bit Variable aufteilen und Bits verschieben
der Titel sagt es schon, was ich machen möchte. Ich habe eine Platine mit einem ATMega8, einem MCP2515 und einem MCP2551. Programmiert wird über AVR Studio und AVR-GCC in "C". Ich würd gerne eine 16-Bit Variable in zwei 8-Bit Register klopfen, so wie auf der Grafik... Und dann müssen noch beim
-
Thread
Problem durch Optimierung -Os
ich arbeite gerade an einem CAN Bootloader, der auf einem atmega32 laufen soll, welcher dazu einen MCP2515 via SPI verwendet, um mit dem Bus zu kommunizieren. Um die zum Flashen erforderlichen Daten auf den Bus zu bekommen verwende ich einen atmega168, der ebenfalls einen MCP2515 via SPI verwendet,
anzeigen lassen. Ich vermute, dass in der 'handle_interrupt(message);' welche die Daten per SPI aus dem MCP2515 ausließt ein Konflikt mit der Optimierung auftaucht, da das Programm bis zu diesem Punkt problemlos arbeitet. Die 'handle_interrupt(message);' sieht wie folgt aus und verwendet einige weitere
-
Thread
Eagle: MCP 2515-I/SO
beschäftige mich erst seit kurzen mit Eagle und hätte eine prinzipielle Frage: Wenn ich z.B: einen "MCP 2515-I/SO" verbauen möchte aber keine Vorlage finde. Muss ich mir diese Bauteil selber erstellen oder kann man auf dieversen Seiten die entsprechenden Vorlagen runterladen? Danke für die Info.
Suchmaschinen sind dein Freund http://www.scotttorborg.com/eagle-lbr/mcp2515.html
-
Thread
Problem mit CAN Interface MCP2515/2551
: "); Serial.println(canStatus, BIN); Serial.println("Trying to reset MCP2515"); digitalWrite(SLAVESELECT, LOW); SPI.transfer(RESET); digitalWrite(SLAVESELECT, HIGH); delay(200); Serial.println("Reading MCP2515 status:"); digitalWrite(SLAVESELECT, LOW
(0b10000000); digitalWrite(SLAVESELECT,HIGH); delay(200); Serial.println("Reading MCP2515 status:"); digitalWrite(SLAVESELECT, LOW); SPI.transfer(READ); SPI.transfer(CANSTAT); canStatus = SPI.transfer(0xFF); digitalWrite(SLAVESELECT, HIGH); Serial.print("MCP2515
-
Thread
UART Software Flow Control Befehle werden ignoriert
Problem mit der seriellen Verbindung hänge. Ich verwende einen atmega168 in Kombination mit einem MCP2515 um die Daten auf den CAN-Bus zu schreiben. Der atmega nimmt dabei die Daten über UART vom PC entgegen und legt sie momentan noch byte-weise auf den Bus, wo sie ein anderer atmega32 empfängt und
-
Thread
Problem bei bit shifting
Hi, ich lese mit einem mega32 mittels SPI einen MCP2515 CAN-Controller aus wobei ich auf ein Problem beim zusammensetzten des Identifiers mittels bitweise Verschiebung stoße. Und zwar handelt es sich dabei um einen Standart Identifier mit einer Länge
-
Thread
Asynchrone Kommunikation mehrerer Slaves zu Master
Das einfachste ist ein kleiner CAN Bus. Als Controller hat sich der MCP2515 bewährt. http://de.wikipedia.org/wiki/Controller_Area_Network
-
Thread
MCP2515 Interuptpin zurücksetzten
ich es hier in einem neuen eigenständigen Beitrag versuchen. Folgender Aufbau: ATmega8 und 2x MCP2515 Funktion: Botschaft in CAN1 einlesen und auf CAN2 ausgeben, bzw von CAN2 auf CAN1 Problem: Prinzipiell kann jeder MCP2515 Botschaften schicken, aber aus einen mir unerfindlichen Grund, wird der Interuptpin der MCP2515 nach dem Empfang einer Botschaft, nicht mehr residiert. Da mir auf den ersten, zweiten und dritten Blick nichts mehr auf und eingefallen ist wollte ich mal hier nachfragen ob wer einen Tipp
-
Thread
Noch ein Paar Fragen zum MCP2515
Hallo, noch mal. Muss Euch wieder etwas nerven. Es geht um den MCP2515, den schönen Can-Controller, der mir langsam die Harre vom Kopf weg frißt. Ich kann jetzt endlich alles sauber Empfangen, Interrupt vom MCP nach dem Empfang löschen, Filter funktioniert jetzt
Can-Nachrichten, die ich mit 100kbps abschicke empfangen. Der Inhalt passt dann zwar nicht, aber der MCP reagiert darauf. Warum? Ist das richtig? Danke Gruss Alex
-
Thread
MCP2515 Filter und Maske
werde aus den Datenblatt irgendwie nicht ganz schlau. So sieht meine Initiaizierung aus: [c] Mcp2515_init: 'mcp2515 reset Mcphilf = Spi_reset Reset Css Waitus 10 Spdr = Mcphilf Do Loop Until Spsr.spif = 1 Waitus 10 Set Css Mcp2515_write_register Cnf1 , &H03 Mcp2515
'Maske High Mcp2515_write_register Rxm0sidl , &B01100000 'Maske Low 'Filter Mcp2515_write_register Rxf0sidh , &B10111000 'Filter High Mcp2515_write_register Rxf0sidl , &B01100000
-
Thread
MCP2515 CNF1-3 berechnen
S. schrieb im Beitrag #2126406: > http://www.kvaser.com/en/support/bit-timing-calculator.html MCP2510 != MCP2515
Alex S. schrieb im Beitrag #2126505: >>MCP2510 != MCP2515 > > Sorry, was willst du mir damit sagen? > Ich weiss, dass es das Gleiche ist. != beschreibt in C eine Ungleichheit. Das soll eben sagen, dass MCP2510 _NICHT_ gleich MCP2515 ist
-
Thread
MCP2515 Botschaften Empfangen
Hallo, Ich möchte gerne über einen MCP2515 den Empfang einer Nachricht an einer LED anzeigen lassen. Mit Hilfe von http://www.kreatives-chaos.com/artikel/ansteuerung-eines-mcp2515 http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial
Nun, du hast bereits in der Initialisierung den Interrupt-Ausgang des MCP2515 eingeschalten: mcp2515_write_register(CANINTE, (1<<RX1IE)|(1<<RX0IE)); Hat dieser eine komplette Botschaft empfangen, wird am Atmega der Interrupt 1 ausgelöst. Darauf musst du nun reagieren
-
Thread
MCP2515 Interrupt beim Empfang löschen
Mcp2515_write_register Rxb1ctrl , &B01100000 Mcp2515_write_register Rxm0sidh , &B00000000 Mcp2515_write_register Rxm0sidl , &B00000000 Mcp2515_write_register Rxm1sidh , &B00000000 Mcp2515_write_register Rxm1sidl , &B00000000 'Filter Mcp2515_write_register Rxf0sidh , &B00000000 Mcp2515_write_register Rxf0sidl , &B00000000 Mcp2515_write_register Rxf1sidh , &B00000000 Mcp2515_write_register Rxf1sidl , &B00000000 Mcp2515_bitmodify
-
Thread
SPI haut nicht immer hin
warm geworden ist, läuft die Schaltung nicht stabil. Die SPI Kommunikation zwischen Atmega8 und dem MCP2515 schein nicht ganz ok zu sein. Die Daten kommen MANCHMAL an MCP fehlerhaft an, so dass der MCP2515 nicht darauf reagiert. Wenn ich das Gehäuse abkühle läuft alles wieder. Der MCP läuft mit 16Mhz
sagt. Gute oder schlechte Frequenzen gibt es nicht, nur zu hohe oder zu niedrige. Der 16MHz-Quarz am MCP2515 hat nichts mit dem SPI zu tun, sondern nur mit dem CAN. Signalstärke ( Pegel ) könnte noch ein Grund sein bzw. Signalanstiegszeiten. Zudem kann es zu Signallaufzeitverzögerungen kommen, die bei
-
Thread
uC funktioniert erst nach reset
Sorry, ich habe nicht in den Programmcode oder das Datenblatt des MCP2515 geschaut. Ich war der Meinung dass du zwischen den µCs eine Master-Slave Situation aufbaust. Mit dem CAN Controller MCP2515 hast du aber folgende Situation: µC (Master) -SPI- MCP2515 (Slave) -CAN- MCP2515 (Slave) -SPI- µC (Master)
-
Thread
CAN Bus Protokoll in Datenbank schreiben
Ich verwende einen Mega8 (7,372 MHz) und ein MCP2515 als CAN Treiber. Den Rs232 habe ich auf 57600 Baud eingestellt. Die Bytes des CAN Protokolls werden über den Printbefehl an den PC übertragen. Was ist ein MOB?
rechtzeitig abhole. (Wenn die Filter richtig gesetzt sind) Kann es sein, dass du die Pakete vom MCP2515 nicht schnell genug abholst und diese deshalb verworfen / vom folgenden Paket überschrieben werden?
-
Thread
Welchen Bus?
würde dir angesichts der Störfaktoren auch dringendst zu einem CAN-Bus raten. Der CAN Controller MCP2515 http://www.mikrocontroller.net/articles/CAN#CAN_Controller ist weltweit bekannt und extrem verbreitet. Es gibt abertausende Projekte mit diesem. Als CAN Treiber nimmt man dann meist den MCP2551
-
Thread
Contollerunabhängige Programmierung
festzulegen. wie Schreibe_spi ; lese_spi ; setze_Selektion usw. Gerade externe Controler wie der MCP2515 für CAN benötigen eine Reihenfolge von Befehlen. Das ist bei vielen anderen Sensoren und Aktoren ähnlich. Diese Reihenfolgen müssen immer von allen Implementierungen strikt eingehalten werden. Da
-
Thread
CAN Bus schützen
CAN Bus mit einer Länge von ca 200m und 30 Teilnehmern. Als Hardware habe ich einen AVR Atmega - MCP2515 - MCP2551 eingesetzt. Leider hatte ich nun schon zwei mal das Problem dass wegen Überspannung (Blitzschlag) bis zu 20 CAN Treiber zerstört wurden. Ich habe nun eine Lösung gefunden. Offensichtlich
-
Thread
AT90CAN mit Coprozessor als Supervisor
Supervisor vielleicht nen anderer kleinerer billigerer Controller nehmen? Wenn ich nen tiny mit mcp2515 nehme, ist das auch schon wieder gewaltig denk ich... Danke für die Mühe!
-
Thread
Geschindigkeitssignal Kfz auslesen und interpretien
Der hat kein CAN. Es gibt genug CAN-Controller ICs http://www.mikrocontroller.net/articles/CAN#MCP2515 Die Treiber dazu nicht immer vergessen =) http://www.mikrocontroller.net/articles/CAN#MCP2551 Billiger: AVR + externe CAN Controller + CAN Treiber Teurer AVR mit CAN + CAN Treiber (den braucht
-
Thread
Linker error - undefined reference to `main'
funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=build/mcp2515.o -I../ -std=gnu99 -Wundef -MMD -MP -MF .dep/can.elf.d build/mcp2515.o build/mcp2515_buffer.o build/mcp2515_get_message.o build/mcp2515_send_message.o build/mcp2515_set_dyn_filter.o build/mcp2515_get_dyn_filter.o build/mcp2515_static_filter.o build/mcp2515_write_id.o build/mcp2515_read_id.o build/mcp2515_error_register.o build/mcp2515_regdump.o build/mcp2515_set_mode.o build/mcp2515_sleep.o build/spi.o build/at90can.o
-
Thread
Meinung zu meiner Schaltung
Sieht auf den ersten Blick ganz gut aus. Einen Quarz kannst du weglassen, clkout vom MCP an den AVR. Der MCP2515 und 2551 sollte noch je einen eigenen 100n bekommen.
H.joachim Seifert schrieb im Beitrag #2039107: > Einen Quarz kannst du weglassen, clkout vom MCP an den AVR. Davon würde ich im Experimentierstadion abraten. Die Kommunikation zum MCP läuft ja über SPI, welches nun direkt von dem Takt des MCP abhängig ist.
-
Thread
Microchip CAN Bit Timing Calculator
Hallo, bäuchte den "Microchip CAN Bit Timing Calculator" um einen MCP2515 einzustellen. Leider kann ich keinen Link finden der noch funktioniert. Wäre schön wenn mir da jemand helfen könnte. Gibt es so ein Tool eigentlich auch für den 90can128? Gruß Rene
-
Thread
CAN-Schnittstelle für den PC
Schau dir mal die CAN Controller genau an. Ich meine mich zu erinnern, dass beispielsweise der MCP2515 einen Modus hat, in dem er auch defekte Frames rausrückt. Natürlich hat sowas Grenzen. Wenn du das wirklich ganz genau haben willst, also auch Frames die so schrottig sind, dass sie nichtmal
Thomas W. schrieb im Beitrag #2026830: > Weiß jemand, wo man dieses "MCP2515DM-BM" kurzfristig herbekommt? Der ist technisch auch nicht anders als der interne CAN Controller der PIC18Fxx8, nur eben mit SPI.
-
Thread
200 I/Os Modular mit AVR verbinden
eigentlich bietet der genau das, was ich brauche). Die Module kriegen dann alle einen ATmega162 + MCP2515 soweit klar. Der Master soll jetzt aber den CAN-Bus und Ethernet bedienen. Muss ich jetzt z.B. einen AT90CAN128 nehmen und diesen mit SPI an einen ENC28J60 anbinden, oder kann ich auch zwei Controller
-
Thread
Ford Fiesta TDCI Bj.2006 Elektronikstörung
Terminal machen. Auf allereinfachste Weise könnte ich auch mal einen CAN-Controller z.B. SJA1000 oder MCP2515 an meine alten 8051-Boards anflanschen. Da ist wenigstens die RS232 mit PC-Kommunikation schon implementiert und getestet. Mit guten Kenntnissen über CAN darf ich da wohl sicher schon mal ausnahmsweise
-
Thread
Universelle CAN Bibliothek: undefined reference to `can_init'
Hallo, ich bin gerade an einen Projekt mit einem Atmega32 + MCP2515. Ich benutze die Universelle CAN Bibliothek von kreatives-chaos.com: http://www.kreatives-chaos.com/artikel/universelle-can-bibliothek Ich habe die Bibliothek erzeugt und libcan.a eingebunden
main (void) { //enable the global interrupts sei(); do{ // initialisieren des MCP2515 can_init(BITRATE_125_KBPS); // erzeuge eine Testnachricht can_t msg; msg.id = 0x123456; msg.flags.rtr = 0; msg.length = 4; msg.data[0] = 0xde;
-
Thread
Robuste Datenverbindung
... Servus, CAN ist nicht sonderlich komplizierter als UART oder I2C. Mein Tipp: Nimm den MCP2515 (CAN-Controller) und den MCP2551 (CAN-Treiber). Kosten je ca. 1-2€ Hab dir mal aus dem CAN:Artikel was rauskopiert: MCP2515 * SPI Schnittstelle * 2 Empfangs- und 3 Sendepuffer jeweils
* erhältlich z. B. bei Reichelt (ca. 2€) Es gibt genügend Projekte mit AVRs die sich mit dem MCP2515 beschäftigen. Der MCP2551 ist nur der Treiber (ähnlich dem MAX232 für RS232 halt in diesem Fall für CAN).