- Akku Tests und Balkonkraftwerk Speicher         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: I2C und SAA1046

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    29.12.2014
    Beiträge
    6

    I2C und SAA1046

    Anzeige

    LiFePo4 Akku selber bauen - Video
    moin

    Ich habe da mal eine Frage. Wir sollen im Rahmen eines Schulprojektes zwei Platinen mittels I2C verbinden. Das eine ist ein sogenanntes KISSBoard mit einem Atmel AT89S52 und das andere ist eine sogenannte I2C-Experimentier Platine auf der 4 7-Segment anzeigen verbaut sind die mittels SAA1064 angesteuert werden sollen. Mein Problem ist das ich immer entweder Anzeige 1 und 3 oder 2 und 4 oder alle 4 ans Leuchten bekomme. Diese Steuer ich über das control byte an. Ich bekomme es aber nicht hin das ich die einzelnen Segmente jeweils eine Zahl oder Zeichen anzeigen lassen kann.

    Mein Programm Codes sieht derzeit so aus

    Code:
    while(1)
    {
         if(TASTER==0)
            {
        
                I2C_clock();            //clock
                I2C_start();            //start
                I2C_write(0b01110000);  //address Byte
                I2C_ack();
                I2C_write(0b00000000);  //instruction Byte
                I2C_ack();
                I2C_write(0b01110111);  // control Byte
                I2C_ack();
                I2C_write(0b10101010);        // data digit 1
                I2C_ack();
                I2C_write(0b01010101);        // data digit 2
                I2C_ack();
                I2C_write(0b01010101);        // data digit 3
                I2C_ack();
                I2C_write(0b10101010);        // data digit 4
                I2C_ack();
                I2C_stop();             //stop
             }
    das was die einzelnen Segmente anzeigen sollen ist hier gerade nicht logisch da ich das erst einmal zum Testen so eingestellt habe um zu schauen ob überhaupt was passier.

    Ich würde mich darüber freuen eine schnelle und Anfänger freundliche Antwort zu bekommen

    gruß
    Geändert von Dennis Prinz (29.12.2014 um 18:42 Uhr)

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von Crazy Harry
    Registriert seit
    15.01.2006
    Ort
    Raum Augsburg - Ulm
    Beiträge
    1.308
    Du meinst den SAA1064 ? Wie sieht die Initialisierung aus ?

    - - - Aktualisiert - - -

    Ändere mal dein Control-Byte auf 0b01000111
    Ich programmiere mit AVRCo

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    29.12.2014
    Beiträge
    6
    hey,

    ja da ist mir wohl ein Zahlendreher unterlaufen. In welcher art und weise muss ich den was initialisieren weil im Datenblatt vom SAA steht nichts davon drin das der Initialisiert werden muss.

    gruß

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von Crazy Harry
    Registriert seit
    15.01.2006
    Ort
    Raum Augsburg - Ulm
    Beiträge
    1.308
    Das Control-Byte ist prinzipiell die Initialisierung. Später muss das nicht mehr gesendet werden, nur noch die Displaydaten.
    Gehts jetzt ?
    Ich programmiere mit AVRCo

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    29.12.2014
    Beiträge
    6
    also mit deinem Editierten Control Byte bleiben alle Anzeigen dunkel

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von Crazy Harry
    Registriert seit
    15.01.2006
    Ort
    Raum Augsburg - Ulm
    Beiträge
    1.308
    Gibt es von dieser Platine einen Schaltplan ?

    Ich geh davon aus, daß der Syntax und die Verwendung der I2C-Lib so richtig ist. Von Basic (?) hab ich keine Ahnung.

    Bin SAA1064 schickst du einmal auf die richtige Adresse, SubAdress 0, ControlByte.
    Versuchs mit 0b01110001 oder 0b01110111. Ok letzteres hattest du ja schon

    Später reicht es auf Adresse, SubAdress 1 die 4 Bytes zu senden, die angezeigt werden sollen.
    Geändert von Crazy Harry (29.12.2014 um 19:50 Uhr)
    Ich programmiere mit AVRCo

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    29.12.2014
    Beiträge
    6
    Hier ist mal der Schaltplan

    Klicke auf die Grafik für eine größere Ansicht

Name:	schaltplan_i2c.jpg
Hits:	10
Größe:	97,7 KB
ID:	29565

    Die Syntax ist so richtig und wurde auch so umgesetzt.

  8. #8
    Erfahrener Benutzer Roboter Genie Avatar von Crazy Harry
    Registriert seit
    15.01.2006
    Ort
    Raum Augsburg - Ulm
    Beiträge
    1.308
    Ok Standard SAA-Beschaltung.

    Wenn du als Controlbyte 0b01001111 nimmst, sollten alle Segmente mit 12 mA leuchten. Das ist der Segmenttest.
    Ich programmiere mit AVRCo

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Zitat Zitat von Dennis Prinz Beitrag anzeigen
    Code:
    while(1)
    {
         if(TASTER==0)
            {
        
                I2C_clock();            //clock
                I2C_start();            //start
                I2C_write(0b01110000);  //address Byte
                I2C_ack();
                I2C_write(0b00000000);  //instruction Byte
                I2C_ack();
                I2C_write(0b01110111);  // control Byte
                I2C_ack();
                I2C_write(0b10101010);        // data digit 1
                I2C_ack();
                I2C_write(0b01010101);        // data digit 2
                I2C_ack();
                I2C_write(0b01010101);        // data digit 3
                I2C_ack();
                I2C_write(0b10101010);        // data digit 4
                I2C_ack();
                I2C_stop();             //stop
             }
    das was die einzelnen Segmente anzeigen sollen ist hier gerade nicht logisch da ich das erst einmal zum Testen so eingestellt habe um zu schauen ob überhaupt was passier.
    Passiert denn was? Welche Segmente werden denn mit dem Programm angezeigt?

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  10. #10
    Erfahrener Benutzer Roboter Genie Avatar von Crazy Harry
    Registriert seit
    15.01.2006
    Ort
    Raum Augsburg - Ulm
    Beiträge
    1.308
    Eigentlich sollten an Stelle 1 und 4 die Segmente b, d, f und Dezimalpunkt leuchten und an Stelle 2 und 3 die Segmente a, c, e und g.
    Ich programmiere mit AVRCo

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. PCF8574 und PC847 - I2C und Optokoppler
    Von saarelektrik im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 24.12.2013, 14:08
  2. RP6 Base mal als i2C Master und als I2C Slave
    Von Lurchi im Forum Robby RP6
    Antworten: 6
    Letzter Beitrag: 15.05.2009, 22:08
  3. I2C und Interrupteingänge
    Von liggi im Forum Asuro
    Antworten: 29
    Letzter Beitrag: 20.12.2007, 03:41
  4. ATmega8 und I2C
    Von xiaoma1980 im Forum AVR Hardwarethemen
    Antworten: 8
    Letzter Beitrag: 25.07.2006, 21:24
  5. Mega8 und I2C
    Von avrwalli im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 06.04.2005, 20:25

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen