Problem Programmierschaltung R8C

OP #800925
Lesenswert?

Hallo Leute,

hab mal wieder eine Frage.

Hab mir die angehängte Schaltung gebastelt um einen R8C/13 zu 
programmieren.
Allerdings ohne Erfolg, der Programmiervorgang wird abgebrochen, gleich 
nachdem der Programmer Spannung anlegt.
Da weder Kurzschlüsse noch sonst irgendwelche Schlüsse bestehen, alle 
Verbingungen richtig bestehen und ich auch schon mehrere R8C ausprobiert 
habe, gehe ich davon aus, das der Quartz nicht anschwingt.
Ich kann es leider auch nicht wirklich raus messen,da ich nur ein 
billieges USB Oszi habe, mit einer minimal Auflösung von 100mV/div.
Dieses hat allerdings eine Spektrum Analyzer Funktion.
In der kann man keinen Peak bei 20 MHz sehen.
Bei einer funktionierenden Schaltung allerdings schon!
Ich habe schon mehrere Kondensatorwerte durchprobiert.
Hier nun meine Fragen.....
Wie kann ich den Quarz dazu anregen zu schwingen?
Wie kann ich die Kondensatoren berechnen, die nötig sind?
Da im Datenblatt von dem Quartz Kondensatorwerte zwischen 7 und 33pf 
angegeben sind und ich diese eingahlten habe.
Habe schon sämtlich Werte zwischen 10 und 47 pf probiert und auch schon 
mehrere Quartze.
Oder sieht vielleicht jemand einen anderen Fehler?
Habe die Schaltung nach der Renesas Application Note aufgebaut.
Bin für alle Anregungen dankbar.....


Vielen Dank
Angehängte Dateien:
OP #800983
Lesenswert?

Ich Flashe mit dem Flash Development Tool von Renesas in Verbindung mit 
dem E8 Emulator.

Die Leitunge habe ich noch nicht untersucht, dazu bin ich nicht mehr 
gekommen.
Allerdings ist meine Schaltung so aufgebaut, wie sie in der Application 
Note zum E8 Emulator angegeben ist.
Auf einem anderen Board funktioniert diese Einwandfrei.
Auf die Pegel hab ich ja eigentlich aucch keinen Einfluß.
Die Pull-Up und -Down Widerstände sind auch so in der App-Note 
angegeben.
Persönliche Seite #800994
Lesenswert?

Ist es nicht so, dass der R8C erst auf 20 MHz extern schaltet, wenn das 
Userprogramm es ihm sagt (#)? Dann wäre es klar, dass dein Quarz noch 
nicht schwingt. Wenn dein anderes Board schon ein Programm intus hat, 
welches auf externe Taktquelle steht, kann der Quarz dort schwingen.

# 
http://www.mikrocontroller.net/articles/R8C_Codebeispiele#Externen_Haupttakt_einschalten

Die Schaltung sieht auf dem Papier OK aus, allerdings habe ich keine 
Ahnung vom E8 Teil. Und ich hätte noch 2 Taster eingebaut: /RESET zu GND 
und Mode zur GND. Dann kann man auf ohne E8 über den R8C internen 
Bootloader und die serielle Schnittstelle flashen.
OP #801027
Lesenswert?

Da bin ich im Moment überfragt.
Mir wurde gesagt, das die Aussenbeschaltung zu Flashen benötigt wird.
Daher dachte ich, wenn der Quartz benötigt wird, müsse er auch 
schwingen.
Aber wissen tu ich es nicht und im Datenblatt kann ich auch gerade 
nichts finden!

Wenn ich über den internen Bootloader flashen will, benötige ich nicht 
nur die 2 Taster sonder auch noch einen Pegelwandler.

Das wollte ich eigentlich nicht, weil die Schaltung nur einmal 
progammiert werden soll und dann laufen soll.
Und da ich den E8 schon habe, wollt ich es gern über diesen machen!
Damit wird die Schaltung einfacher, benötigt weniger Bauteile und der 
Programmiervorgang läuft auch automatisch, ohne irgendwelche Taster zu 
bedienen.
Und wie gesagt, bei einem anderen Board funktioniert das ganze auch!

Werde die Schaltung morgen nochmals genau untersuchen.

Vielen Dank für die schnellen Antworten.
Gast #801136
Lesenswert?

Der Bootloader im R8C benötigt den Quarz, also sollte der Quarz auch 
schwingen, wenn der Bootloader gestartet ist.

> Auf einem anderen Board funktioniert diese Einwandfrei.

Dann muss es ja einen unterschied zwischen den Boards geben. Kalte 
Lötstellen oder so, suche den Unterschied.
#804274
Lesenswert?

Hi Thomas,

lass versuchshalber mal den C am Reset weg (verschleift die Kanten vom 
E8).
Der externe Oszillator wird beim E8 nicht benötigt.

Um zu testen, ob der Controller / die Schaltung läuft, leg den Modepin 
fest auf Masse und schalt ein. Der externe Oszillator müsste jetzt 
schwingen.

Liegt der Modepin beim Einschalten / nach einem Reset auf low, wird der 
Bootloader aktiv.

Liegt er nach 200 ms immer noch auf low, schaltet der Bootloader den 
externen Oszillator ein und man kann den Controller seriell asynchron 
über Rx/Tx Programmieren (ext. Oszillator wird gebraucht).

Ist der Modepin nach 200ms wieder high, läuft der Controller weiter auf 
dem internen Oszillator. Programmierung erfolgt synchron seriell über 
Rx/Tx und Modepin (z.B. mit E8).

Viel Erfolg.

Mr Hanky

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren