Brotspinne,
dem Datenblatt nach ist die I2C-Adresse 1100 0010, also 0xC2. Das LSB ist im Datenblatt mit X markiert, weil es sich je nach Read- oder Write-Betrieb ändert.
mare_crisium
Hallo RN Gemeinde,
ich habe aus einem alten Auto-Radio die Empfängerbaugruppe ausgebaut.
Darauf befinden sich zwei IC`s der TEA6810V (Front-end and PLL synthesizers) und der TEA6825T (PLL VCO).Der TEA6825T verfügt über eine I²C Schnittstelle um den TEA6810V mit der Referenz- Frequenz zu versorgen.Ich wollte nun den TEA6825T via I²C ansteuern um damit über den PC die Feinabstimmung der Radiofrequenz bzw. die Empfangsfrequenz zu wählen.Ich habe mir die Datenblätter beider Ic`s angeschaut,und versucth mit einem einfachen VB6 Programm die Slave ID (1100001) vom PC über RS232-I²C Koppler (http://www.horter.de/i2c/i2c-pc-seri...seriell_1.html) zu senden.Leider gelingt mir das nicht,entweder ist die Slave Id falsch oder ich habe einen Fehler in der Ansteueung bzw. im Programmcode.Vieleicht liest ja der eine oder andere von euch mehr aus dem Datenblatt heraus als ich,und kann mir helfen.
Datenblatt TEA6810V http://pdf1.alldatasheet.com/datashe.../TEA6810V.html
Datenblatt TEA6825T http://pdf1.alldatasheet.com/datashe.../TEA6825T.html
Das sind die beiden Datenblätter, und hier nochmal der VB6 Quellcode.
Ich hoffe der eine oder andere kann mir weiter helfen.Code:Dim istda As Boolean Private Sub AdresseTxt_Change() End Sub Private Sub meinCom_onChangeE1() End Sub Private Sub SendenBtn_Click() meinCom.initI2C meinCom.startI2C istda = meinCom.ausgebenI2C(AdresseTxt.Text) If Not istda Then MsgBox ("I²C-Sklave antwortet nicht auf Anfrage vom Meister-I²C!") Else meinCom.ausgebenI2C (WertTxt.Text) End If meinCom.stopI2C End Sub Private Sub Form_Load() meinCom.open (1) End Sub Private Sub Form_Unload(Cancel As Integer) meinCom.Close End Sub Private Sub WertTxt_Change() End Sub
MfG Brotspinne
Brotspinne,
dem Datenblatt nach ist die I2C-Adresse 1100 0010, also 0xC2. Das LSB ist im Datenblatt mit X markiert, weil es sich je nach Read- oder Write-Betrieb ändert.
mare_crisium
Hallo mare_crisium,
Diese Slave ID habe ich auch schon probiert,ohne Erfolg.Also entweder ist die Software falsch oder ich mache einen Fehler.Ich lese und lese die Datenblätter und I²C Spezifikation aber komm nicht weiter.Ich werde mal suchen ob es ein Diagnoseprogramm gibt...!
Brotspinne,
schade, ich dachte schon das wär's . Nächster Tip: Die Pull-up Widerstände an SCL und SDA (10k an +5V) hast Du eingebaut?
mare_crisium
Morgen mare_crisium,
ich habe den I²C-RS232 Konverter so aufgebaut wie oben im Schaltbild auf der Webseite zu sehen.Einzigste Änderung ich habe anstatt 270 Ohm Vorwiderstänbden für die LED`s 330 Ohm genommen.Aber das hat ja nichts mit den Signalen zu tun.Der Konverter macht ja nichts anderes als die RS232 Signalpegel von -3 bis -12 und 3 und 12 Volt in I²C Pegel umzuwandeln also 0V oder 5V (Low or High).Auf dem Konverter sind jumper womit man die Signale terminieren kann,indem man sie mit 4,7K gegen Masse zieht.Extra Pull-ups habe ich nicht, 10K habe ich auch schon oft gelesen aber ich geh davon aus das der Konverter ausreicht.Aber ich lass mich gern eines besseren belehren,Nur raus mit den Vorschlägen...!
MfG Brotspinne
Nee, Brotspinne,
belehren will ich sicher niemanden ! Die angesprochenen Pull-up-Widerstände sind im Schaltplan als R4 und R5 (jeder 4,7kOhm) eingezeichnet. Jeder für sich kann mit einer Brücke aktiviert werden (JP1-1 und JP1-2). Diese Brücken müssen gesteckt sein. Die LEDs tragen zum Pull-up nichts bei; sie sind über die 7405 vom Bus entkoppelt. Die Pull-ups aber sind zwingend erforderlich (siehe z.B. dieses sehr informative Handbuch von NXP - früher Philips Semiconductors -
http://www.nxp.com/acrobat_download/.../AN10216_1.pdf
(Seite 13, Slide 31).
Also, wenn die Brücken gesteckt sind, dann haben wir's höchstwahrscheinlich doch mit einem Softwareproblem zu tun.
Ciao,
mare_crisium
Hallo mare_crisium, also das mit dem belehren habe ich eigentlich nicht böse gemeint.Ist nur ne Redewendung hier im üblichen Sprachgebrauch.
Also ich habe jetzt die Jumper für SDA und SCL gesetzt also werden über 4,7K gegen GND gezogen.Leider klappt das ansprechen des Bausteins mit dem Codesnipsel von oben nicht.Ich habs mit 11000010 probiert mit 11000011 ohne Erfolg.Wäre schön wenn man ein anderes Programm hätte um das nochmal zu Testen.
Ach ja mal ein paar Infos: Kabellänge vom RS232 zum I²C Koppler ca:20cm,Kabel vom Koppler zum Empfänger ca. 35-45cm,RTS von RS232 wird zu SCL für den I²C Bus,DTR u. DSR wird zu SDA für den I²C.Ja ich überprüfe die Verkabelung nun zum 4. mal kann aber keineen fehl Anschluss feststellen.Entweder ist der Schaltktreis kaputt oder die Software nicht kompatible.
MfG Broti
Brotspinne,
is' schon gut ! Die Kabellängen, die Du erwähnst, sind in Ordnung; über diese Längen darf die Kommunikation kein Problem machen. Die MAX232s sind so robust wie Küchenschaben. Da musst Du Dich schon anstrengen, um so einen kaputt zu kriegen. Die Belegung ist auch so richtig; allerdings ist es mir schon oft vorgekommen, dass ich am Sklaven-Chip SDA und SCL vertauscht habe.
Ein anderes Programm kann ich Dir nicht bieten; ich habe mir meinen Umsetzer selbst ausgedacht und gebaut (mit einem ATmega und spreche ihn vom PC her über die RS232-Schnittstelle mit einem in Object-Pascal (Delphi 5) geschriebenen Programm an.
Vielleicht ist es am Besten, Du probierst's mit dem "I2Ps-Funktionstest.xls und port.dll als ZIP-Datei (57 kB)" aus, das unten auf der Seite zum download bereitsteht? Falls Du kein Excel hast, kannst Du "Openoffice" herunterladen; das liefert ein Tabellenkalkulationsprogramm mit, unter dem sollte das Makro auch läuft.
Ciao,
mare_crisium
Morgen mare_crisium,
Also ich habe jetzt mal den funktiontest gemacht und bei mir wird SDA nicht wieder zu Null.Die Pull-ups auf dem Koppler sind gesetzt,wie meinen die das mit am Slave auf Masse ziehn?Überbrücken zur not?Keine Ahnung woran das liegt das SDA nicht wieder Null wird.Vieleicht hast du ja eine Vermutung!Exel habe ich das ist nicht das Problem .
Edit:Ich habe jetzt nochmal den Test gemacht und SDA auf Masse gebrückt, dann funktionierts im Exelprogramm und SDA wird dann Null!/Edit
Huch, Brotspinne,
dass der Test funktioniert, freut mich. Das ist schonmal ein deutlicher Fortschirtt .
Aber: SDA auf Masse gebrückt??? Wenn Du einen Ausgang des 7405 gegen Masse kurzschliesst, dann glüht der Chip normalerweise einmal kurz auf und dann hat er abgenippelt... Zwischen welchen Leitungen und wo sitzt denn die Brücke? Kommt mit der Brücke der SDA überhaupt noch auf >4,0V? Erklär' mal genauer!
Ciao,
mare_crisium
Lesezeichen