www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik I2C Bus Übertragungsprobleme


Autor: Andrew (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Code? Blockschaltbild? seuftz

Autor: John Small (linux_80)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

evtl. Masseproblem ?

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

Autor: Andrew (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Config Sda = Porta.0
Config Scl = Porta.1
...
Ddra = &B00000011                                           
Porta = &B11111100
...
do
I2creceive &B10011111 , Msb , 0 , 1
I2creceive &B10011111 , Lsb , 0 , 1

Xx = Str(lsb)
Call Lcd_print(xx , 4 , 156 , 1 , 1 , 1 , Blue , White)
...
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...

Autor: Niels Hüsken (monarch35)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da fehlt ein
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.

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.