www.mikrocontroller.net

Forum: Mikrocontroller und Elektronik R8C: Daten eines M25P über UART auslesen?


Autor: Michael T. (michelback)
Datum:

Hallo zusamen,

ich habe das Problem, dass ich Daten aus einem Flash-Memory (M25P64) der
über SPI an einen µC (renesas R5F2122CKFP) angeschlossen ist mit dem PC
auslesen möchte.
Zum Debuggen und Flashen des  µCs verwende ich den E8a von Renesas.
Dieser nutzt die UART1. Dann würde mir ja noch die UART0 bleiben um mit
einem weiteren Interface manuell mit dem µC zu kommunizieren, oder?
Die Idee ist, einen Programmabschnitt im µC zu haben, der erkennt wenn
UART0 verwendet werden soll (zB Interrupt), also der Stecker
angeschlossen ist.
Daraufhin soll dann der µC folgendes tun:
- Daten aus dem M25P64 auslesen
- Daten an die UART0-Schnittstelle senden

müsste doch so gehen, oder? Über den Debugger komme ich jedenfalls nicht
an die Daten ran danke ich. Der debuggt und flasht nur.

welche Pins benötige ich dann für die UART0-Schnittstelle? Im Datenblatt
sind insgesamt 5 Pins angegeben (2x TXD, 2xRXD, 1xCLOCK), aber ich
dachte man braucht dazu eigentlich nur 1x TXD, 1x RXD und 1x CLOCK
(+interrupt pin)?

Welche Software und Hardware(fertig - nicht selber basteln)benötige ich
für die UART0?

Vielen dank und Grüße,
Michael
Autor: Arc Net (arc)
Datum:

Michael T. schrieb:
> Hallo zusamen,
>
> ich habe das Problem, dass ich Daten aus einem Flash-Memory (M25P64) der
> über SPI an einen µC (renesas R5F2122CKFP) angeschlossen ist mit dem PC
> auslesen möchte.
> Zum Debuggen und Flashen des  µCs verwende ich den E8a von Renesas.
> Dieser nutzt die UART1. Dann würde mir ja noch die UART0 bleiben um mit
> einem weiteren Interface manuell mit dem µC zu kommunizieren, oder?
> Die Idee ist, einen Programmabschnitt im µC zu haben, der erkennt wenn
> UART0 verwendet werden soll (zB Interrupt), also der Stecker
> angeschlossen ist.
> Daraufhin soll dann der µC folgendes tun:
> - Daten aus dem M25P64 auslesen
> - Daten an die UART0-Schnittstelle senden
>
> müsste doch so gehen, oder? Über den Debugger komme ich jedenfalls nicht
> an die Daten ran danke ich. Der debuggt und flasht nur.
>
> welche Pins benötige ich dann für die UART0-Schnittstelle? Im Datenblatt
> sind insgesamt 5 Pins angegeben (2x TXD, 2xRXD, 1xCLOCK), aber ich
> dachte man braucht dazu eigentlich nur 1x TXD, 1x RXD und 1x CLOCK
> (+interrupt pin)?

Siehe Pin Assignments/Pin Functions im Datenblatt bzw. Abschnitt 15
Serial Interface im Hardwaremanual.
UART0: TXD0, RXD0, CLK0, falls der synchrone Modus benutzt wird, bzw.
falls man die Baudrate im asynchronen Modus extern vorgeben will
UART1: TXD1, RXD1

> Welche Software und Hardware(fertig - nicht selber basteln)benötige ich
> für die UART0?

http://eu.renesas.com/fmwk.jsp?fp=/products/mpumcu...

Hardware?
FT232R oder fertiges Modul ala
http://apple.clickandbuild.com/cnb/shop/ftdichip?o...

oder z.B. MAX3222E + USB->RS232-Wandler

> Vielen dank und Grüße,
> Michael

p.s. am Controller hängen nicht zufällig noch ein paar 24-Bit ADCs?
Autor: Michael T. (michelback)
Datum:

hallo Arc Net,

es hängen keine 24bit ADCs am µC. Warum fragst du?

Danke für die Info zur UART Schnittstelle.
Mir ist aber bei den Seriellen Schnittstellen was nicht ganz klar:
Ich möchte die UART1 für den E8a Debugger nutzen. Ausserdem möchte ich 4
Slaves an die SSU-Schnittstelle anschließen, darunter auch die 2
Speicherbausteine. Die UART0 möchte ich nun als serielle Schnittstelle
zum PC nutzen um im µC manuell (vom PC aus) ein Programm zu starten,
dass die Speicherbausteine ausliest und die Daten an die UART0 schickt.
Jetzt komme ich aber mit den Bezeichnungen der Schnittstellen nicht ganz
zurecht:
Für die Slaves brauche ich den SSU (= Clock synchronous serial I/O with
chip select, vgl kap 16.2 im Datenblatt). Kann es sein, dass der
SSU-Modus den UART1 beansprucht? Also dass der UART1 nicht verwendet
werden kann, wenn der SSU aktiv ist? Folglich kann man nicht Debuggen
wenn der SSU benutzt wird bzw andersrum.

Und was ist beim UART0 die gängigere Variante wenn ich mit dem PC
kommunizieren will? CLOCK extern vorgeben, oder die interne CLOCK des µC
nutzen?

Danke und Grüße,
Michael
Autor: Michael T. (michelback)
Datum:

habe gerade gesehen, dass man mit dem UART0 den Clock SYNCRONOUS mode
einstellen kann. Mit UART1 geht das nicht(nur ASYNCRONOUS). Wird jetzt
der UART0 für SSU verwendet? wenn das so wäre, dann könnte ich ja nicht
per SSU auf die SLaves zugreifen und die Daten über UART0 an den PC
schicken, oder?
Wäre es dann möglich den UART1 zu verwenden wenn der E8a-Debugger nicht
angeschlossen ist?
Grüße,
Michael
Autor: Olaf (Gast)
Datum:

Also ich habe jetzt keine Lust fuer dich dein Datenblatt zu lesen,
aber bei manchen Controllern war es noch so das man die Ausgaenge
der RS232 auf einen anderen Pin umschalten konnte.
Wobei dir das aber nicht viel helfen wird wenn du nunmal den
Debugger an der seriellen laufen haben willst.

Bei neueren Typen, ich setze z.B einen R8C29 ein, redet der Debuger
mit dem Controller ueber die Resetleitung. Da kostet dich das
dann keinen Port.

Notfall musst du halt auf einen anderen Typen umstellen, oder auf
den Debugger verzichten.

Olaf
Autor: Michael T. (michelback)
Datum:

Hallo Olaf,
zum Glück hast du nicht nachgeschaut! Sind ja immerhin 550Seiten. Ich
dachte nur, falls jemand schonmal was Ähnliches gemacht hat und da
sofort Auskunft geben kann,wärs toll. Das mit dem Datenblatt durchlesen
erwarte ich ja auch nicht, ich hoffe dass ist nicht so rübergekommen.
Aber vielen Dank für die Rückmeldung.

Zum Problem: Falls es jemand anderem so ergeht wie mir, dann hab ich
jetzt die Antwort (nachdem ich mich durch renesas durchtelefoniert
habe):

UART1 ist für den E8a-Debugger reserviert. Damit sind nicht unbedingt
die Pins am Controller gemeint sondern die SFRs. Der E8a wird beim
R8C/22K nur über die Pins "Reset" und "Mode" angeschlossen.
Zur Frage SSU und UART0: SSU und UART0 sind zwei verschiedene Module und
können gleichzeitig verwendet werden. UART0 wird demnach nicht für den
SSU-Modus gebraucht. Das SSU-Modul Wiederum kann als SPI oder IIC
konfiguriert werden.

Damit wäre zumindest für mich dieser Thread beantwortet.

Danke nochaml an alle und Grüße,
Michael
Autor: Michael T. (michelback)
Datum:

..ok, der Thread ist zwar beantwortet, aber jetzt habe ich noch eine
Hardware-Frage:

Was muss ich beachten, wenn ich ein entsprechendes USB-to-RS232-Kabel an
die UART hängen will?
Muss ich den Ground-Pin des Kabels an das SchaltungsGND verbinden?
Brauche ich bei TDX oder RDX einen PullUp oder Pulldown?

Grüße
Michael
Autor: Arc Net (arc)
Datum:

Michael T. schrieb:
> hallo Arc Net,
>
> es hängen keine 24bit ADCs am µC. Warum fragst du?

Weil das, insbesondere noch mit den Details 4 Slaves davon 2x Speicher,
sehr ähnlich zu einer Schaltung ist, die hier vor ca. zwei Jahren
gemacht wurde. Controller war der R5F21228KFP (die 64 kiB-Variante), 4
SPI-Slaves davon 2x M25P80...

> Und was ist beim UART0 die gängigere Variante wenn ich mit dem PC
> kommunizieren will? CLOCK extern vorgeben, oder die interne CLOCK des µC
> nutzen?

Hängt vom Rest ab...
- Controller läuft mit dem internen Takt:
  Siehe High-Speed On-Chip Oscillator Circuit Electrical Characteristics
  im Datenblatt, je nach Spannung/Temperatur und gewünschter Baudrate
  kann es klappen (man kann auch versuchen über FRA1 die Frequenz
  abzugleichen)
- Controller läuft mit externem Quarz/Oszillator:
  passende Frequenz (Baudratenquarz): kein Problem
  keine passende Frequenz: externer Takt für UART0
- Hängt PC und Controller ein USB->Seriell Adapter mit z.B. FT232R, sind
  auch "gerade"/"andere" Baudraten (500k, 250k etc.) möglich, was u.U.
  die Wahl des Controllertakts vereinfacht

> Muss ich den Ground-Pin des Kabels an das SchaltungsGND verbinden?

Ja

> Brauche ich bei TDX oder RDX einen PullUp oder Pulldown?

Nein, keine externen, die internen Pull-ups im Controller reichen
normalerweise

> Der E8a wird beim R8C/22K

Vorsicht bei den unterschiedlichen Varianten R8C/22 != R8C/2k ;-)
Autor: Michael T. (michelback)
Datum:

Hallo Arc net,
Danke für deine Hinweise, du hast natürlich recht: es muss R8C/22
heißen!
Ich werde auch einen USB-RS232 Adapter in Form eines Kabels benutzen.
Mit Hterm kann man da scheinbar gut mit "spielen" und verschiedene
Baudraten einstellen.
Ich verwende ein externes 10MHZ Quarz für den µC. Aber ich glaube ich
kann die Baudrate im µC einstellen, zumindest in einem begrenzten
Bereich.

Eine Frage ist noch offen: Brauche ich Pullups oder Pulldowns an TXD
oder RXD?

Grüße & Danke,
Michael
Autor: Gast (Gast)
Datum:

http://www.renesasrulz.com/message/7365#7365

Dann ist diese Frage auch geklärt?
Autor: Stefan B. (stefan) Benutzerseite
Datum:

Michael T. schrieb:

> Eine Frage ist noch offen: Brauche ich Pullups oder Pulldowns an TXD
> oder RXD?

Nein. Du brauchst aber einen Pegelwandler, wenn dein USB-RS232
Adapter RS232 Pegel hat.
Autor: Michael T. (michelback)
Datum:

ah ok, dann ist es in ordnung. Ich habe extra ein Kabel rausgesucht, in
dem schon alles integriert ist. Pegelwandler ist auch dabei.
Vielen Dank, dann kome ich erstmal weiter. Ab jetzt gehts wahrscheinlich
mit Softwarethreads meinerseits weiter ;)
Grüße,
Michael
Autor: Stefan B. (stefan) Benutzerseite
Datum:

Welches Kabel hast du genau? Man kann "Pegelwandler ist drin" auch
lesen als "es ist ein Pegelwandler von USB nach RS232 drin". Das würde
dir nicht weiterhelfen, weil du auf R8C Seite auf TTL kommen musst. Die
Werte für die TTL High/Low Pegel hängen von Vcc (5V, 3,3V, ???) deines
µCs ab.
Autor: Michael T. (michelback)
Datum:

Oh, ok also ich werde wohl folgendes Kabel bestellen:

http://de.farnell.com/ftdi/ttl-232r-3v3/kabel-usb-...

Meine Versorgungsspannung am µC ist 3.3V. Ich hoffe das passt?
Vielen Dank für die nochmalige Nachfrage!
Grüße,
Michael
Autor: Stefan B. (stefan) Benutzerseite
Datum:

Sieht gut aus. Mir gefällt besonders die Vielfalt unterstützter
Betriebssysteme.

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




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 erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net