mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SJA1000 ungerade Register


Autor: Roland (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Falk S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Roland (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ...

Autor: Falk S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Roland (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super, danke für die Hilfe, werde ich testen !

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.