Forum: Mikrocontroller und Digitale Elektronik Anfängerfrage I²C Bus (verbinde M16C62M mit Philips LPC210


von Tilman (Gast)


Lesenswert?

Guten Tag die Damen und auch die Herren,

Unschönerweise muss ich mich als blutigen Anfänger bezeichnen, was den
I²Bus angeht.
Mein Problem: Ich möchte einen Mitsubishi/Renesas M16C/62M µC mit einem
Philips LPC2106 verbinden. Am M16C/62M sind 2 UARTS vorhanden, die ich
aber beide schon belegt habe (fuer Bluetooth Modul /
Programmier-Interface).
So. Was mach ich jetzt ? Gibt's da nicht irgendwie ne Möglichkeit, um
einen normalen I/O Pin des M16C/62M als Bus zu verwenden ?
Geht das mit I²C ? Ich habe auf www.m16c.de zu fast jedem Mitsubishi µC
eine Application Note zum I²C gefunden, aber ausgrechnet zum M16C/62
gibts nix. Es ist mal wieder zum Heulen.

von A.K. (Gast)


Lesenswert?

Hat denn jeder M16C ein anderes I2C-Modul drin?

von Tilman (Gast)


Lesenswert?

Davon gehe ich aus. Warum sollte es sonst zu den Serien R8C / M16C28 und
M16C80 unterschiedliche App. Notes geben ?

von Tilman (Gast)


Lesenswert?

ist es generell möglich, einen normalen I/O Pin als Bus-Leitung zu
verwenden ?

von Sascha Pypke (Gast)


Lesenswert?

Hallo Tilman,
ich habe beim M16C62 den I2C als Master und als Slave im einsatz.
Funktioniert eigentlich sehr gut, aber vergesse die Aplikationen von
Renesas, die funktionieren als Slave nicht und wenn nur sehr
instabiel.
Habe einige Ingeneure der Firma um hilfe gebeten, konnte mir nur keiner
was dazu sagen (jedenfals nichts was hätte funktioniert). Also habe ich
2 Wochen daran gearbeitet die Hardware hinzubiegen. Es ist einfach
super schlecht dokumentiert. Geht aber auch nur in Assembler da man den
vollen speed in den Interrupts braucht. Dank eines sehr alten
Datenblattes was noch einige Bits mehr verrät.
Als Master kannst du alle I/O Pins des Kontrollers nutzen.
Der M16C62 kann so manche Dinge mehr als die Datenblätter eben sagen.
Man kann einen echt coolen I2C Monitor (Analayser) aufbauen.

Schau dir bitte die I2C-BUS beschreibung von Philips an.
Wenn du dann den I2C Master (Routinen) brauchst bitte kurze Mail an
mich. (Meine Routinen helfen leider nur dann, wenn der I2C-BUS auch
verstanden ist. Routinen in Assembler)

Gruß Sascha

von Alex (Gast)


Lesenswert?

@Sacha
Sascha hast du vielleicht schon mal einen I2C-Monitor realisiert? Ich
könnte so was gerade gut gebrauchen.

Gruss Alex

von Tilman (Gast)


Lesenswert?

Hallo Sascha,

cool, wenigstens weiss ich jetzt, dass das prinzipiell geht. Danke für
die Information !
Ich habs jetzt erstmal über UART0/UART1/UART2 gemacht, das reicht mir
vorerst mal.
Offenbar ist das echt "nicht Ohne", mit dem I²C beim M16C62. Ich werd
mir das bei Philips mal anschauen und evtl. Dich mal anmailen, wenn ich
es denn bei Philips verstehe.
Gruß und vielen Dank an Dich !
Tilman

von Sascha Pypke (Gast)


Lesenswert?

Noch ein paar Anmerkungen was den M16C62 betrifft, das Problem sind die
Start und Stoppbits, da wird ein Interrupt erzeugt, den man sehr
schnell ausführen sollte um das Empfangsregister neu auf Daten
vorzubereiten oder auch um ein Acknowledge ausgeben zu können. Den
Speed von guten 100KHz habe ich erreicht, aber 400KHz geht im Slave
modus nicht mehr.
Die M16C80 und M32C CPUs sind so viel ich weis etwas überarbeitet.
Im Master Mode gibt es da keine Probleme.

Besonders ist die Fähigkeit, das es kein Hardware Slave Adressregister
gibt, somit können mehrere Adressen simuliert werden.

Einen I2C Monitor habe ich damit noch nicht realisiert, es fehlt
einfach an Zeit.

Gruß Sascha

PS. besonders auf die Start und Stopp sowie ACK und NACK achten....
dann ist I2C-BUS easy....

von Knut P. (knut)


Lesenswert?

Hallo Tilman,
hast du den I2C-bus mit den contorller-eigenen funktionalitäten für 
uart0/uart1uart2 realisiert?

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.