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.
Hat denn jeder M16C ein anderes I2C-Modul drin?
Davon gehe ich aus. Warum sollte es sonst zu den Serien R8C / M16C28 und M16C80 unterschiedliche App. Notes geben ?
ist es generell möglich, einen normalen I/O Pin als Bus-Leitung zu verwenden ?
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
@Sacha Sascha hast du vielleicht schon mal einen I2C-Monitor realisiert? Ich könnte so was gerade gut gebrauchen. Gruss Alex
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
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....
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.