Forum: Mikrocontroller und Digitale Elektronik DS1631 Auslesen von MS und LS Databyte


von Carsten (Gast)


Lesenswert?

Hallo,

ich beschäftige mich mit dem DS1631 und einem ATMega2561. Die 
Kommunikation  funktioniert ohne Probleme. Dazu habe ich den Code von 
Peter Fleury genutzt.

Nun möchte ich aber auch die Nachkommastellen aus dem DS1631 auslesen.
Laut Datenblatt folgt dem auslesen des MS Data byte ein ACK vom Master 
und dann wird das LS Data byte bereitgestellt.

Aber wie sende ein ACK vom Master?

Das Datenblatt vom Mega hat mir bis jetzt auch nicht wirklich geholfen. 
Hie habe ich nur Beispiele zum empfangen eines ACK oder NACK gefunden.

Hat jemand von euch einen oder Hinweis Tipp für mich?

Gruß
Carsten

von Oliver J. (skriptkiddy)


Lesenswert?

Zuerst i2c_readAck für das erste Byte und dann i2c_readNak für das 
2. Byte.

Gruß Skriptkiddy

von Oliver J. (skriptkiddy)


Lesenswert?

und hinbekommen?

von Carsten (Gast)


Lesenswert?

Hallo,

jab danke, ich kann nun beide Registerwerte auslesen. Ich verstehe zwar 
noch nicht warum i2c_readNak mit dem ACK(Master) gleichzusetzten ist, 
aber das werde ich hoffentlich noch rausfinden.

Gruß
Carsten

von Oliver J. (skriptkiddy)


Lesenswert?

Carsten schrieb:
> Ich verstehe zwar
> noch nicht warum i2c_readNak mit dem ACK(Master) gleichzusetzten ist,

Ist es auch nicht.

Das I2C-Protokoll besagt, dass wenn man mehrere Bytes hintereinander 
auslesen will, man jeweils vor dem nächsten Byte ein Master-ACK machen 
muss, um der I2C-Peropherie klar zu machen, dass man das noch ein Byte 
haben möchte. Dass passiert am Ende von i2c-readAck. Nach dem letzten 
Byte braucht man kein Ack mehr und sendet dementsprechend auch keins. 
Darum nutz man hier i2c_readNak, welches am Ende des Lesevorgangs kein 
Ack sendet.

Gruß Skriptkiddy.

von Carsten (Gast)


Lesenswert?

Hallo,

vielen dank für die Zusatzinfo's. So langsam glaube ich zu verstehen was 
da so auf dem Bus passiert.

Gruß
Carsten

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.