S1D13505 Protokoll Interpreter

Gast #6858035
Lesenswert?

Hallo,

ich habe wieder mal mit einem interessanten Phänomen zu kämpfen. Ich 
habe ein älteres Gerät bei dem das Display nur noch ein 
Schachbrettmuster zeigt. Der Displaycontroller ist vom eigentlichen 
Display abgesetzt und ist ein S1D13505.
Jetzt dachte ich mir als kleine Spielerei, ein neues Display zu verbauen 
und als Protokollübersetzer einen ATmega164 werkeln zu lassen. Als 
erstes wollte ich mir die Kommandos über die Serielle rausdumpen lassen.
Als das nicht geklappt hat, habe ich mit dem Oszi das CS zum 
Displaycontroller angesehen. Ohne ATmega sieht man mehrere Kommandos, 
bei denen das CS für 40µs Low wird. Mit ATmega ändert sich weder der 
Pegel noch die Flankensteilheit. Allerdings kommen auf dem CS nur noch 
ein paar Pulse, die für ca. 5µs auf Low gehen.
Es ist gerade so, als wenn der Hauptrechner etwas zurückliest und 
entsprechend reagiert. Das sollte aber in der Init-Sequenz aber 
eigentlich nicht sein.
Hat jemand eine Idee?
Gast #6858038
Lesenswert?

Matthias schrieb:
> Mit ATmega ändert sich weder der Pegel noch die Flankensteilheit.
> Allerdings (ändert sich etwas)

Was genau ändert sich denn zuerst. Offenbar beeinflusst dein ATmega oder 
deine Schaltung die Kommunikation. Damit fängt es an, untersuche das.

Schaltplan, Quelltext und Foots vom Aufbau könnten hilfreich sein, damit 
wir über dein Gerät reden, nicht über etwas anderes das wir im Kopf 
ausdenken.
Gast #6858130
Lesenswert?

Der Schaltplan zeigt den Übersetzer. Es ist zwar ein ATmega16 
eingezeichnet, aber der war gerade nicht verfügbar. Der 164 ist 
pinkompatibel.
Von dem Gerät habe ich keinen Schaltplan.
Am S1D13505 ist ein kurzes (10cm) Flachbandkabel angelötet. Von da gehts 
über einen Micromatch auf die ATmega-Platine.
Gast #6858150
Lesenswert?

Hast du bemerkt dass der Level Shifter an jeder Leitung zwei interne 
Pull-Up Widerstände mit ca. 40kΩ hat, welche die alte Schaltung 
belasten?

Außerdem wird die Kapazität deines Flachkabels und deiner Platine bis 
hin zum AVR auch die alte Platine belasten.

Vielleicht beeinflusst das die alte Schaltung zu sehr. Was der AVR mit 
den Leitungen anstellt kann ich mangels Quelltext gar nicht einschätzen.

Wahrscheinlich würde das ganze ohne diese Levelshifter weniger 
Problematisch sein. Der AVR akzeptiert die 3,3V auch ohne Pegelwandler 
als gültige HIGH Pegel.

Zum Foto: Sehe ich richtig, dass die Pegelwandler noch gar nicht 
bestückt sind? Wenn ja, dann hängen da also nur eine Menge Leitungen an 
dem Display, die nirgendwo enden. Da fällt mir ein, dass offene 
Leitungen Reflexionen zurück werfen und dadurch Signale stören können.
Gast #6858163
Lesenswert?

Um vielleicht ein Missverständnis auszuschließen - die Signale werden am 
S1D13505 abgegriffen. Der Hauptrechner redet spricht also dieses 
Protokoll.
Der ATmega soll es auf das Protokoll des neuen Display-Controllers 
übersetzen.
Die Pullups hatte ich auch im Verdacht. Ich hab sie sicherheitshalber im 
MCUCR global ausgeschaltet.
Die Leitungslänge sollte normalerweise die Flankensteilheit verringern. 
Allerdings ist die Signalqualität die Gleiche. Der Hauptrechner zieht 
wie gesagt ohne ATmega die CS-Leitung für 40µs auf Low, mit nur für ca. 
5µs.
Gast #6858165
Lesenswert?

Matthias schrieb:
> Die Pullups hatte ich auch im Verdacht. Ich hab sie sicherheitshalber im
> MCUCR global ausgeschaltet.

Ich rede von den Pull-Ups in den Pegelwandlern!

> Die Leitungslänge sollte normalerweise die Flankensteilheit verringern.

Sollte? Und was ist mit Reflexionen? SO etwas kann man nur mit einem 
Oszilloskop kontrollieren, dazu muss man aber auch die Anforderungen der 
alten Schaltung an die Signale kennen, sonst kann man das Messergebnis 
nicht bewerten.

> Allerdings ist die Signalqualität die Gleiche.

Das ist technisch unmöglich. Kabel ohne Auswirkung gibt es nicht.
Gast #6858173
Lesenswert?

Matthias schrieb:
> Der Atmega hängt direkt am S1D13505

Wärst du dann bitte mal so freundlich, den richtigen Schaltplan zu 
zeigen anstatt mich in die Irre zu führen?

Und schau dir mal ganz genau die Flanken der Signale an. Wenn das Kabel 
oder der AVR stört, dann wird sich das vermutlich im Bereich von einigen 
zig Nanosekunden um die Flanken herum abspielen.
Gast #6858396
Lesenswert?

Matthias schrieb:
> Hier die Suftware als zip.
> target        ATTiny13A
?????

Die relevanten I/O Pins sind alle auf INPUT ohne PULL-UP konfiguriert, 
so Weit gut.

Was für ein Timing hat die Datenübertragung zum Display im 
funktionierenden Fall? Wenn sie nicht extrem langsam ist, sehe ich keine 
Chance, dass deine ISR samt serieller Ausgabe so funktionieren kann.

Dennoch sollte sie die Kommunikation des Displays nicht stören. Das wird 
wohl noch ein Hardwareproblem vorliegen. Womöglich sind dire Kurzen 
Leitungen schon das Problem.

Stefan ⛄ F. schrieb:
> Wie (mehrfach) gesagt, überprüfe die Flanken der Signale mit einem Oszilloskop.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren