mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik M16c/6N4 als I2c Slave


Autor: Memory (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich habe zwei M16c/6N4 per I2c verbunden (+ Ein paar ADCs ect..).
Bis her waren beide Master(Multimaster was auch funktioniert hatte) nun 
soll einer als Slave umgebaut werden.

Leider lässt sich das Manual nicht darüber aus, wie ich eine gesendete 
Adresse auf dem Bus bestätige. Auch andere Slave-Funtionalitäten fehlen.
In App. Notes finde ich nur etwas über Master und Multi Master.

Hatte jemand schon mal das Problem und hat eine Lösung dafür?

Gruß
Memory

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Hatte jemand schon mal das Problem und hat eine Lösung dafür?

Hm..ich hab bis jetzt nur einen R8C/29 als Slave genutzt. Das geht 
eigentlich total unauffaellig und sollte bei deinem M16 ja genauso 
gehen.

Allerdings habe ich mindestens 10 graue Haare bekommen bis das ganze 
zuverlaessig war. Du musst in deiner I2C-routine oefter kontrollieren
das sich die Statemachine in der Hardware der CPU nicht weghangen hat.
Das machen die schonmal und das muss auch nicht Schuld der CPU sein, 
sonder
kann auch durch externe Stoerungen auf dem Bus kommen.

Olaf

Autor: Memory (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Olaf

Danke für die Antwort. Mein Problem ist schon die Vorgangsweise 
nachzuvollziehen. Bei anderen Prozesoren kann eine Adresse hinterlegt 
werden auf welche der Prozessor reagieren soll. Aber hier gibt es nichts 
der Gleichen.

Wenn ich den Vorgang wüste, würde das auch schon viel helfen.

Gruß Memory

Autor: Max D. (Firma: No RISC, no fun.) (metalfan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn du da zwei so dinger als multimaster hast, und die auch miteinander 
reden, dann muss doch iwie schon eine I2C Verbindung da sein.... also 
auch ein verbindungsaufbau per adresse....

Autor: Memory (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schon beim Multimaster reden die beiden M16c mit den anderen 
Busteilnehmern und nicht miteinander.

Ich würde auch das Protokoll ändern aber das mögen die anderen 
Busteilnehmer nicht.

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Bei anderen Prozesoren kann eine Adresse hinterlegt
> werden auf welche der Prozessor reagieren soll.

Vielleicht reden wir ja anneinander vorbei weil ich einen anderen
Prozessor benutzt habe, aber normalerweise verbaut Renesas ja
auch immer dieselbe Hardware in den Prozessoren.
Mein R8C29 hat ein SAR Register fuer die Slaveadresse auf die
er anspringen soll.

BTW: Wenn deiner so neu ist da es da noch keine Applikation fuer gibt, 
man kann oft auch die eines anderen Processors verwenden. Man muss dann 
nur mal genau alle Register vergleichen. Meist ist bei den neueren 
Prozessoren dann nur noch irgendwo 1 oder 2 Bit dazugekommen weil sie 
die Funktionalitaet verbessert haben.

Bist du eigentlich sicher das deiner ueberhaubt I2C/Slave kann? Ich habe 
gerade mal schnell das Datenblatt ueberflogen, aber da stand nur was vom 
normalen simplified I2C-Modul. Was genau laesst dich glauben der 
Controller wuerde I2C-Slave unterstuetzen?


Olaf

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Memory schrieb:
> Bis her waren beide Master(Multimaster was auch funktioniert hatte) nun
> soll einer als Slave umgebaut werden.

Multimaster heißt, der, der zuerst sendet, ist der Master und logischer 
Weise dann der andere der Slave.
Du mußt also schon die Slavefunktion implementiert haben, sonst kann 
Multimaster noch nie funktioniert haben.


Peter

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Multimaster heißt, der, der zuerst sendet, ist der Master und
> logischer Weise dann der andere der Slave.

Ach? Und wenn zwei Master mit einem auch am Bus haengenden 24C02 
abwechselnd reden?
Multimaster heisst doch erstmal nur das ein Master es erkennt wenn der 
Bus bereits belegt ist und die Finger davon laesst.

Olaf

Autor: Memory (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Peter: Siehe Olaf.

@Olaf: Im Datenblatt gibt es eine Tabelle (Register to Be Used and 
Settings in I2C Mode). Dort gibt es eine Spalte für Master und für 
Slave.

Aber genau so ein SAR Register fehlt hier. Das Problem ist halt das 
System exestiert schon für die eine Anwendung und nun soll mit der 
selben Platine eine andere Aufgaben erledigt werden.

Sicher bin ich mir nicht mehr....

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Sicher bin ich mir nicht mehr....

Dann schau doch mal hier:

http://www.renesasrulz.com/index.jspa

Die Bedienung von der Oberflaeche schwankt zwar zwischen extrem schlecht
und einem Schmerz im A..., aber da haengen Leute rum die dir sofort
sagen koennen ob es ueberhaubt geht.

Olaf

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Olaf schrieb:
> Ach? Und wenn zwei Master mit einem auch am Bus haengenden 24C02
> abwechselnd reden?

Ich hatte das so verstanden, daß die MCs auch untereinander 
kommunizieren.
Alles andere halte ich für ziemlich sinnfrei.


Wenn Du mal nen Link zum Datenblatt postest, kann ich ja mal reingucken.


Peter

Autor: Memory (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Also RENESAS hat auch keine Idee, von dem her gib ich es auf und suche 
eine andere Lösung. Es gibt aber M16c-Derivate welche I2c Slave richtig 
unterstützen. Die M16C/6N Group auf jedenfall nicht.

Danke für Eure Hilfe.

Gruß Memory

Autor: Memory (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Peter Datenblatt des Prozessors:

http://documentation.renesas.com/eng/products/mpum...

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du schon in der Appnote nachgesehen?

http://documentation.renesas.com/eng/products/mpum...

4.4 Slave Reception
4.5 Slave Transmission

http://www.renesas.eu/support/downloads/download_r...


Memory schrieb:
> Die M16C/6N Group auf jedenfall nicht.

In der Appnote steht M16C/6C.


Peter

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.