Liebe Comunity,
ich möchte einen MCP2515 als CAN-Controller nutzen. Angesprochen wird er
per SPI von einem ATMega 16.
Da es sich um ein Batteriebetriebenes Gerät handelt, möchte ich den
kompletten CAN-Teil abschaltbar machen. Gelöst habe ich das mittels
eines P-MOS in der Zuleitung der Versorgung.
Nun zur eigentlichen Frage:
Wie muss ich die SPI-Leitungen von AVR->MCP2515 gestalten, damit andere
Geräte am SPI nicht beeinflusst werden, wenn der CAN-Teil inaktiv ist.
(Stichwort: "Clamping Diode") Reichen einfach 10k Längswiderstände vor
jedem Eingang?
Bitte um Rat.
>Push>Ich wollte nicht das er nach 2Stunden schon untergeht. Würde mich sehr>freuen wenn mir jemand einen Tipp gibt, wie die Eingänge zu behandeln>sind
Sonst gehts noch oder was?
Wenn hier jeder der nach 10 Minuten keine Antwort
bekommen hat rumpusht, dann hätten wir hier nur noch PUSH.
Also übe dich in Geduld. Dein dringendes Problem ist für
andere nicht dringend.
PS: Anderen Controller nehmen und SPI über USART machen.
Wenn du deinen Chip abschaltest dann SPI deaktivieren
und Leitungen auf Eingänge setzen. Fertig.
Entschuldigung, so sollte es natürlich nicht rüberkommen. War bloß etwas
gefrustet das der Beitrag gleich mal auf Seite 2 gerutscht ist,...
Ich gelobe aber Besserung.
Ich bin mir nicht sicher, ob ich dich richtig verstanden habe, aber ich
möchte SPI weiter nutzen während die Versorgung des CAN-Controllers
deaktiviert ist. Insgesamt hängen vier Slaves parallel am Bus. Und ich
bin mir nun eben nicht sicher wie ich die Eingänge des MCP 2515
beschalten muss, damit die Kommuniaktion zwischen AVR und den 3 anderen
Slaves weiter funktioniert.
Meine erste Idee waren eben Längswiderstände in den SPI-Leitungen für
jeden Slave zu spendieren.
Aber da weiß ich eben nicht ob das auch tatsächlich geht, oder ob ich da
einen Denkfehler habe.
Danke
>Ich bin mir nicht sicher, ob ich dich richtig verstanden habe, aber ich>möchte SPI weiter nutzen während die Versorgung des CAN-Controllers>deaktiviert ist.
Dann besorg dir einen Controller mit zwei mal SPI.
Das war das was ich dir sagen wollte.
>Meine erste Idee waren eben Längswiderstände in den SPI-Leitungen für>jeden Slave zu spendieren.
Im Prinzip geht das schon. 10k sind aber viel zu groß je nach
SPI Frequenz. Bei einem ENC28J60 konnte ich mit 1k maximal
nur noch mit 4MHz arbeiten. Bei einem abgeschalteten Slave
würde das dann aber bei 5V je nach Pegel auf den Leitungen
einen Fehlerstrom von 5mA pro Highpegel verursachen. Da kann
man sich ja mal fragen ob man den Slave nicht besser
eingeschaltet lässt. Ansonsten 74HCT125 in die Leitungen.
@ Johannes (Gast)
>Wie muss ich die SPI-Leitungen von AVR->MCP2515 gestalten, damit andere>Geräte am SPI nicht beeinflusst werden, wenn der CAN-Teil inaktiv ist.
Pack Tristate-Treiber in die Leitungen, in beide Richtungen, z.B.
74HC125. Die gehen auf Tristate, wenn dein MCP ausgeschaltet wird.
Fettig.
>(Stichwort: "Clamping Diode") Reichen einfach 10k Längswiderstände vor>jedem Eingang?
Zuviel, eher 1K.
MfG
Falk
P S Uuuups, hat der Holger ja schon geschrieben.
Vielen Dank an Holger & Falk.
Ich denke das mit den Längswiderständen kann ich also getrost vergessen,
weil da wäre ja dann das anlassen der Module Stromsparender^^
Der Tip mit den 74HC125 ist Super.
Danke
Warum benutzt Du nicht den Sleep-Mode des MCP2515? Damit benötigt Du
keinerlei Hardware und den Stromverbrauch von 5uA wirst Du mit
Komplettabschalt-Logik kaum unterbieten können.
Vom Stromverbrauch gesehen ist der CAN-Treiber eh kritischer, da lohnt
es sich, nach einem stromsparenden Bauteil zu suchen, ggf. auch mit
Sleep-Mode bzw. Shutdown-Pin.
Viele Grüße, Stefan
Oh,....
daran hatte ich bis jetzt garnicht gedacht, das würde natürlich auch
einiges an Aufwand ersparen.
Da ich mit 3,3V arbeite. Würde der SN 65HVD231 gehen? Der besizt wenn
ich das richtig sehe auch einen Sleepmode. Da müsste ich doch zusammen
mit dem MCP2515 im einstelligen µA-Bereich bleiben.
Ja, das geht, den SN65HVD23x habe ich auch schon mit 3,3V (und dem
MCP2515) benutzt, allerdings ohne eine Stromsparoption zu verwenden.
Viele Grüße, Stefan