Forum: Mikrocontroller und Digitale Elektronik SJA1000 ungerade Register


von Roland (Gast)


Lesenswert?

Hallo, ich möchte einen SJA1000 mit dem FPGA CycloneII ansteuern. Um die 
Spannungspegel anzupassen ist zwischen FPGA und SJA1000 ist ein 
Levelshifter installiert (s.Anhang). Das Schreiben und Lesen von geraden 
Registern klappt,
aber sobald ich auch nur einmal eine ungerade Adresse übertrage, kippt 
das ResetRequest-Bit ( RR CR.0 ) vom Controlregister wieder auf High 
(ResetMode).
LAut Datenblatt gibt es für dieses Verhalten keine Erklärung. Der 
Resetmode kann nur durch einen Hard- oder Software Reset, sowie durch 
Bus-Off erreicht werden. Der Bus ist aber on, sagt mir zumindest das 
Statusregister mit der geraden Adresse 2. Das gleiche Verhalten zeigt 
sich sowohl im Intel als auch  im Motorola Mode. Einige Adressen wie 
z.B. Register 11 (Transmit Buffer) kann man nur im Operation Mode 
beschreiben, dies ist natürlich so nicht möglich.
Ich kämpfe jetzt schon zwei Wochen mit dem Problem und mir geht langsam 
die Puste aus. Kann mir jemand helfen ? Gruß Roland

von Falk S. (Gast)


Lesenswert?

wir verwenden auch SJA1000 über Busswitches an einem FPGA. Klappt 
soweit...
Was man machen könnte:

Hast Du mal einen anderen SJA1000 Chip versucht?
Könnte es ein übersprechen zwischen Leitungen sein, das nur bei 
ungeraden Adresse auftritt?
Du könntest ja mal ein Bit "manuell" setzten und dann trotzdem auf die 
gerade Adresse schreiben (ergibt dann ja ne ungerade Adresse) und gucken 
was sich da tut?
Hast Du ne Möglichkeit den Bus aufzuzeichnen? Vielleicht tut da ja was 
nicht?

Viel Erfolg
Falk S.

von Roland (Gast)


Lesenswert?

Einen anderen SJA1000 habe ich versucht, allerdings sitzt der auf einer 
Karte mit dem gleichen Layout bzw. Routing ...
Ich kontrolliere das Timing und den Bus mit einem Gould Classic 
500Mhz/2GS/s.
Es gibt kein sichtbares übersprechen auf den Bus. Speziell schaue ich 
mir natürlich AD0 an, doch auch hier alles aal-glatt. Das ALE Timing ist 
sauber.
Auf WR getriggert, passiert auch nur was, wenn ich schreibe.
Was meinst du mit "Manuell", wenn ich AD0 fest auf High ziehe, dann kann 
ich ja ADO nicht mehr auslesen ...

von Falk S. (Gast)


Lesenswert?

AD0 fest auf high ziehen => klar, dann stimmt beim Lesen bit0 nicht 
mehr. Ist ja nur zum Testen ob er dann trotzdem in den Reset-Zustand 
springt.

von Roland (Gast)


Lesenswert?

Super, danke für die Hilfe, werde ich testen !

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.