Forum: Mikrocontroller und Digitale Elektronik SAA1064 (7-Segment-Treiber) funktioniert nicht


von Sven B. (scummos)


Lesenswert?

Hi,

ich versuche, einen SAA1064 in Betrieb zu nehmen, kann ihn aber nicht 
dazu bringen, irgendeinen der Outputs anzuschalten.

Der Test-Code ist denkbar einfach:
1
import smbus
2
bus = smbus.SMBus(0)
3
addr = 0x38
4
bus.write_byte_data(addr, 0x00, 0b00111110)
Das sollte den Display Test-Modus mit 9mA Strom anschalten. Das Kommando 
wird vom SAA1064 mit einem ACK bestätigt und der Bus sieht auch sauber 
aus auf dem Oszilloskop. Trotzdem bleiben alle Outputs auf Low.

Was mich total verwirrt ist dass der Chip auf 0x38 antwortet. Ich habe 
den Addr-Pin mit GND verbunden, im Datenblatt steht dann, dass die 
Adresse 0x70 sein sollte. Ist aber nicht so -- in i2cdetect taucht nur 
0x38 auf. An anderen Stellen im Internet verwenden Leute 0x3b, 0x38 habe 
ich nirgends gesehen.

Ich habe auch das Status-Register ausgelesen, das scheint ebenfalls zu 
funktionieren -- es sollte eine 1 drin stehen wenn man den Strom 
ausgeschaltet hat seit dem letzten Lesen, sonst nur Nullen, was der Fall 
ist.

Die Spannungsversorgung sind gut 5V, der I2C-Bus hat allerdings Pullups 
auf 3.4V. Da das aber über dem 3V-High-Pegel aus dem Datenblatt liegt 
und der Chip ja auch antwortet, denke ich nicht, dass das das Problem 
ist.

Hat jemand Tipps für die Fehlersuche?

Danke und viele Grüße,
Sven

: Bearbeitet durch User
von H.Volmer (Gast)


Lesenswert?

Der Saa1064 braucht Startbedingung I2C
                    1. byte Slave adr
                    2. byte instruktion
                    3. byte Control
                    4. 7. byte daten
                    StopI2c
und sollte nach jedem byte ein Ack senden

Helmut

von Tinkerers Delight (Gast)


Lesenswert?

>Was mich total verwirrt ist dass der Chip auf 0x38 antwortet. Ich habe
>den Addr-Pin mit GND verbunden, im Datenblatt steht dann, dass die
>Adresse 0x70 sein sollte. Ist aber nicht so

Ist dir aufgefallen, daß zwei mal 0x38 gleich 0x70 ist?

>An anderen Stellen im Internet verwenden Leute

Und manche setzen sich aus Holz geschnitzte Kophörer auf, um in 
Funkkontakt mit den Cargofliegern zu kommen.

Wenn du nicht weiter im Trüben angeln willst:

http://www.google.de/url?sa=t&rct=j&q=&esrc=s&frm=1&source=web&cd=1&cad=rja&uact=8&sqi=2&ved=0CCEQFjAA&url=http%3A%2F%2Fwww.nxp.com%2Fdocuments%2Fuser_manual%2FUM10204.pdf&ei=2jn7U83wEuWI4gTu6ICoDA&usg=AFQjCNG5emVs3tU5RbGVKjblTMFgLLHdqg

von Sven B. (scummos)


Lesenswert?

Ah, da wurde also das R/W Bit mitgezählt, nehme ich an. Das habe ich 
noch nie gesehen. Dass zweimal 0x38 0x70 ist ist mir tatsächlich nicht 
aufgefallen.

> Und manche setzen sich aus Holz geschnitzte Kophörer auf, um in
> Funkkontakt mit den Cargofliegern zu kommen.
Ich verstehe nicht, was daran so komisch sein soll sich mal anzuschauen 
wie der Code anderer Leute für diesen Zweck aussieht bevor man jedes 
Byte der 50-Seiten-Spezifikation liest.

@Helmut: vielen Dank, jetzt scheint es zu gehen. Ich habe auch gerade 
gemerkt, dass der negative Anschluss der LED am Baustein sein muss wenn 
man will dass sie bei einer 1 im Register an ist. Das fand ich nicht so 
klar im Datenblatt.

Grüße!

: Bearbeitet durch User
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.