Beiträge von Giraffe

    synvox: VIELEN DANK! Du bist der Herr der TLCs ;)
    hatte den REXT an +5V gelötet und nicht an GND. Was für ein blöder Fehler.
    Jetzt geht alles, auch die Error-Register haben dauer-0-zustand.


    Nochmal vielen Dank.


    Liebe Grüße,
    jul

    Also momentan ist immer eins der Error-Register auf 255 und manchmal auch beide. Scheint relativ unregelmäßig zu sein. Habe auch noch nicht ganz verstanden was genau die Error-Register anzeigen.
    Der REXT ist 1k groß. Weiterhin habe ich einen 100nF Kondensator über Masse am REXT Pin.
    Die LEDs (Standard 20mA LEDs) sind mit der Kathode am TLC59116 und mit der Anode an 5V.
    Versorgungsspannung am TLC59116 sind auch 5V.
    Misst man mit dem Oszi an der Kathode der LED hat man eine Gleichspannung mit +3,32V mit ein bisschen Rauschen (Vpp ca. 100mV) drauf.


    EDIT: Habe gerade nochmal getestet was passiert, wenn man die Helligkeit ändert.
    Steht die Helligkeit auf 0 dann gehen die Error-Register auch auf 0.
    Steht die Helligkeit auf einem Wert > 0 geht der Spass mit den Error-Registern wieder los.
    An der Spannung von +3.32V ändert sich aber nicht.


    Viele Grüße,
    jul

    Hey,
    die Erklärung war super. Danke.


    Das Auslesen funktioniert jetzt einwandfrei. Leider gehen meine LEDs immernoch nicht an :(


    Bin hier total am verzweifeln, hab echt keine Ahnung mehr woran es liegen könnte...


    Hier nochmal der Code und das was der Controller ausgibt:


    Init: Done
    0
    Register:
    00: 129
    01: 0
    02: 0
    03: 0
    04: 0
    05: 0
    06: 0
    07: 0
    08: 0
    09: 0
    0A: 0
    0B: 0
    0C: 0
    0D: 0
    0E: 0
    0F: 0
    10: 0
    11: 0
    12: 255
    13: 0
    14: 255
    15: 255
    16: 255
    17: 255
    18: 210
    19: 212
    1A: 216
    1B: 208
    1C: 255
    1D: 0
    1E: 0
    Send
    0
    Register:
    00: 129
    01: 0
    02: 187
    03: 187
    04: 187
    05: 187
    06: 187
    07: 187
    08: 187
    09: 187
    0A: 187
    0B: 187
    0C: 187
    0D: 187
    0E: 187
    0F: 187
    10: 187
    11: 187
    12: 255
    13: 0
    14: 255
    15: 255
    16: 255
    17: 255
    18: 210
    19: 212
    1A: 216
    1B: 208
    1C: 255
    1D: 255
    1E: 255

    Liebe Community,


    habe ein Problem mit der Kommunikation zwischen einem Atmel Mega16 und
    einem TLC59116 (Pwm LED Controller) per I²C.


    Wenn ich Daten schicke meldet der Bus keine Fehler.
    Im letzten Programmteil lese ich nochmal alle Register aus und die haben
    alle den Wert 255.


    Was mache ich falsch?? Hoffe Ihr könnt mir weiter helfen...
    Schonmal im Vorraus danke für alle Hilfe.



    Hier noch der Programmcode (Bascom):
    $regfile = "m16def.dat"
    $crystal = 16000000
    $baud = 9600



    $lib "i2c_twi.lbx"
    Config Twi = 400000
    Twcr = &B00000100



    'Tlc Adressen
    Const All = &HD0
    Const All_reset = &HD6


    Const Tlc_1 = &HC2
    Const Tlc_1_read = &HC3



    Const Helligkeit = 187



    'Variablen
    Dim X As Byte
    Dim Eingang(32) As Byte



    'Reset
    I2cstart
    I2cwbyte All_reset
    I2cwbyte &HA5
    I2cwbyte &H5A
    I2cstop


    Print "Reset: Done"
    Print Err


    Waitms 20



    'Initialisierung
    I2cstart
    I2cwbyte All
    I2cwbyte &B10000000
    I2cwbyte &B00000001
    I2cwbyte &B00000000
    For X = 0 To 15
    I2cwbyte 0
    Next
    I2cwbyte 255
    I2cwbyte 0
    For X = 0 To 3
    I2cwbyte &B11111111
    Next
    I2cstop


    Waitms 20


    Print "Init: Done"
    Print Err



    Do


    I2cstart


    I2cwbyte Tlc_1
    I2cwbyte &B10100010
    For X = 0 To 15
    I2cwbyte Helligkeit
    Next


    I2cstop


    Print "Send"
    Print Err


    Waitms 500


    I2cstart


    I2cwbyte Tlc_1_read
    I2cwbyte &B10000000
    For X = 1 To 32
    I2crbyte Eingang(x) , Nack
    Next


    I2cstop


    Print "Register: "
    For X = 1 To 32
    Print X ; ": " ; Eingang(x)
    Next


    Wait 3


    Loop


    End

    hai,


    erstmal großes Lob an den Autor. Das Projekt ist echt sehr gut geworden!


    habe ein ähnliches Projekt vor, nur würde ich gern die LEDs von der Steuerung trennen. Meint Ihr, dass man zwischen TLC und LEDs 3m Leitung legen kann, ohne dass mir die 97KHz PWM einen Strich durch die Rechnung macht? wenn nein, warum nicht?


    Grüße der Giraffe

    Wenn eine LED niederohmig ausfällt geht nur die eine LED aus und die anderen laufen weiter ohne Schaden zu nehmen.
    Bei einer Parallelschaltung werden die anderen LEDs hingegen überlastet wenn eine LED niederohmig ausfällt und nicht jede LED mit einem eigenen Widerstand angeschlossen ist.
    Ergo: Wenn es kein Problem ist die Spannung für eine Reihenschaltung bereitzustellen ist diese Variante immer zu bevorzugen.

    völliger Schwachsinn!
    Jetzt mal richtige Physik Grundlagen:
    wenn in einer Reihenschaltung eine LED niederohmig wird, ist es als wäre sie nicht da, also hat man für die übrig gebliebenen LED zu viel Spannung, was bedeutet, dass sie alle kaputt gehen!
    Wenn in einer Parallelschaltung eine LED niederohmig wird und es KEINEN Vorwiderstand gibt, gibt es einen Kurzschluss zwischen Versorgung + und Versorgung -, was lediglich zur Folge hat, dass unsere Spannungsquelle kaputt geht.
    Wird hingegen in einer Parallelschaltung MIT Vorwiderständen eine LED niederohmig, so passiert NICHTS.
    Daher ist in jedem Falle die Parallelschaltung mit Vorwiderstand vor jeder LED die beste Lösung!


    Grüße,
    Giraffe

    hai,


    Als Controller würde ich Dir auch einen Atmel Tiny empfehlen. Bei 1MHz Taktrate sollten auch locker die 10 Software-PWMs drin sein. Wenn Du allerdings mal erweitern willst solltest Du einen Atmel Mega 8 benutzten, den gibts sogar in einer 16MHz Version, allerdings bräuchtest Du dann wieder einen Oszillator dazu.
    Zum Thema µC gibts HIER einen guten Grundlagen-Artikel, wo auch alles zum Thema Spannungsversorgung und Filterkondensatoren erklärt wird.
    In welcher Programmiersprache willst Du das ganze eigentlich umsetzen?


    Zur Ansteuerung der LEDs: An einem Transistor kommst Du nicht vorbei. Wenn Du auf lautes Klappern stehst, kannst Du auch Relais verwenden, aber Du brauchst definitv ein Leistungsteil, da Dir sonst der µC früher oder später Hilferufe per Rauchzeichen gibt.


    Grüße,
    Giraffe