Forum: Mikrocontroller und Digitale Elektronik I2C Bus Übertragungsprobleme


von Andrew (Gast)


Lesenswert?

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

von Niels H. (monarch35)


Lesenswert?

Code? Blockschaltbild? seuftz

von John S. (linux_80)


Lesenswert?

Hallo,

evtl. Masseproblem ?

macht du in Software I2C, oder Hardware (TWI) ?

von Andrew (Gast)


Lesenswert?

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...

von Niels H. (monarch35)


Lesenswert?

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
Noch kein Account? Hier anmelden.