-
Thread
ATmega644PA und MCP2515 SPI Problem
Hallo Ich übe jetzt schon ca. 1 Woche an der Kommunikation zwischen ATmega644PA und MCP2515 mit SPI, herum. Das Programm wurde in Atmel Studio 7 geschrieben und ist eigentlich ein Abbild vom MCP2515-Tutorial, der Seite: http://www.kreatives-chaos.com/artikel/ansteuerung-eines-mcp2515
für meine MCP2515, das lesen der Register sind noch Überbleibsel vom debuggen. Hast du mit dem Oszillator mal den CLKOUT gemessen ? Setz den mal auf einen anderen Wert als der Startwert, dann siehst du ob der MCP2515
-
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
OpenHAB mit Raspberry PI / CAN
verwenden. > Kannst du das begründen? Der MCP2562 kann mit zwei Spannungen arbeiten: Vio zum MCP2515 mit 3V3 und Vdd 5V CAN-Bus. Das entspricht der CAN-Spezifikation. Mit einem MCP2551 (5V) brauchst Du einen Spannungsteiler zum MCP2515. > > Ich werde mal Tests machen mit einem MAX3050 / MCP2551
aber letztendlich immer noch nicht 100%. Spasseshalber habe ich mal SPI Treiber (bitbanged) und MCP2515 Treiber zusammen gemanscht. Das Ergebnis war deutlich besser als ich erwartet habe (OpenWRT Router): https://github.com/GBert/openwrt-misc/tree/master/mcp2515-banged Die Leistung (Frame Rate
-
Thread
MCP2515 Erfahrungen
zu den MCP2515 zu verbinden? Gemeinsame Erdung zwischen den Arduinos bzw. MCP2515 (3te Leitung) wird keine benötigt? 2.) Teilweise liest man im Internet, dass man am Ende der RX/TX Leitung einen Widerstand benötigt
sitzt (hast du den?). Der MCP2515 ist nur die Schnittstelle zum physical layer. > > Trotzdem hätte ich noch eine paar Fragen: > > 1.) Reicht es tatsächlich, die RX & TX Leitungen zu den MCP2515 zu > verbinden? Gemeinsame Erdung
-
Thread
Erfahrung bei der Adressierung eines CAN Bus
nun mit dem folgenden Filter vom Controller in die Buffer geladen werden Mcp2515_write_register Rxm0sidh , &B00000001 Mcp2515_write_register Rxm0sidl , &B00100000 Mcp2515_write_register Rxm0eid8 , 0 Mcp2515_write_register Rxm0eid0 , 0 Mcp2515_write_register Rxm1sidh , &B00000001 Mcp2515_write_register Rxm1sidl , &B00100000 Mcp2515_write_register Rxm1eid8 , 0 Mcp2515_write_register Rxm1eid0 , 0 Leider tut sie das aber nicht! Erst wenn ich den Filter ausschalte, kommt die Nachricht
-
Thread
MCP2515 Probleme
Anliegen war es ja, einen passiven CAN "Empfänger" zu bauen. Durch die o.g. Dioden zwischen dem MCP2515 und MCP2551 könnte dies ja Hardwaremäßig umgesetzt werden. Kann man dies auch Softwaremäßig umsetzten? Also das man dem MCP2515 vom µC keine Frames sendet. Oder generiert der MCP2515 selbständig
> P.S.: Im Normal Mode geht es nicht, da der MCP2515 selbstständig Errors > und Acks erzeugt. Also werden Error Frames direkt vom MCP selbständig erzeugt. Mein Verständnis: - Der MCP2515 schafft es die empfangene Nachricht in Echtzeit zu prüfen
-
Thread
Takt von ATmega8 für MCP2515 verwenden?
MCP2515 schrieb im Beitrag #1814117: > Na ja, wenn ich mal den Vorteiler für den CLKOUT Pin des MCP2515 > verändern sollte bzw muss, dann beeinflusst das direkt die SPI Frequenz > des ATmega. Na und
MCP2515 schrieb im Beitrag #1813895: > Kann ich den XTAL2 Pin des ATmega8 direkt an den OSC1 Pin des MCP2515 > anschließen? Nimm nen ATmega88 und hänge den MCP2515 an PB4 (CLK-Out). Peter
-
Thread
CAN-Controller MCP2515 per SPI an ATM128
("nop"); SPI_TX(MCP2515_RESET); asm("nop"); SPI_PORT |= (1<<SPI_SS); MCP2515_WRREG(MCP2515_CNF1,5); asm("nop"); test = MCP2515_RDREG(MCP2515_CNF1); testtext[1]=test+48; LCD_TextOut(testtext);
(MCP2515_WRITE); asm("nop"); SPI_TX(Adresse); asm("nop"); SPI_TX(Daten); asm("nop"); SPI_PORT |= (1<<SPI_SS); return 0; } uint8_t MCP2515_RDREG(uint8_t Adresse) { uint8_t Daten
-
Thread
Can auf 8 Bit AVR ohne entsprechende Schnittstelle
CAN-Controller (z.B. MCP2515) über SPI angebunden und ein CAN-Transceiver daran, das wäre der Klasiker.
hängen geblieben? Fünf Custom-Platinen in professioneller Technik kosten heutzutage weniger als ein MCP2515.
-
Thread
CAN Grundlagenfrage
Danke für die SUPER schnelle Antwort. Dann habe ich soeben mein erstes CAN Telegramm mit einem MCP2515 versendet. :-) Vielen Dank ronald
Grundstruktur an geht an die Anleitung von http://www.kreatives-chaos.com/artikel/ansteuerung-eines-mcp2515 gehalten. Ronald
-
Thread
DIY Can Interface! Brauche dringend Hilfe
#4616309: > Das gesuchte Signal ist PID01 (MIL Status) > wäre sowas möglich mit zum Beispiel einem MCP2515 Can Bus Module? Außer dem MCP2515 wirst du noch einen CAN Bustreiber und einen Mikrocontroller brauchen, der den CAN-Controller steuert. Die Kodierung der CAN Botschaft für die Abfrage vom Monitorstatus
Habe ich mal gebaut, es müssten sogar noch Platinen da sein. CAN-Transceiver, MCP2515, ATMega8, serielle Schnittstelle, 2 masseschaltende Ausgänge mit FET
-
Thread
CAN mir das einer mal erklären?
wieder zu Hause. > Danke für die vielen Tipps. Werde nächste Woche von oben abarbeiten. > Der MCP2515 ist mir auch schon ins Auge gestochen und dass du gute Ja wer auf Oldtimer steht nimmt den MCP2515. Teslafahrer nehmen den MCP2517FD (2,2€) ;-)
so wäre, dann könnte ich mir vorstellen auch diesen Weg zu gehen. Hatte sogar irgendwann mal ein MCP2515-BM Kit gekauft, aber nie genutzt, weil ich dann doch zu faul war mich in diese einzuarbeiten ;-)
-
Thread
Probleme mit mcp2515
(100); // Einfach mal ein bißchen warten MCP2515_Reset();// MCP2515 resetten Delay_ms(100);// Auf den MCP2515 warten // Konfiguration des MCP setzen für 125kbps @ 8MHz MCP2515_Write(CNF1,0x01);// Baudrate Prescaler setzen MCP2515_Write(CNF2,0xB8
MCP2515_Reset();// MCP2515 resetten Delay_ms(100);// Auf den MCP2515 warten // Konfiguration des MCP setzen für 125kbps @ 8MHz MCP2515_Write(CNF1,0x01);// Baudrate Prescaler setzen MCP2515_Write(CNF2,0xB8
-
Thread
MCP2515 - Registerdaten werden falsch gespeichert
wurde 0x63D gelesen. Auf der Suche nach der Ursache ist mir beim durchsehen der Konfiguration des MCP2515 aufgefallen, daß die Konfigurationswerte nicht mit den gesendeten Werten übereinstimmten. Um den Effekt darzustellen habe ich eine Schleife eingebaut, die Register des MCP2515 schreibt und dann
Der MCP2515 funktioniert am AVR. Ist also kein prinzipielles Problem, sondern eines bei dir. SPI falsch konfiguriert? Code?
-
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
> 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
-
Thread
CAN lesen und mit ATMEGAx weiterverarbeiten
mehreren Herstellern. Ich habe den: http://www.peak-system.com/index_de.html Alles, was du für den MCP2515 an Software brauchst, findest die hier super behandelt - nochmal ein Lob von mir an diese Seite! http://www.kreatives-chaos.com/artikel/ansteuerung-eines-mcp2515#empfangen
, ich habe heute die Seite ordentlich durchgelesen und viele Leute schreiben ja positiv von der MCP2515 Variante. Erst dachte ich eher in die Richtung AT90CAN aber zu dem MCP2515 sind natürlich viele nützliche Infos zu finden. Da werde ich wohl zu der Kombination greifen: MCP2551 / MCP2515 /ATMega8
-
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
MCP2515 schon wieder. Fehlererkennung abschalten o.Ä
scheint, du hast ein grundlegendes Verständnisproblem. Prinzipiell hast du die Möglichkeit, den MCP2515 über die SPI deutlich schneller zu bedienen, als eine CAN-Botschaft dauert (ok, bei 1MBit und 2 MCP2515 kann es je nach MC-Takt eng werden). Das gilt sowohl fürs Lesen einer Botschaft als auch das
Alex S. schrieb im Beitrag #2389310: > Ich benutze 2 Can-Controller vom Typ MCP2515 Das heißt also, Du mußt 2 CAN-Busse bedienen. Jeder MCP2515 kriegt seine eigene Interruptleitung und seine eigenen 2 FIFOs. Ein Empfangsinterrupt liest ein Paket in den FIFO ein und das wars
-
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
enum Konstanten
Remo H. schrieb im Beitrag #5266547: > MCP2515_FILTER_EXTENDED(SWC_RH_SWButtons.CAN_ID) Einfach nur: MCP2515_FILTER_EXTENDED(CAN_ID) Ein enum definiert einfach nur eine Reihe "globalen" Konstanten. In C++ kannst du "enum class" statt "enum" schreiben und dann: MCP2515_FILTER_EXTENDED(SWC_RH_SWButtons::CAN_ID),
-
Thread
Raspberry Pi 4 2 Port CAN Bus High Speed & Low Speed MCP2515 MCP2551 TJA1055T
Raspberry Pi 4 HAT 2x CAN (SPI), 1x CAN High Speed, 1x Low Speed High Speed 500 kbits SPI0 > MCP2515 > MCP2551 > Antrieb CAN und Diagnose CAN Low Speed 100 kbits SPI1 > MCP2515 > TJA1055T > Comfort CAN (AUDI/VAG) Wozu: Ich habe mir für meinen T4 Audi A8 4H Multikontur Sitze mit allem was
einfach zu löten. Ich hab mal ein Foto von einer selbst gemachten (geätzten) Platine von mir mit MCP2515 und TJA1042 an einem ATXmega angehängt. So könnte das dann aussehen..
-
Thread
MCP2515 und Filter
Identifier zulassen und filtern mcp2515_write_register( RXB1CTRL, (1<<RXM1)); //Filter mcp2515_write_register( RXF0SIDH, 0b11110111); mcp2515_write_register( RXF0SIDL, 0b00000000); mcp2515_write_register( RXF0EID8, 0b00000000); mcp2515_write_register( RXF0EID0, 0b00000000); //Maske mcp2515_write_register( RXM0SIDH, 0b11111111); mcp2515_write_register( RXM0SIDL, 0b00000000); mcp2515_write_register( RXM0EID8,
-
Thread
MCP2515 Buffer Overflow?
µC initialisieren nicht beschaltete Pins aus Ausgang setzen Interrupts konfigirieren. INT0 1. MCP2515 1. MCP2515 initialisieren (nur zum Lesen) 2. MCP2515 initialisieren (nur zum Senden) DO IF A = 1 then (Leitung INT0 ist mit dem INT Pin vom MCP2515 verbunden) Empfangsbuffer erkennen (
Hast du dir auch schon die errata-pdf auf der microchip-seite für den MCP2515 angesehen? Könnte hilfreich sein!
-
Thread
Suche einfache Lösung für SPI zu CAN
http://www.kreatives-chaos.com/artikel/ansteuerung-eines-mcp2515 Funktioniert gut.
kann, da hast ein Atmega 32 mit MCP2515.
-
Thread
CAN Kommunikation
#define SUPPORT_EXTENDED_CANID 1 #define SUPPORT_TIMESTAMPS 0 #define SUPPORT_MCP2515 1 #define MCP2515_CS B,2 #define MCP2515_INT D,2 Nur um Missverständnisse auszuräumen, da ich bei "Setting for MCP2515" nicht ganz sicher war. Hier gebe ich doch die Ports an, mit denen CS und INT vom MCP 2515 mit meinem Mikrocontroller verbunden sind???
-
Thread
Schaltplan für CAN
Hi, ich habe einen Schaltplan erstellt mit einem PIC24F, MCP2515 und MCP2551. wäre cool, wenn einer mal drüber gucken könnte. Vor allem bei der verbindung vom PIC zum MCP2515. Wenn das alles richtig ist, würde ich daraus das Board erstellen. Johannes
ist das riskant... > 1.) So lassen wie es ist (bis auf INT vom mcp2515) da ich aber keinen > Interrupt-pin am PIC mehr frei habe müsste ihc mir da eh was anderes > überlegen ...besonders wenn Du den mcp2515 nur gelegentlich pollst. Ich rate sehr zu einem uC mit
-
Thread
mcp2515 probleme am SPI
CANSTAT) senden soll, dann fehlt noch ein drittes Bytes, das sog. dummy-Byte, das man noch an den MCP2515 senden muss, damit der MCP2515 den Registerinhalt auf MISO legt. Im Klartext funktioniert das auslesen eines Register des MCP2515 so: 1. cs low 2. read befehl senden 3. Registeradresse senden
steht aber alles im Datenblatt, sogar mit c-beispiel). Bevor du aber irgendein SPI Kommando an den MCP2515 sendest, solltest su schon ein bisschen warten (siehe MCP2515 Datenblatt 8.1)
-
Thread
Verständnisfrage CAN-Bus
Sachen die passieren sollen, wie Datenübermittlung). Um zwei CAN-Knoten aufzubauen brauchst du 2 MCP2515 und 2 PCA82C250. Und natürlich jeweils noch einen µC, der die MCPs ansteuert.
mit dem SJA1000 und dem PCA82C250 gemacht. Ging einwandfrei. Als nächstes will ich das mit dem MCP2515 machen. Habe aber im Moment noch keine Zeit dazu. Grüße Andreas
-
Thread
Can Bus galvanische Trennung
, welche ich über die CAN-Leitungen mitziehe? Oder benötige ich zwischen den Datenleitungen von MCP2515 zu MCP2551 auch einen Optokoppler? lG
Kondensator#Entkoppelkondensator > Was am Schaltplan noch fehlt, ist die Verbindung vom Arduino zum MCP2515 > (welcher die gleiche Stromversorgung wie vom MCP2515 nutzen wird). Und warum lieferst du dann nur halbfertige Schaltpläne? Wenn du es eilig hast, gehe langsam. Konfizius > ADuM1200BRZ
-
Thread
MCP2515 CAN Problem (Arduino)
Leitungslänge ist 50cm mit 1x 120 Ohm. Meine Frage ist, ob jemand Erfahrungen mit dem CAN Modul MCP2515 zusammen mit industriellen CAN Geräten hat? Habe auch noch verschiedene Libraries durchprobiert, alles erfolglos. CAN MODUL: MCP2515 https://cdn-reichelt.de/documents/datenblatt/A300/SBC-CAN01
CAN-Modul einschliesslich Software testen. Noch ein spezieller Hinweis zur Initialisierung des MCP2515. Wenn du einen RESET-Befehl (0xC0) an den MPC2515 sendest, um den MCP2515 in den COnfiguration-Mode zu setzen, solltest du mindestens 10ms warten, bis du weitere Befehle an den MCP2515 sendest
-
Thread
MCP2515 CAN Controller
http://www.mikrocontroller.net/forum/forum.php?query=MCP2515&forums%5B%5D=1&groupbythread=on&number=20&action=sendsearch
Hallo, ich habe die Sourcen von Microchip für den MCP2510 an den MCP2515 angepaßt. Das MCP2515.h ist komplett neu. Ein kleines Beispiel ist auch dabei. Ist für den ATmega128 geschrieben. Gruss Steffen
-
Thread
Einsteiger bei AVR und Can
hardware gesendet :) Ok, zur erläuterung des folgenden textes: spi on = shipselectleitung meines mcp2515 auf low (=aktiv) spi off= na was wohl :-) spi = xxxxx = schiebt das dort stehende Byte per hardware spi aus initialisierung des mcp2515 (laufendes hardware spi vorausgesetzt) ## SoftwareReset
(SPI)--> MCP2515 --> Can-Leitung Schon mal danke im Vorraus.
-
Thread
komisches Problem SPI Takt MCP2515
@Ralph der MCP2515 ist ein CAN Controller der per SPI angeschlossen wird. Also zwischen MCP2515 und Mega8 (der hat keinen CAN) läuft SPI und zwischen den Modulen läuft CAN (per MCP2515) @Ale das hatte ich auch erst
eher an CAN Diagnosetools wie zb Canalyzer von Vektor. Und durchforste mal die Datasheets vom MCP2515 welche SPI Bitraten zu welchen Canbitraten passen. Gruß Ralph
-
Thread
I2C als "Hausbus"
Hallo Stefan, hast du zwischen die SPI Anschlüsse AVR und MCP2515 Widerstände gemacht, damit die ISP Programmierung beim AVR noch geht? Mike
Hallo Stefan, in einer Appl. von Microchip ist nach dem MCP2515 noch ein Treiber MCP2551 geschaltet, ich gehe mal davon aus der ist nötig? Mike
-
Thread
Kommunikation mit CAN zwischen MCP2512 und 80c592
Kommunikation CAN verwendet(sourcecode habe ich). Nun möchte ich mit meinem ATMega128 uber einen MCP2515 mit dem 80c592 komunizieren. Dei kommunikation mit dem MCP2515 funktioniert, doch die beiden CAN-Controller scheinen sich nicht zu verstehen ;-). Ich nehme an, dass es an der Baudrate liegt, schaffe es aber nicht die richtigen Registerwerte für meinen MCP2515 zu berechnen(ich verstehe es einfach nicht ;-) ) Baudrate ist 19200 Bps Taktfrequenz MCP2515: 11,0592 MHz Taktfrequenz 80c592 11,0592 MHz BTR0=0x51 BTR1=0x76 Da durch BTR0 und BTR1 die
-
Thread
Wie encodiert ihr Can Bus aus?
Seeed_Arduino_CAN-master und CAN_BUS_Shield-1-master von Mebus geht. Wenn "init failed" zeigt, sind die MCP2515-Chips unterschiedlich?
Robotiker schrieb im Beitrag #6726290: > Wenn "init failed" zeigt, sind die MCP2515-Chips unterschiedlich? MCP2515 bleibt MCP2515. Was soll sich da unterscheiden? Ich kenne mich mit dem ganzen Arduino-Gedöns nicht so aus, aber das von Dir verlinkte Board hat ja offensichtlich
-
Thread
MCP2515 CAN Bus Ausgabeproblem
Hallo! Zur Umsetzung eines Bussystems würde ich gerne den CAN-Bus und dazu den Controller MCP2515 in Verbindung mit einem MCP2551 verwenden. Die SPI Verbindung zu MCP2515 erfolgt ordnungsgemäß: es können sowohl Register beschrieben als auch gelesen werden. Nachdem die Register geladen und
Konnte mich seit langem mal wieder mit dem MCP2515 auseinandersetzen und hab auch gleich meinen Fehler bzw. meine Fehler entdecken. Zum einen gab es einen Wackelkontakt auf der RX-Leitung des MCP2515 und zum anderen hat das Bit-Timing nicht gepasst
-
Thread
MCP2515 Oszillator und SPI-Takt
generiert. Die einzige Abhängigkeit besteht darin, dass die SPI-CLK nicht höher als 1/n des MCP2515 sein darf (n = 2, 4 oder 8, bitte selber nachlesen). Viele Grüße, Stefan
H.Joachim S. schrieb im Beitrag #5060049: > -Quarz am MCP, clkout vom MCP2515 ist Takt für den ATMega Bedarf aber zusätzlicher Initialisierung, da der Clk nach dem Reset des MCP2515 zunächst durch 8 geteilt wir.
-
Thread
USBtin - Maximale Geschwindigkeit? - Alternativen mit AVR
muss nicht nur die reinen CAN-Daten über den SPI einlesen. Für jede Status- und IRQ-Abfrage an den MCp2515 muss eine SPI-Übertragung gestartet werden. Dadurch steigt der Overhead extrem. Ich habe selbst den MCP2515 in einem Projekt verbaut und fand das damals extrem nervig. Hast Du schon einmal darüber
nicht nur die reinen CAN-Daten über den SPI > einlesen. Für jede Status- und IRQ-Abfrage an den MCp2515 muss eine > SPI-Übertragung gestartet werden. Dadurch steigt der Overhead extrem. > Ich habe selbst den MCP2515 in einem Projekt verbaut und fand das damals > extrem nervig. Ahh, alles klar.
-
Thread
SPI CAN Controller mit tieferer Pufferung
Wir benutzen momentan den mcp2515 an einer Linux CPU. Problematisch ist, dass der Baustein nur 2 Empfangspuffer hat, was bei hoher Baudrate zu Überläufen führt. Gibt es eine SPI CAN Alternative mit tieferer Pufferung? Ich habe
unterschiedlich wahrscheinlich auch das generelle Verhalten. Trotzdem könnte man auf Basis des mcp2515 starten.
-
Thread
CAN Gateway auf ein neues
100kBps. Das Gateway selber besteht aus einem AT90CAN128 (kleiner ginge auch leicht) und einem MCP2515. Der AT90CAN spielt die Rolle des Knotens am zentralen Bus, der gartenseitige Partner ist ein MCP2515, die beiden sind mit SPI gekoppelt (alle anderen Knoten am Gartenbus sind AT90CANs. Die Software
BCr_AT90CAN_Prozessoren. Am Ende in den Referenzen gibt es auch den Verweis auf die entsprechende MCP2515 Loesung. Wenn Du willst, kann ich aber mein MCP2515 Modul hier ins Forum legen, ich habe doch einiges daran (meiner Meinung nach) verbessert und freundlicher fuer den Einsatz in solch einem Gateway
-
Thread
Atmega mit oder ohne integriertem CAN?
Platzgründen will man einfach keine externen CAN-Controller haben. Bevor jemand im echten Leben einen MCP2515 verbaut, nimmt er für wenig Geld mehr einen PIC18, der eine deutlich verbesserte Version des MCP2515 gleich eingebaut hat, und das ohne SPI-Flaschenhals und ohne zweiten Quarz. Deswegen gibts vom
quasi nicht Bits, die dich nicht interessieren, weglassen. Aber zumindest ist der Befehlssatz des MCP2515 ganz gut hierfür optimiert.
-
Thread
AVR, Atmega644 SPI im Bootloader kein output
; _delay_us(250); // MCP2515 per Software Reset zuruecksetzten, // danach ist er automatisch im Konfigurations Modus RESET(MCP2515_CS); spi_putc_c(SPI_RESET); _delay_us(10); SET(MCP2515_CS); ....... [/c]
im Bootloader gibt es mit dem 644 problme mit dem 328 geht es einwandfrei. [c] SET_OUTPUT(MCP2515_CS); SET(MCP2515_CS); PORT_SPI &= ~((1 << PIN_NUM(P_SCK)) | (1 << PIN_NUM(P_MOSI))); DDR_SPI |= (1 << PIN_NUM(P_SCK)) | (1 << PIN_NUM(P_MOSI)); SET(MCP2515_CS); BOOT_LED_OFF
-
Thread
CAN-Bus MCP2515, keine Antwort vom MCP2515
(Ports usw.). Wenn ich nun was über SPI an den MCP2515 schicke kann ich sicher gehen das SPI es schickt, da ich es über ein ozilloskop geprüft habe. Leider macht der MCP2515 keine mucks. Er sollte ja eigentlich das SPIF bit zurücksezen: unsigned
http://www.kreatives-chaos.com/artikel/ansteuerung-eines-mcp2515