Hallo,
hat Jemand von euch lesenden mit dem Bauteil schon mal gearbeitet?
Gigantische Probleme seit Tagen mit dem Chip.
Nur um ein Beispiel zu nennen:
Lese Register aus. Inhalt 0x18.
Lese noch mal aus, 0x98 auf einmal.
Und so immer wieder, fast mit jedem Register. Irgendwelche Randomzahlen
drin.
An der Auswertung kann es nicht lieger, der Logikanalyzer passt mit auf.
Und sonst ist das Datenblatt kompletter Müll, leider.
Deren API möchte ich aus mehreren Gründen nicht benutzen. Erst mal
scheint die mir sehr ineffizient, zweitens funktioniert die (bei mir)
nicht, drittens blicke ich da nicht durch, bzw kann die nicht verfolgen
- kann eben nicht programmieren.
Möchte im Can Classic Mode erst mal benutzen, bevor es an CANFD geht.
Wegen größerer Datenmenge soll am Ende CANFD sein.
Habe aktuell keine konkrete Frage, bin einfach nur verwirrt.
Software Reset mit 0x00 0x00 scheint auch nicht wirklich einen Rest
durchzuführen.
An der Hardware wird es wohl nicht liegen. Wie gesagt, habe einen
Logikanalyzer parallel dran.
Eine konkrete Frage hätte ich vielleich doch. Muss man den internen Ram
benutzen und initialisieren? Vorausgesetzt ich möchte keine verschickten
Nachrichten etc. speichern.
Schreibe gerne meinen Initialisierungscode rein, bavor einer fragt.
Warum Initialisierung aktuell so ist, wie die ist- ist egal.
Das ist mittlerweile verbastelt alles :(
Beispiel:
OP Mode auslesen. Siehe Bild.
Was davor geschah:
1. Strom an
2. kurz warten.
3. SW Reset 0x00 0x00 und kurz warten
4. Request Configuration mode Reg 3, 0x04 und kurz warten
Paar Mal OP Mode auslesen.
Ein mal war 0x98 dazwischen, dann nur noch 0x00 als Status.
Configurationsmode angeblich verlassen. Warum? Durch was? Wieso das
denn?
Kann diese Prozedur mehrmals wiederholen, es kommt immer was anderes
raus.
LG
- Mit welcher Frequenz taktest du den MCP?
- Welche Frequenz hat Dein SPI-Takt?
Zitat aus dem Datenblatt:
"Note 1: The frequency of SCK has to be less than or equal to half the
frequency of SYSCLK. This ensures that the synchronization between SCK
and SYSCLK works correctly."
>Mit welcher Frequenz taktest du den MCP?
mit 4 Mhz aus externer Quelle.
PLL Bit ist aktiviert, somit ist mein SYSCLK 40Mhz (hoffentlich)
>Welche Frequenz hat Dein SPI-Takt?
5Mhz.
Danke, das ist ein sehr guter Hinweis.
Microchip_Reg_Write8(0xE00, 0x01);
Wird gleich zu Anfang gemacht.
Aber wann wird es übernommen?
Ich stelle kurz 1Mhz zum Testen ein.
>Zitat aus dem Datenblatt
Dieses Datenblatt.... :(
Not schrieb:>>Mit welcher Frequenz taktest du den MCP?> mit 4 Mhz aus externer Quelle.> PLL Bit ist aktiviert, somit ist mein SYSCLK 40Mhz (hoffentlich)>>>Welche Frequenz hat Dein SPI-Takt?> 5Mhz.> Danke, das ist ein sehr guter Hinweis.> Microchip_Reg_Write8(0xE00, 0x01);> Wird gleich zu Anfang gemacht.> Aber wann wird es übernommen?> Ich stelle kurz 1Mhz zum Testen ein.>>>Zitat aus dem Datenblatt> Dieses Datenblatt.... :(
PLLEN ist per default "0", also keine PLL und somit 4 MHz SYSCLK...
Du müsstest wohl während der Initialisierung des MCPs deinen SPI-Bus
deutlich langsamer takten.
Vielen Dank für Deine Antwort, hat mir sehr geholfen.
Habe gerade auf 1Mhz gestellt.
das Teil antwortet nun wenigstens immer gleich :(
Ich werde mich melden, wenn ich noch Probleme bekomme.
Schönes Wochenende
Not schrieb:> Microchip_Reg_Write8(0x03, 0x04);
Der MCP2517 hat 32-Bit Register und 16-Bit Adressierung:
Üblicherweise sendet man zuerst die 16-Bit Registeradresse gefolgt von
den 4 Datenbytes.
Funktioniert bei mir jedenfalls problemlos.