www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MAX6956 + ATMega 88


Autor: Patrick (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
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/appnotes/4021/4021Fig01.gif

MFG

Patrick

Autor: Patrick (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nach weiteren Tag probieren und verzweifeln das Resultat...

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:
[c]
$regfile = "m8def.dat"                                'Mega8
$crystal = 16000000                                  'Takt schnell genug 
für den Bus
$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                                                             'I2C 
Init

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)


 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 -> Baustein wird aktiv (Seite 16)
  Call I2c(&H02 , &H03)                                     'Globale 
Helligkeit (ziemlich dunkel  von h00 bis h0F) (Seite 18)

  Do
  Call I2c(&H2c , &H01)                                     'LED Port12 
on '
  Call I2c(&H2d , &H00)                                     'LED Port13 
off
  Call I2c(&H2e , &H01)                                     'LED Port 14 
on
  Call I2c(&H2f , &H00)                                     'LED Port 15 
off
   Waitms 500
  Call I2c(&H2c , &H00)                                     'LED Port12 
off
  Call I2c(&H2d , &H01)                                     'LED Port13 
on
  Call I2c(&H2e , &H00)                                     'LED Port 14 
off
  Call I2c(&H2f , &H01)                                     ''LED Port 
15 on
  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
     ' I2cstart 
'Wiederholter Start (muss nicht!)
      I2cwbyte Wert                                    'Register Wert
      Print Err                                             'Fehler bei 
Kommunikation = 1
      I2cstop                                             'Stop
      Waitms 10                                         'Warten
End Sub
[c]



Mit freundlichen Grüßen,

Patrick

Autor: thomas thomas (Firma: thomas) (thomas667)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich finde einfach keinen Online-Shop bei dem ich den Maxim 6956 bekomme.

Hat jemand da ne Ahnung wo ich den bekommen kann?

danke, thomas

Autor: Uwe N. (ex-aetzer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin Thomas,

probier es mal bei DigiKey.

http://search.digikey.com/scripts/DkSearch/dksus.d...

Gruss Uwe

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.