Re: MCP2515 - SPI zu lahm

Nun habe ich einen AVR mit einem MCP2515 genommen.

Warum keinen 90CAN32/64/128 mit internem CAN-Controller? Damit hast Du das Problem nicht. Die Chips gibts sogar bei Reichelt.

Oder notfalls ein AVR mit externem Datenbus und einem SJA1000 dadran.

Reply to
Frank-Christian Kruegel
Loading thread data ...

Da sich der MCP2515 um das Protokoll kümmert, hast du Richtung AVR nur mit dem Payload der Nachricht zu tuen. 8 Bytes sind 64 Bits, das ganze 4 mal pro Sekunde macht schlappe 256 Bit/s. Milchmädchenmäßig gerechnet wäre also ein SPI-Clock von unter 1kHz ausreichend.

Ist aber natürlich Quatsch. Viel wichtiger ist, wie schnell aufeinander die Pakete maximal eintreffen können, denn, wenn der MCP2515 nicht über eigenen Mehrfach-Pufferspeicher verfügt (weiß ich nicht), dann hast du nämlich maximal nur genau die Zeit zwischen dem Anfang zweier aufeinanderfolgender Pakete, um die Nutzdaten des ersten Pakets vollständig zu übernehmen.

Auf

formatting link
findest du u.a. eine Tabelle, die die effektive Datenrate eines CAN-bus bei 1MBit/s Busgeschwindigkeit auflistet. Bei 8 Nutzbytes pro Nachricht und extended id sind das 489kBit/s.

Du hast also im worst case zweier direkt aufeinander folgender Pakete

64/489000=131µs Zeit, um eine Nachricht komplett rechtzeitig zum AVR zu holen, brauchst also einen SPI-Clock von mindestens etwa 500kHz.

Das ist mit dem AVR kein Problem, jedenfalls nicht, wenn er mit mehr als

2MHz betrieben wird. Das eigentliche Problem dürfte sein, was nach dem Eintreffen eines jeden Datenytes im SPDR passiert.

Was es auch ist, es darf _niemals_ dazu führen, daß weitere, bereits verfügbare Daten erst irgendwann später abgeholt werden. Die beiden Vorgänge Datentransfer und Datenverarbeitung müssen quasiparallel erfolgen, sonst geht die Rechnung u.U. erst bei sehr hohen Taktraten auf.

Die Aufgabe "Datentransfer" muß also so weit wie irgend möglich minimalisiert und von der Aufgabe "Datenverarbeitung" entkoppelt werden. Und sie muß so zeitnah wie irgend möglich der Vorgabe des MCP2515 folgen, die in irgendeiner Form meldet "Daten verfügbar".

Reply to
Heiko Nocon

Weiter sollte Rolf beachten, dass etliche Chips (z.B. von Analog Devices) einen Data Transfer Abort hinlegen, wenn SCLK unter eine gewisse Schwelle faellt. Da hat sich schon mancher gewundert, warum scheinbar nichts ankommt.

--
Gruesse, Joerg

http://www.analogconsultants.com/
Reply to
Joerg

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.