Forum: Mikrocontroller und Digitale Elektronik Software I2C auf ARM7 LPC2106


von Daniel K. (nimrod)


Lesenswert?

Hallo an alle,

mitlerweile habe ich den I2C verstanden. Nur mein Quellcode dazu passt 
garnicht. Ich benutze den LPC2106 auf der CMUCam3. Aus was für Gründen 
auch immer wird nicht der hardware I2C sondern die Pins 32 und 33 
benuzt.

Das sind normale GPIOs mit internal Pull-up.

im mitgelieferten code ist die schreibfunktion des I2C implementiert. 
Jetzt mag ich aber auch lesen und muss dazu erstmal den vorhandenen code 
verstehen.


Ich fang mal mit der Startcondition an
Theorie: CLK ist High und eine fallende Flanke wird auf SDA generiert

Praktisch:
1
REG (GPIO_IOCLR) = 0x00800000; // setzt SDA auf LOW
2
REG (GPIO_IODIR) = 0x00BEBDC9; // setzt SDA output und SCL input
3
_cc3_delay_sccb ();
4
REG (GPIO_IOCLR) = 0x00400000; // setzt SCL auf LOW
5
REG (GPIO_IODIR) = 0x00FEBDC9; // SDA und SCL output
6
_cc3_delay_sccb ();

Das funktioniert aber ich verstehe es nicht. Ist da irgendetwas 
besonders an den Pins oder bin ich blind?

Wenn noch mehr code benötigt wird poste ich den noch nach.

Vielen Dank im Vorraus

Gruß Daniel

von (prx) A. K. (prx)


Lesenswert?

Was war nochmal die Frage? Die einzige die ich grad finde ist die ob du 
blind bist.

von Daniel K. (nimrod)


Lesenswert?

ich verstehe nicht wie die codezeilen die ich oben eingefügt haben die 
startcondition realisieren

für mich sieht es so aus als wird SDA LOW und dann kommt eine fallende 
flanke auf SCL und das macht ja nun mal gar keinen Sinn

frage ist also warum diese zeilen trotzdem funktionieren und was ich 
daran nicht verstehe oder falsch auslege

von Daniel K. (nimrod)


Lesenswert?

ok ich habe die frage nochmal anders gestellt und alles ist geklärt 
siehe hier:


Beitrag "Allgemeine Frage zu GPIOs beim ARM7 LPC2106"

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.