Anfängerfrage I²C Bus (verbinde M16C62M mit Philips LPC210

Gast #406325
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.
Gast #406329
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
Gast #406331
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
Gast #406332
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....

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.