mikrocontroller.net

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


Autor: Tilman (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hat denn jeder M16C ein anderes I2C-Modul drin?

Autor: Tilman (Gast)
Datum:

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

Autor: Tilman (Gast)
Datum:

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

Autor: Sascha Pypke (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Alex (Gast)
Datum:

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

Gruss Alex

Autor: Tilman (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sascha Pypke (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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....

Autor: Knut Pacholke (knut)
Datum:

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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.