-
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 rechten
-
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, mittels
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.print("--- START LOOP --- "); Serial.println(counter, DEC); Serial.println("Reading MCP2515 status:"); digitalWrite(SLAVESELECT, LOW); SPI.transfer(READ); SPI.transfer(CANSTAT); canStatus = SPI.transfer(0); digitalWrite(SLAVESELECT, HIGH); Serial.print("MCP2515 Status: "); 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)
-
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 dann
-
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 hätte
-
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 auch
-
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_write_register Cnf2 , &HBA Mcp2515_write_register Cnf3 , &H07 'Interrupt einstellen Mcp2515_write_register Caninte , &B00000001 'Interrupt auslosen, wenn Nachricht in buffer 0 liegt Mcp2515_write_register Canintf
-
Thread
MCP2515 CNF1-3 berechnen
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
Cnf2 , &HBA Mcp2515_write_register Cnf3 , &H07 'Interrupt einstellen Mcp2515_write_register Caninte , &B00000011 Mcp2515_write_register Canintf , &B00000000 Mcp2515_write_register Rxb0ctrl , &B01100000 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
-
Thread
SPI haut nicht immer hin
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
. 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 bestimmten
-
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 build
-
Thread
Meinung zu meiner Schaltung
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.
-
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 klar
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
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
(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; msg.data
-
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
für mich ist jetzt, ob ich einen AT90CANxx nehme, oder den von Michael Lehrmann vorgeschlagenen MCP2515 (+ Atmega). Hat da jemand Erfahrung? Grüße Tüftler
-
Thread
CAN Botschaft
Eine kurze, verständliche Einführung mit allen wesentlichen Details findet sich im Datenblatt zum MCP2515: http://ww1.microchip.com/downloads/en/DeviceDoc/21801d.pdf Chris D.
-
Thread
MCP2515 behebn von Buffer0 Overflow
mcp2515_write_register( CNF1, 0x01 ); mcp2515_write_register( CNF2, 0xB8); mcp2515_write_register( CNF3, 0x05 ); mcp2515_write_register( CANINTE, (1<<RX1IE)|(1<<RX0IE) )
der Empfangsmaske loeschen, // damit werden alle Nachrichten empfangen mcp2515_write_register( RXM0SIDH, 0 ); mcp2515_write_register( RXM0SIDL, 0 ); mcp2515_write_register( RXM0EID8, 0 ); mcp2515_write_register( RXM0EID0, 0 ); mcp2515_write_register
-
Thread
CAN-Bus Switch Multiplexer
Es gibt aber MCs, die haben bis zu 4 CAN-Controller. Oder man hängt zusätzliche per SPI ran (MCP2515). Peter
-
Thread
Hilfe zum Makefile --> *.eep
Startwerte" mit auf den Weg geben. Diese sind bspw. so im c-file vorhanden: const uint8_t eep_mcp2515_config[] EEMEM = { 0x01, 0xB5, 0x01, 0xFF, 0x06 }; Aber mein Makefile wirft leider kein *.eep aus welches ich zum Mega8 übertragen könnte. Kann mir einer von Euch die nötige Erweiterung kurz
-
Thread
Zulässiger Masseversatz bei CAN-Übertragung
funktioniert ohne jegliches Problem. Als CAN-CAN Kuppler verwende ich AT90CAN128( Seite Kernbus) - SPI - MCP2515(Seite Gartenbus); fuer die galvanische Trennung setze ich 6N137 fuer die beiden Datenrichtungen, einen TMA0512 DC Wandler fuer die busseitige Stromversorgung ein. Die Feuerprobe hat dieses Konzept
-
Thread
Konzept zu einem Hausbus auf CAN-Bus Basis und die Enstehung des Konzeptes
habe ich zwischen ATMEL's AT90CAN128 und einem "normalen" kleinen AVR mit externem CAN-Controller (MCP2515 oder SJA1000) geschwankt. CAN-Übertragung als Bit-für-Bit-Protokoll in Software - nein Danke. Die Entscheidung ist nun aber zu gunsten des Microchip PIC18F458(0) in TQFP44 gefallen, was weniger Platz als ein MEGA88 + MCP2515 benötigt. Einen Schaltregler zur Versorgung der Einzelplatinen habe ich auch verworfen und stattdessen auf einen LDO-Linearregler gesetzt. Die oben genannten TJA-Bausteine sind aus dem 12V-KFZ
-
Thread
MCP2515 Extended Filter J1939 NMEA2000
Hallo bin gerade am Bau eines Anzeigegerätes um NMEA 2000 Daten auf ein GLCD zu bringen für mein Boot. Bin gerade dabei meine Switchbank mit der PGN 127501 zu versorgen um Schaltzustände zu empfangen oder zu senden dazu will ich an der Switchbank den filter setzten 127501 habe mir vorgestellt es so zu machen. Bit Maske 110011111001000001 101000010 11 komplette Message id Prio PGN Exte ident 00011111111111111111110000000 Maske 0111110010000011010 Filter Filter buffer0 RXF0SIDH=00011111 RXF0SIDL=00101010 RXF0EID8=00001101 RXF0EID0=00000000 Filter buffer1
-
Thread
mcp2515 anschaltung tranceiver
Pinbelegung Cancontroller zum CAN Tranceiver. Nach dem Schaltplan von Kreativ Caos ist der RXPIN (MCP2515) mit dem RXPIN (MCP2551) verbunden habe bei mir jetzt gemessen das funktioniert doch so nicht oder der rx muß doch mit dem TX und umgekehrt??? Oder???? Bekomme einfach nichts aus dem BUS
-
Thread
Frage bzgl. Filter am MCP2515
Hallo! Wer kennt sich mit dem MCP2515 aus? Meine Frage ist, ob man mehrere Filter eingeben kann? z.B. 5. Lg Sven
-
Thread
CAN- als Haus-Bus
Knoten eigentlich nichts tut. Dummerweise kann man den Stromsparmodus beim von mir eingesetzten MCP2515 nicht nutzen, weil man dann laut Datenblatt das Frame verliert, das ankommt während der MCP2515 schläft. Daher ist eine Idee, eventuell "dumme" Knoten einzuführen, die kein CAN benutzen und schon
beherrscht? Also außer AT90CAN*, der braucht schon im IDLE-Modus mehr Strom als mein ATmeta644 (IDLE) + MCP2515 (aktiv) zusammen.