Forum: Mikrocontroller und Digitale Elektronik ATMEGA128A-AU vs 128A U-TH und 3V vs 5V ISP Programmierspannung


von Denis K. (Firma: Privat) (svabomsx)


Lesenswert?

Hallo Miteinander,
habe eine Platine mit einem ATMega128A entworfen und Instabilitäten 
während Programmiervorgängen mit dem "mySmartUSB light" 
Programmierstick. Es benötigt mehrere Anläufe um erfolgreich zu 
programmieren oder fuses zu setzen. Die Signale sind in Spec - also 
keine Spikes, Spannungseinbrüche an VCC die den µC in ein 
ausser-spec-Bereich bringen würden.

Stelle folgende Dinge fest und würde gerne Eure Meinungen dazu einholen, 
während ich auf einen neuen Programmierstick warte (Tremex USB).

a) ISP erkennt den µC bei mir nur, wenn der externe Clock Oscillator 
(ASV-7.3728MHZ-E-T) angeschlossen ist. Der ISP Header ist mit allen 
Leitungen an den entsprechenden Pins vom µC angeschlossen. Der µC ist 
factory default, also internal oscillator 1 MHz.
F: Wie würde die Programmierung funktionieren, wenn im Design überhaupt 
kein Oscillator oder R/C vorgesehen wäre und somit ohnehin nur mit dem 
internen Clock des µC gearbeitet werden soll?

b) ISP-Programmer erkennt den µC bei mir nur, wenn der Programmer von 
sich aus 5V (!) bereitstellt. Hier überlagert dieser während der 
Programmierung die Versorgungsspannung vom Board.
F: nutzt jemand von Euch den ATMega ausschliesslich mit 3.3V und 
programmiert diesen auch mit dieser Spannung und/oder verzichtet auf die 
Programmerspannung?

c) (nicht 100% gesichert):
F: Ist im Werkszustand des µC immer BOD auf 4V gesetzt und enabled? Erst 
nach setzen auf 2.7V beginnt der µC nach einer Programmierung (reset 
wieder high) mit dem Programm im Flash.

d) verunsicherte Frage: Wenn ich nun den bereits angeschlossen externen 
Oszillator (der liefert 7.3MHz als Rechteck) nun vom µC nutzen lassen 
möchte, nutze ich tatsächlich die Fuses 0000 und 4ms oder nutze ich ein 
"Fast Crystal Oszillator" ? Hier besteht Verunsicherung, da bei einem 
Umschalten ich den "Kontakt mit ISP zum µC" verloren hatte und einen 
"frischen" ATMega128A einsetzen mußte. (zum Wiederholten Male an diesem 
Board ... 3x)

Viele Fragen - aber es heisst ja "Wenn man vom Rathaus kommt, ist man 
schlauer."

Danke vorab und Grüße

von Falk B. (falk)


Lesenswert?

Denis K. schrieb:
> Hallo Miteinander,
> habe eine Platine mit einem ATMega128A entworfen und Instabilitäten

Zeig uns deinen Schaltplan.

> während Programmiervorgängen mit dem "mySmartUSB light"
> Programmierstick. Es benötigt mehrere Anläufe um erfolgreich zu
> programmieren oder fuses zu setzen. Die Signale sind in Spec - also
> keine Spikes, Spannungseinbrüche an VCC die den µC in ein
> ausser-spec-Bereich bringen würden.
>
> Stelle folgende Dinge fest und würde gerne Eure Meinungen dazu einholen,
> während ich auf einen neuen Programmierstick warte (Tremex USB).
>
> a) ISP erkennt den µC bei mir nur, wenn der externe Clock Oscillator
> (ASV-7.3728MHZ-E-T) angeschlossen ist. Der ISP Header ist mit allen
> Leitungen an den entsprechenden Pins vom µC angeschlossen. Der µC ist
> factory default, also internal oscillator 1 MHz.

Dann muss der Programmiertakt vom mySmartUSB light auf kleiner 250kHz 
eingestellt werden.

> F: Wie würde die Programmierung funktionieren, wenn im Design überhaupt
> kein Oscillator oder R/C vorgesehen wäre und somit ohnehin nur mit dem
> internen Clock des µC gearbeitet werden soll?

Wenn man die AVR Fuses falsch einstellt, gar nicht. der Controller 
braucht eine Taktquelle.

> b) ISP-Programmer erkennt den µC bei mir nur, wenn der Programmer von
> sich aus 5V (!) bereitstellt. Hier überlagert dieser während der
> Programmierung die Versorgungsspannung vom Board.

Schlecht.

> F: nutzt jemand von Euch den ATMega ausschliesslich mit 3.3V und
> programmiert diesen auch mit dieser Spannung und/oder verzichtet auf die
> Programmerspannung?

Kann es sein, daß VCC nicht an deinem Programmieradapter angeschlossen 
ist? Die wird aber gebraucht. Sowohl für die Pegelwandler als auch 
für die Messung der Spannung.

> c) (nicht 100% gesichert):
> F: Ist im Werkszustand des µC immer BOD auf 4V gesetzt und enabled?

Keine Ahnung.

> Umschalten ich den "Kontakt mit ISP zum µC" verloren hatte und einen
> "frischen" ATMega128A einsetzen mußte. (zum Wiederholten Male an diesem
> Board ... 3x)

Du machst einen Fehler mit den Fuses. Das ist kritisch.

von Denis K. (Firma: Privat) (svabomsx)


Angehängte Dateien:

Lesenswert?

Schaltung als PDF.

von Falk B. (falk)


Lesenswert?

Denis K. schrieb:
> Schaltung als PDF.

Das mit deinem Reset-IC funktioniert vermutlich nicht. Denn der macht 
einen langen Reset-Puls von 140ms. Das gibt vermutlich Probleme mit dem 
ISP. Brauchen tust du den sowieso nicht, der AVR kann das allein mittels 
internem Brown Out Detektor. Test mal ohne den Reset-IC mit direkter 
Reset-Verbindung.

Ich glaube nicht, daß der Brown Out Detektor werksmäßig aktiv ist, schon 
gar nicht mit 4V, denn dann könnte man den AVR nie auf 3,3V Boards 
nutzen, weil man den gar nicht programmiert bekommt.

von Oliver S. (oliverso)


Lesenswert?

Abblockkondensatoren ?

Oliver

von Denis K. (Firma: Privat) (svabomsx)


Angehängte Dateien:

Lesenswert?

@FalkB :

Frage b)
1
Das mit deinem Reset-IC funktioniert vermutlich nicht. Denn der macht 
2
einen langen Reset-Puls von 140ms. Das gibt vermutlich Probleme mit dem 
3
ISP.
... das war der entscheidende Hinweis. Vielen Dank! Ich hätte nicht 
gedacht dass die RESET Leitung auch eine Art "strobe" ist. Verstehe 
nicht warum ich das nie so nachgemessen hatte. Im Anhang dazu zwei 
Bilder. Das erste der ATMega128A und zum Vergleich ein ATMega8 . Jetzt 
zumindest erhält der Prommer stabil (also bei jedem Vorgang was auch 
immer)  eine Antwort vom µC.

Frage a)
Mit Deinem Hinweis ist auch diese Frage, mit "nein" beantwortet. Ich 
trennte den CLK vom externen Oszillator und der Prommer konnte den µC 
erkennen, da hier der interne Oszillator aktiv ist.

Frage c)
Prüfte nochmal den unveränderten Zustand des BOD Fuse 
(Werkseinstellung). Ja - es ist definitiv 2.7V - entgegen meinem oben 
geschilderten Eindruck. Aber nicht enabled.

Frage d)
0000 für external Clock Oszillator oder andere ...
Da nun das Board einen stabilen Eindruck macht, wagte ich auf 0000 zu 
stellen -  mit 4ms und 6CLK und es läuft nun mit 7.36 MHz.

@oliverso
Danke auch Dir für Deinen Hinweis. In diesem konkreten Fall war dies 
nicht die Ursache - aber ist immer zu berücksichtigen.

von C-hater (c-hater)


Lesenswert?

Denis K. schrieb:

> Ich hätte nicht
> gedacht dass die RESET Leitung auch eine Art "strobe" ist.

Ist es auch nicht. Das Reset-Signal der AVR8 ist sowas von "level", mehr 
geht kaum noch.

Das die RESET-Letung hier wie ein Strobe-Signal wirkt, hast du dier 
Arduidiotisierung zu verdanken. Kann man mitmachen, muss man aber 
nicht...

von Jobst M. (jobstens-de)


Lesenswert?

Denis K. schrieb:
> ATMEGA128A-AU vs 128A U-TH und 3V vs 5V ISP Programmierspannung

Der 128A (U-TH) ist ein 128A AU, wenn er sich im TQFP befindet.
Sollten sich identisch verhalten.

Das mit dem U-TH ist nur Bestandteil der neuen Beschriftungsweise und 
bezeichnet das Herstellungsland. Siehe hier: 
Beitrag "Re: ATMEGA 328PU-TH Fälschung"


Gruß
Jobst

von Denis K. (Firma: Privat) (svabomsx)


Lesenswert?

> Das mit dem U-TH ist nur Bestandteil der neuen Beschriftungsweise und
> bezeichnet das Herstellungsland. Siehe hier:
> Beitrag "Re: ATMEGA 328PU-TH Fälschung"

Jetzt versteh ich das  - vielen Dank @Jobstens-de

Bin immer noch nicht drüber hinweg, daß auf der Reset Leitung gestrobed 
wird und konnte gestern Abend nicht wirklich was darüber finden, bis auf 
einen "Debug Modus". Verstehe jedoch nicht, warum dieser während dem 
Auslesen des Chips Aktiv wird - wenn es dieser Grund ist.

Bis dahin bin ich aber froh, dass die Kommunikation nun klappt und auch, 
dass ich knapp vier Euro spare, wenn ich zukünftig den VoltageMonitor 
nicht nutze.

von Steve van de Grens (roehrmond)


Lesenswert?

C-hater schrieb:
> Das die RESET-Letung hier wie ein Strobe-Signal wirkt, hast du dier
> Arduidiotisierung zu verdanken. Kann man mitmachen, muss man aber
> nicht...

Was hat sein Board bitteschön mit Arduino zu tun?

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
Noch kein Account? Hier anmelden.