www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SAA1064-Probleme


Autor: Sven S. (schwerminator)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich versuche mich gerade am SAA1064 mit einem Mega16. Da ich keine 
Beispiele in C für diesen Chip im Internet gefunden habe, habe ich ein 
wenig in die BASCOM-Programme geschaut und versucht zu kopieren. 
Außerdem habe ich das Datenblatt des SAA1064 studiert. Auf den 
7-Segmentern wird aber rein gar nichts angezeigt...
Hier der C-Code:
#define F_CPU 8000000UL

#include "i2cmaster.h"

void main(void){
  i2c_init();

  i2c_start(0x70);  //Adresse 0x70, weil ADR auf Vee liegt
  i2c_write(0x00);  //Instructionbyte ist 0xff
  i2c_write(0x8F);  //all segment outputs are switched-on for segment test (S.4 Datenblatt)
  
  i2c_write(0x00);  //Dummies
  i2c_write(0x00);
  i2c_write(0x00);
  i2c_write(0x00);
  
  i2c_stop();  
}
Weiß jemand woran es liegen könnte?

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab hier zwei SAA1064 an nem I2C Bus (USI von nem Tiny2313)
Allerdings keine 7Segment-Anzeigen dran, sondern je 16 Zweifarb-LEDS 
(rot/grün)
Code schaut so aus (aufbauend auf der USI-TWI Appnote von Atmel):
 USI_TWI_Master_Initialise();
 ...

  while (1) {
...
       messageBuf[0]=0x70;
        messageBuf[1]=0x00;

/*          messageBuf[2]=0x27; Mittelhell */
          messageBuf[2]=0x37;
/*          messageBuf[2]=0x17; Dunkel */

        messageBuf[3] = current_green.as_array[0];
        messageBuf[4] = current_red.as_array[0];
        messageBuf[5] = current_green.as_array[1];
        messageBuf[6] = current_red.as_array[1];

        USI_TWI_Start_Transceiver_With_Data(messageBuf,7);

        messageBuf[0]=0x72;

        messageBuf[3] = current_green.as_array[2];
        messageBuf[4] = current_red.as_array[2];
        messageBuf[5] = current_green.as_array[3];
        messageBuf[6] = current_red.as_array[3];


        USI_TWI_Start_Transceiver_With_Data(messageBuf,7);


...
}

Wobei USI_TWI_Start_Transceiver_With_Data auch nix anderes macht als 
START, 7 Datenbytes, STOP

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ach ja, dein Control-Byte 0x8F ist falsch, der Test-Mode bei max. Strom 
wäre 0x7F.

Autor: Sven S. (schwerminator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
könntest du die Funktion USI_TWI_Start_Transceiver_With_Data() kurz 
posten, ich finde die passende App-Note nicht.
Braucht man eigendlich die Pullup-Widerstände immer? Kanns daran liegen?

Autor: let (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast du schon probiert die letzten vier Bytes nicht zu schicken?
Wenn der Testmodus (habe ihn nie benutzt) lediglich die Bits für die
einzelnen Segmente auf '1' setzt, löscht du sie anschließend wieder.

Ansonsten sieht das Programm gut aus. Du konfigurierst den Chip
für den 'dynamic mode'. Ist der Kondensator Cext drin? Pullups in
den I2C Leitungen? 7-Segmentanzeigen wirklich mit gemeinsamer Anode?
Sorry, aber irgendsowas muß es sein. Der SAA ist recht gutmütig.

 - Michael

Autor: let (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PS: Einige Anzeigen (v.a. die roten) lassen sich ohne 
Kontrastfilterscheibe nicht gut ablesen. Vielleicht geht es ja und du 
siehst es nur nicht ;).

Autor: Sven S. (schwerminator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
es waren doch tatsächlich die Pullup-Widerstände. Jetzt habe ich je 
2,7kOhm drin und es läuft. Hatte ich ehrlichgesagt unterschätzt, weil 
ein Forumsmitglied in irgendeinem Beitrag behauptet hatte, dass man 
diese nicht brauchen würde...
Was ich aber grad feststelle ist, dass auf maximaler Helligkeit und 
allen angeschalteten Segmenten die Transistoren und der SAA1064 relativ 
schnell warm werden, naja liegt wohl in der Natur der Sache.

Danke, Sven

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.