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.
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.
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
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".
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/
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.