Hallo, Ich lese mit einem Atmega2561 einen LM75 (I2C Bus Temperatur Chip). Prorammiersprache ist Bascom. Nun habe ich folgendes Problem... I2C Bus ist korrekt verdrahtet, aber beim auslesen bekomm ich nur einsen raus. Sprich, wenn ich die 2 Bytes auslese bekomme ich nur &HFF &HFF... Nun kommt das richtig misteriöse... Fasse ich mit einem Finger auf die blanke SDA, oder SCL Leitung, liest der Controller richtige Werte aus. Geh ich runter mit dem Finger kommen nur einsen... Dachte erst es liegt an vielleicht zu groß dimensionierten Pull-Up Widerstand mit 10K, also hab ich den gegen nen 5K ausgetauscht, dannach gegen nen 2K... immer das selbe Problem... Fass ich die SDA oder SCL an, kommen richtige Werte, sonst nicht. WARUM??? Irgendwelche Ideen??? Einen wackler kann ich ausschließen. Kabellänge zwischen Controller und Chip schon mit 10cm und 20cm probiert. Pull-Up's schon mit 10K, 5K, 2K probiert. Wie man bei Bascom die auslesegeschwindigkeit ändert weiß ich leider nicht, sonst hätt ich das auch schon probiert... Ich brauche ideen... <<<< ;-) Gruss Andrew
Hallo, evtl. Masseproblem ? macht du in Software I2C, oder Hardware (TWI) ?
1 | Config Sda = Porta.0 |
2 | Config Scl = Porta.1 |
3 | ...
|
4 | Ddra = &B00000011 |
5 | Porta = &B11111100 |
6 | ...
|
7 | do
|
8 | I2creceive &B10011111 , Msb , 0 , 1 |
9 | I2creceive &B10011111 , Lsb , 0 , 1 |
10 | |
11 | Xx = Str(lsb) |
12 | Call Lcd_print(xx , 4 , 156 , 1 , 1 , 1 , Blue , White) |
13 | ...
|
14 | loop
|
^^ so in etwa sieht der code aus... Blockschaltbild, hab ich grad keins zur Hand, ist aber recht simpler aufbau, ATmega hängt an Spannung, LM75 hängt am der selben 5V Netzteil, LM75 hängt mit sda/scl am PortA.0 /PortA.1. Die Pull-up's hängen direkt am LM75 zwischen Vcc - Sda/SCL. Versorgungsspannung mit 5V übernimmt ein PC-Netzteil. Masseproblem, würde ich ausschließen, da beide an der selben Spannungsquelle hängen...
Da fehlt ein
1 | i2cinit
|
Wenn das in dem vollständigen Code enthalten sein sollte, würde ich dich bitten, diesen auch zu posten. Mit Programmteilen ist niemanden geholfen. Da geht das Rätselraten nur weiter, und darauf hat keiner so wirklich lust.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.