mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Verstehe TWI überhaupt nicht


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

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich bin gerade dabei etwas über TWI zu lernen. Dazu habe ich mir einen 
TLC59116 LED Treiber gekauft, mit dem ich mir dann einen LED Controller 
bauen möchte.
Ich habe mir den Baustein erst einmal auf eine Testplatine aufgelötet. 
Ich habe jedoch trotz den ganzen gestrigen Tag Datenblätter lesen, 
Google ausfragen und in der Bascom Hilfe zu suchen, es nicht geschafft 
auch nur zu verstehen, wie man Daten in ein Register des Bausteines 
schreibt. Ich habe schon einige Seiten gefunden, wo etwas über TWI 
steht, jedoch habe ich keine Seite gefunden, die davon aus geht, dass 
man NICHTS über TWI weiß.
Ich habe schon versucht eine Routine zu schreiben, mit der ich eine LED 
zum leuchten bringe, doch da tut sich nichts.

Ich würde also gerne wissen, wie ich Daten an den Baustein schicke oder 
ihr gebt mir einen Link zu einem guten Tutorial.

Ich benutze den Atmega32 und die Standard TWI Ports. Ich habe auch 
4,7kOhm Pull-up Widerstände an SDA und SCL und ich habe nur einen 
Baustein an dem Bus. Angehängt ist mein jetziges Porgramm.

Autor: Entwickler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Seit wann muß man etwas verstehen, um es zu benutzen? :-)

Suche nach Applikationen zum IIC-Bus; vornehmlich von NXP.

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: XXX (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Schaltung? Hardwareadresse auf 0?

Gruß
Joachim

Autor: Killerawft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Joachim: Also wenn ich deine Frage richtig verstanden habe, es sind 
alle adressierungsausgänge A0 bis A3 auf masse also auf 0 gelegt. Und 
RExt ist ein 2k ohm widerstand für eine blaue LED an Out0. Das Minus 
beinchen der LED ist auf den Pin Out0 und das Plusbeinchen an 5V. Alle 
GND Pins sind mit Masse verbunden und Vcc hat 5V und Reset ist mit einem 
10kohm widerstand an Vcc. Die restlichen Out pins sind nicht verbunden, 
nur Out0.

@Entwickler: Ich muss doch verstehen, wie ich den Bus steuere um dann 
den TLC59116 anzusteuern. Ich weiss jetzt auch nicht was du mit den 
Applikationen von NXP meinst.


So ich habe natürlich noch weiter geforscht und denke mir ich mus so die 
Daten senden.

1: Ich sende die Adresse des anzusprechenden Slaves als Write adresse 
mit einem ACK dahinter. Also I2Cwbyte Slaveadr, ack

2: Ich sende die Hex zahl des registers, in das ich etwas schreiben 
möchte, ebenfalls mit einem ACK. Also i2cwbyte out0, ack

3: Ich sende den Wert, der in das register soll, z.b. 255 für volle 
helligkeit, aber diemal ohne ack, weil der transfer abgeschlossen ist. 
ALso i2cwbyte &HFF , nack


Ist die überlegung so richtig?

Autor: AKKS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nee, nicht richtig.

Das Ack klommt vom Slave als bestätigung.

Autor: Killerawft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok das ist schonmal gut zu wissen. ABer der rest meiner Überlegung 
stimmt soweit?

Autor: hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
TWI ist I²C, darf bei Atmel aber nicht so heisen.

Dazu Grundlagen:

http://www.rn-wissen.de/index.php/I2C

Für TWI und Basic:

http://www.rn-wissen.de/index.php/TWI_Praxis

Bei RN gibt es auch noch mehr über TWI ;)

hans

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, zuallererst hättest Du Dir die Beispiele zu I2C im Bascom Sample 
Ordner durchsehen sollen, dann wärst Du nicht auf die Schnapsidee 
gekommen, beim Schreiben auf I2C ein ACK/NACK schicken zu wollen. Dein 
eigentliches Problem warum's nicht klappt, besteht aber darin daß die 
Ausgangstreiber des 59116 erst eingeschaltet werden werden müssen, bevor 
über die PWM Register gedimmt werden kann. Eingeschaltet werden die 
Treiber über Register 0x14-0x17. Im DB steht's genau beschrieben.

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

Bewertung
0 lesenswert
nicht lesenswert
Ok danke dafür, jedoch werde ich aus der Liste nicht schlau. Da ich ja 
die LED0 mit PWM steuern möchte muss ich für die LED 11 schicken. Da ich 
dann auch schon dabei bin dachte ich, aktiviere ich die anderen LED's 
genauso und schicke also an das Register 14 das byte 11111111 oder?

Und was sollen unter Bit in den Tabellen die Zahlen 7:0 z.b. beim PWM0 
Register?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Killerawft schrieb:

> Und was sollen unter Bit in den Tabellen die Zahlen 7:0 z.b. beim PWM0
> Register?

Lies den Doppelpunkt als 'bis'
Im Register PWM0 bezeichnen die Bits 7 bis 0 den gewünschten PWM Wert.

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> und schicke also an das Register 14 das byte 11111111 oder?

Keine Ahnung ob Du group dimming/blinking haben möchtest, ich hätte da 
jetzt eher &b10101010 reingeschrieben.

Außerdem sehe ich gerade, daß Du nichts getan hast um den Baustein zu 
initialisieren, denn by default befindet er sich im sleep. Wie schon 
gesagt DB durchlesen, da stehen auch so kleine Zahlen (wie bei 
Handyverträgen), welche die default values beschreiben.

Das hier initialisiert den 59116:
I2cstart               
I2cwbyte <device write address>
I2cwbyte 0                                                
I2cwbyte 0
I2cstop

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

Bewertung
0 lesenswert
nicht lesenswert
Achso man muss den Baustein noch extra initialisieren. Ich dachte das 
macht man indem man die register 14 bis 17 beschreibt.

Ich hab das Programm mal erweitert und auch die Errorflags ausgelesen. 
Die haben beide den Wert von 255. Sie sollten baer den wert 0 haben. WAS 
mache ich denn noch falsch?

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Keine Ahnung, was Du da mit i2creceive anstellst, aber sicher keine 
Fehler abholen, eher welche produzieren.

Die Variable "Err" steht in Bascom zur Verfügung um Erfolg oder 
Mißerfolg der I2C Aktion abzufragen, Err braucht nur gelesen werden.

Und ansonsten musst Du die Nummer des Registers schicken dessen Wert Du 
beschreiben willst, und hier hast Du es vergessen:
    'LEDOUT0 Aktivieren
     I2cstart
     I2cwbyte Tlc1w
     I2cwbyte &H14   <---
     I2cwbyte &HAA
     I2cstop

Autor: Killerawft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mit i2creceive wollte ich die beiden Error register 1d und 1e auslesen 
um zu sehen ob da irgendwelche Fehler sind.

Das I2cwbyte &H14 war ein Flüchtigkeitsfehler.

Wie ist das mit den A0 bis A3, mit denen ich die Slaveadresse einstelle. 
Die muss ich doch einfach nur an Masse machen ohne irgendein widerstand 
pull up oder pull down widerstand oder?

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> mit i2creceive wollte ich die beiden Error register 1d und 1e auslesen
> um zu sehen ob da irgendwelche Fehler sind.

Erst mal musst Du sicherstellen, daß die grundsätzliche I2C 
Kommmunikation klappt, und das geht über Err. Der Rest ergibt sich wenn 
man die Register richtig beschreibt.

> Das I2cwbyte &H14 war ein Flüchtigkeitsfehler.
Ein (mit)entscheidender...

Adresspins einfach auf Masse.

Resetpin mit Widerstand an Plus geschaltet ?

Autor: Killerawft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja der Resetpin ist mit einem 10kOhm nach Plus geschaltet.

Ich habe das Programm mal so umgeschrieben, dass nach jedem i2c befehl 
abgefragt wir ob err eine 1 hat und mir das auf dem LCD angezeigt wird, 
wenn ja. Das Programm ist jedoch ohne Fehler durchgelaufen.

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und geht immer noch nicht ?

Hab' Dir mal einen angepassten Auszug aus meinem Propelleruhrprogramm 
gemacht. Basierte auf der Propelleruhr vom RNetz, war aber dann eine 
tatsächliche Uhr, während die RN Propeller"uhr" nur Text anzeigen 
konnte.
Infos dazu auch im Bascom Forum.
Das wäre sozusagen das klassische Hello World des I2C.

Da PWM't sich aber nix, nur die ersten 4 Leds blinken. Sollt's aber 
damit gehen, ist der Rest leichter. Wenn nicht, würd ich die HW nochmal 
gründlich testen. Und wenn's wieder das Pollin Board wie das mit dem LCD 
ist, dann mal dringend ganz gezielt die Funktionalität der Pins PC0..1 
prüfen :D
$regfile = "m32def.dat"
$crystal = 16000000
$hwstack = 32
$framesize = 32
$swstack = 32

$lib "I2C_TWI.LBX"
Config Twi = 400000
Config Scl = Portc.0
Config Sda = Portc.1

Const Tlc1 = &B11000000

Const Ledout0 = &H14 Or 128

I2cinit

I2cstart
I2cwbyte Tlc1
I2cwbyte 0
I2cwbyte 0
I2cstop

I2cstart
I2cwbyte Tlc1
I2cwbyte Ledout0
I2cwbyte &B00000000
I2cstop

Do

I2cstart
I2cwbyte Tlc1
I2cwbyte Ledout0
I2cwbyte &b01010101

Wait 1

I2cstart
I2cwbyte Tlc1
I2cwbyte Ledout0
I2cwbyte &b00000000

Wait 1

Loop

End

Autor: Killerawft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok das Funktioniert auch nicht. Also definitiv ein Hardwarefehler. Ich 
werde nochmal alle Verbindungen messen, ob die richtig sind und alles 
kontrollieren.

Autor: Killerawft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also ich habe jetzt alles kontrolliert und durch gemessen und es ist 
alles so wie es soll. Keine ungewollten Verbindungen oder irgendwas 
anderes.Und alles ist richtig angeschlossen.

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Nur zu Bestätigung: Pull-Up-Widerstände sind an SDA und SCL vorhanden?

Vielleicht hättest du dir für die ersten Gehversuche einen einfacheren 
IC aussuchen sollen.

MfG Spess

Autor: Killerawft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
4,7kohm widerstände sind von 5v zu sda und scl geschaltet.

Was wäre denn zum Einstieg ein einfaches IC?
Werden die nicht gleich angesteuert? Also register werden beschrieben, 
manche haben mehr oder weniger register.
Oder ist der TLC Baustein besonders anfällig gegen äußere Einflüsse?

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> also ich habe jetzt alles kontrolliert und durch gemessen und es ist
> alles so wie es soll. Keine ungewollten Verbindungen oder irgendwas
> anderes.Und alles ist richtig angeschlossen.
Ich dachte da mehr an ein kleines Programm, das die Pins mit z.B. 10 Hz 
toggelt und dann mit 'ner Led überprüfen. So als Test wenn kein Oszi 
oder LA vorhanden ist. Denn daß letzthin Dein Display auf PortC nicht 
ging, aber auf einem anderen Port schon, macht das doch höchst 
verdächtig.

> Oder ist der TLC Baustein besonders anfällig gegen äußere Einflüsse?
Wenn die äußeren Einflüsse Programmierer heißen... :D

Autor: Klaus De lisson (kolisson)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier mal ein Proggy zum ansteuern eines PCF 8583 RTC:

vielleicht kannst du durch lesen des Datenblattes auf deinen Fehler 
schliessen.

Im übrigen ist diese Anweisung aus deinem code zunächst mal unsinnig:
Config Twi = 400000                                         ' TWI Takt
Twcr = &H04                                                 'TWEN Setzen 
im TWCR Register



Meines Erachten nach machst du Unfug mit den ACK und NACK

Gruss Klaus

ps.:
sowas "I2creceive " würde ich aus Erfahrung mal weglassen.
da ist bascom sehr eigen.

besser Du arbeitest mit rbyte und wbyte..  dann weisst du, was du hast

Autor: Killerawft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@MWS: Also Portc.0 und Portc.1 kann ich in den verschiedensten 
Frequenzen blinken lassen. Und wenn ich das Programm von dir aufspiele 
und Config Scl = Portc.0
Config Sda = Portc.1 weglasse, dann kann ich die LED's auch ein wenig 
flackern sehen und SCL ist ein ganz wenig dunkler als SDA.

@ Klaus De lisson: Bei Conrad gibt es den PCF 8583 RTC nicht und ich 
möchte nicht irgendwo bestellen, wenn ich eh bei Conrad vorbei komme. 
Gibt es nicht noch andere Bausteine?

> Im übrigen ist diese Anweisung aus deinem code zunächst mal unsinnig:
> Config Twi = 400000                                         ' TWI Takt
> Twcr = &H04                                                 'TWEN Setzen
> im TWCR Register
Was ist denn daran unsinnig? Ich muss doch dem µC sagen, welchen TWI 
takt ich haben möchte und TWI noch einschalten.

Und ACK und NACK und I2creceive habe ich schon rausgenommen.

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Bei Conrad gibt es den PCF 8583 RTC nicht und ich
>möchte nicht irgendwo bestellen, wenn ich eh bei Conrad vorbei komme.
>Gibt es nicht noch andere Bausteine?

Dann nimm einen PCF8574.

MfG Spess

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

Bewertung
0 lesenswert
nicht lesenswert
> Config Sda = Portc.1 weglasse, dann kann ich die LED's auch ein wenig
> flackern sehen und SCL ist ein ganz wenig dunkler als SDA.

Das ist eigenartig, denn das darf keinen Unterschied machen da SDA auf 
eben diesem Portpin liegt. Der ist in meinem Code nur zur Sicherheit 
definiert. Welche Bascom Version verwendest Du ?

Probier' mal das Hex im Anhang, das ist auf meiner Bascom Version 
1.12.0.0 compilierte Testcode und auch das Ergebnis im AVR-Studio sieht 
gut aus.

TWCR.TWEN musst Du im Übrigen nicht manuell setzen, das macht Bascom von 
sich aus beim Befehl I2CStart.

Autor: Killerawft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe die Version 1.11.9.0.

Bei dem Programm tut sich auch nichts. Es gibt jedoch einen Unterschied. 
Die LED's an SDA und SCL blinken immer kurz und schwach in einem 1 
Sekunden Takt.

Autor: Klaus De lisson (kolisson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  Killerawft

wieso LED an SDA und SCL ?
diese Led haben ja Kapazität und könnten das Signal verfälschen.

.. und es scheint so, als hätte ich dich durch meinen Beitrag
bezüglich RTC verwirrt.
warum suchst du jetzt, wo es die gibt ?

Wolltest du nicht einfach einen LED Treiber ansteuern ?

Mein Beitrag war ja nur als Beispiel für TWI gedacht, da dieses 
funktioniert.
Durch "Rük -Durchlesen" im datenblatt hättest du evt. deinen Fehler
finden können.

Also verzeih.. ich wollte keine Verwirrung stiften.

Wie lang sind denn deine SDA UND SCL Leitungen ?

Im datenblatt deines TLC59116 sehe ich unter "Timing requirements" auch 
was von verschiedenen I2C Bus Modi. Wenn nun der Startupwert der
"Standard Mode " wäre , dann darfst zu zur Begrüssung wohl auch nur 
maximal
100khz fahren.

Zudem sehe ich etwas von "Bus Timeout feature"

evt. solltest du wirklich ertmal etwas weniger komplexes am i2c
ausprobieren.  Halt so eine RTC oder noch einfacher einen Port-expander
http://www.mikrocontroller.net/articles/Port-Expan...

Gruss Klaus

Autor: Killerawft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die SDA und SCL Leitungen sind aller höchstens von µC zum IC 20cm lang.

Und den Port-Expander gibt es leider nicht bei Conrad oder andere Online 
Shops ,ohne Mindestbestellwert, die ich kenne.


Ich hab auch mal den Takt auf 100khz gestellt und die LED's entfernt, 
hat sich aber nichts getan.

Und wo siehst du was von dem Bus Timeout Feature? Im Datenblatt habe ich 
das nicht gefunden.

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

Bewertung
0 lesenswert
nicht lesenswert
Mir ist aufgefallen, daß der TLC  hinter den letzten I2Cwrites in der 
Do/Loop noch ein I2CStop haben will. Das hab' ich vergessen.

Schreib' das mal dazu und versuch's nochmal. Das Ergebnis würde dann so 
aussehen wie im Screenshot, so läuft's aktuell hier auf 'nem ATM32.

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

Bewertung
0 lesenswert
nicht lesenswert
Graphik war verbesserungswürdig...  Untere Sequenz hat gefehlt (Leds 
aus)

Autor: Klaus De lisson (kolisson)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Killerawft,

anbei zunächst mal die Bilder aus dem datenblatt.

soll ich Dir mal einen schicken ? .. so einen Portexpander ?
in einem Brief ?  .. kostet mich ne Marke
Im Gegenzug bist Du dann später bereit, mir mit Bestellungen bei
Reichelt auszuhelfen.
Die verlangen ja für France richtig Mindestbestellwert und viel Porto.

Vielleicht bekommst du es ja damit dann hin.
Ich erinnere mich auch, dass es zu Anfang nervend ist,
da man nix weiss, was da abläuft. Am Ende stellt man jedoch wirklich
fest, dass es kein Hexenwerk ist.

Vielleicht berichtest du aber auch einmal über deine Situation.
Bist Du wirklich ein Newcomer ?
Hast Du ein vernünfites Netzteil ?

und so weiter und weiter.

Gruss Klaus

Autor: Killerawft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Klaus De lisson:

Also es wäre nett wenn du mir so einen schicken könntest. Ich würde dir 
auch EINE Bestellung von dir bei Reichelt bestellen und zu dir schicken, 
wenn du das Geld von dir aus überweist. Ich bezahle dann das Porto von 
mir zu dir.

Und nun zu meiner Situation.
Ich bin in der µC Welt recht neu. Ich habe schon mit Tastern und LED's 
rum gespielt und auch eine LED Matrix habe ich aufgebaut. Ein LCD habe 
ich auch zum laufen bekommen und den ADC habe ich zur Temperaturmessung 
mit einem NTC benutzt.

Ich benutze zum Testen der schaltungen und zum Programmieren das ATMEL 
Evaluations-Board V2.0.1 von Pollin. Das Erweiterungs board mit dem LCD 
und den 8 Tastern habe ich auch.

Um den TLC59116 anzusteuern habe ich mir von Conrad die 
Multiadapterplatine gekauft und dort den Baustein aufgelötet. Das ganze 
habe ich mit einer Stiftleiste auf eine Lochrasterplatine gelötet und 
mit dem Evaluations-Board über den J4 verbunden.

Ich habe noch ein NT, das bis 30 Volt gleichstrom und 5 A regelbar ist 
und das VC150 Multimeter von Voltcraft.

@MWS:
Das ist mir schon vorher aufgefallen, dass das da nicht steht und ich 
hatte das einfach mal dazu geschrieben, tut sich aber nichts. leider.

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab' mir nochmal das Pollin Board angesehen, PortC0..1 gehen über Jumper 
JP9 & JP10 auf IC5 und zwei Widerstände. IC5 ist nicht gesteckt und die 
Jumper auch nicht ? Da geht's sonst noch auf zwei Widerstände, dann 
hättest Du ingesamt 6 Stück auf dem I2C Bus, Deine 2 x 4,7k, die 
internen ~20k des µC und 2 x 10k vom Pollin Board. Wobei der 59116 das 
immer noch ziehen können sollte.

Hier wäre auch noch Bascom Code für den 59116, Autor ist Synvox:
http://www.ledstyles.de/ftopic4849-4.html

Ansonsten wären evtl. ein paar gute Fotos Deines Aufbaus hilfreich.

Autor: Killerawft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich habe nur die Jumper für die drei taster und die zwei LED's 
gesteckt, sonst keine.

Ich glaube das ist nicht nötig. Das Pollin board habe ich fertig gelötet 
gekauft und auf meinem selbst gemachten erweiterungsboard habe ich die 
Bauteile aufgelötet und dann die einzelnen Pins an Buchsenleisten 
gelötet und mit Draht verbunden.

Autor: Killerawft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also den Code von deinem Link habe ich mir angeschaut und noch den Reset 
eingebaut vor der Initialisierung. Die Initialisierung aus dem Programm 
aus dem Link brachte einen error hervor also habe ich wieder die 
genommen, die mir hier schon gesagt wurde.

Des weiteren habe ich mir nochmal das Datenblatt angeschaut und nach dem 
Reset gesucht, um mir das auch zu erklären, was da geschrieben wurde. 
Dabei habe ich unter dem Abschnitt "Open-Circuit Detection" etwas 
interessantes gefunden. Ich habe ja NUR an OUT0 eine LED, die anderen 
habe ich nirgends dran. In dem Abschnitt steht, dass dann der TLC einen 
Error hat. Vielleicht macht er deswegen nichts. Morgen werde ich mal 
schauen ob ich 16 LED's zusammenbekomme. Oder kann ich die einfach auf 
Masse legen?

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Also ich habe nur die Jumper für die drei taster und die zwei LED's
> gesteckt, sonst keine.
> Ich glaube das ist nicht nötig.

Diese Jumper sollen eben nicht gesteckt sein, das war eine Frage um auch 
das auszuschließen. Ich kann mich erinnern, daß jemand Probleme mit den 
ADCs hatte, nur weil er vergessen hatte JP11&12 zu ziehen.

> In dem Abschnitt steht, dass dann der TLC einen Error hat.
In dem Abschnitt steht, daß er Errorflags setzen kann, das führt aber 
nicht zum Shutdown, nur bei Übertemperatur würde er abschalten.

Würde Dir aber trotzdem mal raten, nur den Ausgangstreiber zu aktivieren 
an dem auch eine Led dran ist. Wie groß ist übrigens REXT ?

Du könntest auch versuchen, etwas aus einer Zelle zu lesen, um zu sehen 
ob der Baustein nur nix anzeigt, aber man dafür wenigstens mit ihm reden 
kann.
Sollte so funktionieren, auf diese Art und Weise ist's recht verbreitet:
I2cstart
I2cwbyte Tlc1            ' Chip adressieren
I2cwbyte Ledout0         ' Register ansprechen
I2cstart                 ' Restart des des I2C ohne vorheriges Stop
I2cwbyte &B11000001      ' Auf Lesen adressieren
I2crbyte Value_X , Nack  ' Wert holen, letzter Lesebefehl mit NACK
I2cstop

Autor: Killerawft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So Ich habe mal jetzt LEDOUT0 auf H02 gesetzt und dann den Wert 
abgefragt. Das gibt mir den wert 2 zurück.

Dann habe ich PWM0 mal auf 255 gesetzt und danach ausgelesen und da kam 
der wert 255 auch zurück. Die Komunikation funktioniert also würde ich 
sagen.

Rext sind 2kohm groß.

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Dann habe ich PWM0 mal auf 255 gesetzt und danach ausgelesen und da kam
> der wert 255 auch zurück. Die Komunikation funktioniert also würde ich
> sagen.
Sieht doch schon mal gut aus.

> Rext sind 2kohm groß.
 sind ? Das ist jetzt nur ein Verschreiber ?
Es gibt nur einen REXT zur Stromvoreinstellung, und bei 2k und 
unverändertem Output Gain Control Register würden ca. 10mA rauskommen 
pro Led.

Ich würde einen der Werte nehmen die im Datenblatt stehen, z.B. 720. Die 
nächstliegenden Werte aus der E12 Reihe wären 680 oder 820 Ohm, 28mA, 
resp. 23mA.

Und ich würde verschiedene Ausgangspins am 59116 durchprobieren, nicht 
daß es gerade an einem Pin den Treiber erledigt hat.

Sind eigentlich alle GNDs des Bausteins angeschlossen ?

Autor: René L. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich hab 860 Ohm an Rext gemacht, da ich nur zwei 430 ohm 
Widerstände hier hatte, mit denen ich annähernd da ran komme.

Ich habe dann die LEDOUT 0 bis 3 eingeschaltet und die PWM's 0 bis 3 auf 
255 gestellt und alle vier durchprobiert, jedoch ohne Erfolg. Ich habe 
die LED an Plus geschaltet und den Minus Pol an den Treiber. Das ist ja 
so richtig oder?

Es sind auch alle GND an Masse angeschlossen.

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ich habe die LED an Plus geschaltet und den Minus Pol an den Treiber. Das
> ist ja so richtig oder?
Ja, ist richtig.

> Also ich hab 860 Ohm an Rext gemacht,
Andere Seite des Widerstands an GND ?

Abblock C 100nF am 59111 GND/VCC ? Stützkondensator 100µF wären auch 
nicht schlecht. Wobei letzterer eigentlich jetzt keine Auswirkung haben 
sollte, erst wenn Last drauf käme.

Schau mal im Roboternetz nach dem Pdf zur besagten Propellerclock. Da 
ist ein Schaltplan mit drin. Kontrollier' damit Deine Schaltung.

Und sonst, wie schon geschrieben, mach' ein Foto oder leg' die Platine 
mit dem 59116 auf den Scanner. Evtl. entdecken mehr Augen einfach mehr.

Autor: René L. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Also das mit dem Rext ist schon mal gut, der war die ganze zeit auf 
Plus. Jetzt ist er auf Masse und die beiden Kondensatoren sind auch dran 
wie bei der Propeller uhr.

Ich hatte jetzt auch die Möglichkeit vernünftige Fotos zu machen.

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
4MB pro Bild, da wirst Du Dir hier keine Freunde machen...
Vor allem da die Bildinformation auch schon bei 2-300k locker 
rübergekommen wäre.

Dachte da könnte man mehr erkennen, aber das ist ein bisserl sehr 
artistisch verkabelt.

Warum besorgst Du Dir kein Steckbrett ? Kostet nicht die Welt und wär' 
für so etwas ideal geeignet.

> der war die ganze zeit auf Plus
ned so gut.

Autor: Killerawft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nächste woche müsste die platine kommen, wo ich die tlc's dann auflöte. 
Dann kann ich das nochmal mit den neuen tlc's probieren. Vielleicht hat 
der jetztige schon einen weg.

Und ein steckbrett kostet 24€. Und das würde ich nur hier brauchen weil 
ich alle Projekte vorher mit dem pollin board testen konnte.

Autor: Lukas K. (carrotindustries)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
René Lüllau schrieb:
> DSCN0529.JPG
>4,2 MB, 19 Downloads
>...
Bildformate

Autor: René L. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja es tut mir Leid, dass die Bilder so groß sind. Ich werde in Zukunft 
die Bilder vorher verkleinern.

Autor: MWS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Nächste woche müsste die platine kommen, wo ich die tlc's dann auflöte.
> Dann kann ich das nochmal mit den neuen tlc's probieren. Vielleicht hat
> der jetztige schon einen weg.
Der Baustein hat eine interne Spannungsreferenz die über REXT einen 
Referenzstrom erzeugt. Die Referenz hätte selbst Spannung geliefert und 
Du hast sie dagegen mit Strom versorgt, keine Ahnung, ob ihn das gekillt 
hat. Aber wenn's etwas beschädigt hat, dann war das im direkten 
Zusammenhang mit den Stromquellen für die Leds, gibt ein Blockschaltbild 
im DB, da ist das gut zu sehen.

Da Du kommunizieren konntest, nahm ich an daß aus irgendeinem Grund die 
Stromquellen nicht einschalten, 'ne defekte Referenz wäre so etwas.

> Und ein steckbrett kostet 24€. Und das würde ich nur hier brauchen weil
> ich alle Projekte vorher mit dem pollin board testen konnte.
Die kleinsten Steckbretter gibt's ab 4-5 Euro, eines mit 950 Kontakten 
hab' ich für 9€ gesehen, wenn Du noch mehr machen möchtest als die Sache 
hier, ist's sicher keine falsche Investition.

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

Bewertung
0 lesenswert
nicht lesenswert
Also die Platine ist nun da und die Leiste ist auch soweit fertig 
gelötet. Nun habe ich noch ein wenig Bedenken zu RExt. Unzwar habe ich 
SuperFlux 6-Pin RGB-LED's genommen, die ich mit dem TLC ansteuern 
möchte. Da ist es so, dass im Datenblatt alle LED's 20mA bekommen, 
jedoch verschiedene Spannungen. Rot braucht 1,7 Volt und Blau und Grün 
2,8 Volt. Muss dann nicht für Grün und Blau ein anderer, niedrigerer 
widerstand gewählt werden als für Rot? oder reicht es, mit den 820 Ohm, 
den Strom auf ca 20mA zu begrenzen?

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.