-         

Ergebnis 1 bis 2 von 2

Thema: MAX6956, Atmega88, I2C

  1. #1

    MAX6956, Atmega88, I2C

    Anzeige

    Guten Abend,

    ich habe folgendes Problem und zwar versuche ich schon den ganzen Tag
    eine LED an einem MAX6956 zum leuchten zu bewegen. Angeschlossen ist
    alles wie auf dem Schaltplan bzw. laut Datenblatt. D.h. SDA mit SDA
    (PC.4) und SCL mit SCL (PC.5). Dazu laut Datenblatt PullUp Widerstände
    4,7kOhm.

    Nun hab ich meinen Controller mit Bascom programmiert leider führte dies
    und auch meine Suche hier im Forum und in Google zu keinen wirklichen
    Ergebnis. Ein anderes Problem hab ich mit dem Ablauf meiner I2C Routine
    da ich ja quasi keiner Möglichkeit habe und auch kein Digitales Oszi ob
    meine gesendeten Werte überhaupt empfangen und richtig waren.

    Datenblatt: http://datasheets.maxim-ic.com/en/ds/MAX6956.pdf
    Schaltplan: http://media.maxim-ic.com/images/app.../4021Fig01.gif

    MFG

    Patrick
    Angehängte Dateien Angehängte Dateien

  2. #2
    Nach weiteren Tag probieren und verzweifeln das Resultat... =D>

    Die ersten 4 Leds von später 25 leuchten ist zwar noch nicht viel aber
    es klappt. Was ich dazu getan hab ich bin vom Software I2C auf Hardware
    TWI umgestiegen so kann ich auch gleich Problemlos die Ackn. Bits vom
    Empfänger auswerten und mit ein bischen ausprobieren und Datenblatt
    studium leuchten die Dinger endlich. \/

    Allerdings ist mir im laufe meiner Flash Aktionen mein AtMega88 (erst 1
    Woche alt) gestorben ich hatte den ganzen Tag schon Fehler beim
    schreiben und zum schluss ging er garnicht mehr.
    Nur gut das ich noch einen ATMega 8 da hatte der tuts. Nun folgt die
    eigentliche Aufgabe Zahl zwischen (50 und - 20) empfangen und auf den
    LEDs ausgeben 2 Grad = 1 Led. D.h. kopplung ATmega 8 und Atmega 8 :-D
    über Uart.

    Hier der Code für die Ansteuerung...

    Code:
    $regfile = "m8def.dat"
    $crystal = 16000000
    $hwstack = 32
    $swstack = 8
    $framesize = 24
    $baud = 9600
    
    $lib "i2c_twi.lbx"                                          ' Für Hardware TWI (I2C)
    
    
    Config Scl = Portc.5
    
    Config Sda = Portc.4
    
    I2cinit
    
    Config Twi = 400000                                         ' Initialisierung TWI
    
    Twcr = &B00000100                                           ' TWI einschaltten
    
    
    Dim Adresse As Byte , Wert As Byte , I As Byte
    Declare Sub I2c(byval Adresse As Byte , Byval Wert As Byte)
    
      Waitms 1000
      I2cinit
      Print "Start"
      Call I2c(&H09 , &H55)                                     'Setzen der nichvorhanden Ports (Seite 5)
      Call I2c(&H0a , &H55)                                     'Setzen der nichvorhanden Ports (Seite 5)
      Call I2c(&H0b , &H00)                                     'Segment 15 - 12 as LED's
      Call I2c(&H04 , &H01)                                     'No Shutdown mode
      Call I2c(&H02 , &H03)                                     'Global Intensity
    
      Do
      Call I2c(&H2c , &H01)                                     'LED Port12 on '
      Call I2c(&H2d , &H00)                                     'LED Port13 off
      Call I2c(&H2e , &H01)                                     '14
      Call I2c(&H2f , &H00)                                     '15
      Waitms 500
      Call I2c(&H2c , &H00)                                     'LED Port12 off
      Call I2c(&H2d , &H01)                                     'LED Port13 on
      Call I2c(&H2e , &H00)                                     '14
      Call I2c(&H2f , &H01)                                     '15
      Print "Ende"
      Waitms 500
    Loop
    End
    
    
    Sub I2c(byval Adresse As Byte , Byval Wert As Byte)         'Ablauf laut Datenblatt (Seite 8, oben=
    
          Print "SUB"
          I2cstart                                              'Start
          I2cwbyte &H80                                         'Slave Adresse (7 Bit + RW)
          I2cwbyte Adresse                                      'Register Adresse                                              'Wiederholter Start
          I2cwbyte Wert                                         'Register Wert
          Print Err
          I2cstop                                               'Stop
          Waitms 10                                             'Warten
    End Sub
    Mit freundlichen Grüßen,

    Patrick

Berechtigungen

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