Forum: Mikrocontroller und Digitale Elektronik Atmega 328P mit Elnec Programmer programmieren


von Holger M. (derholger)


Angehängte Dateien:

Lesenswert?

Hallo Leute,
ich habe einem neuen Atmega 328p (im QFP32 Gehäuse) ein Programm mittels 
Elnec Programmer (T51prog2) eingespielt. Es wurde ein entsprechender 
Programmieradapter dafür benutzt. Das Programm ist mit der Arduino IDE 
entwickelt worden und läuft auch auf dem Nano (mit dem gleichen µc) 
stabil und einwandfrei. Ich habe es als Hex- Datei exportiert und 
problemlos brennen können. Mit eben diesem Adapter habe ich in einem 
Steckbord einen entsprechenden Testaufbau gemacht. Der Atmega tut, was 
er soll, aber um das 16fache langsamer (Quarz 16MHz und seine Block- 
Kondis sind angeschlossen). Inzwischen habe ich erfahren, dass diese 
Atmegas ab Werk auf internen Oszi und Teilung :8 eingestellt sind, so 
dass das mit 1MHz wohl in etwa hinkommt. Ich muss also beim Brennen mit 
dem Elnec auch entsprechende Lockbits bzw. Fuse- Bits setzen. Nur 
welche? Bin bisher trotz etlicher Versuche nicht weiter gekommen. 
Vielleicht kennt hier jemand dieses Problem und weiß, was zu tun ist.
Ich habe mal einen Screen Shoot von den Einstellmöglichkeiten in der 
Brennersoftware des Elnec beigefügt.

Hintergrund ist der, dass ich eine eigene Schaltung ohne Arduino Bord 
machen möchte. Mit einem 328 im Dil Gehäuse wäre dies kein Problem, 
könnte man ganz einfach im Uno brennen, aber im TQFP Gehäuse des Nano 
ein "bisschen umständlich"

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Holger M. schrieb:
> Ich habe mal einen Screen Shoot von den Einstellmöglichkeiten in der
> Brennersoftware des Elnec beigefügt.

Du hast schon die richtige Ecke da unten aufgeklappt, du musst aber noch 
weiter runterscrollen. Full Swing Crystal, 258CK +65ms Startup ist 
normalerweise der richtige Modus für den externen Quarz.
CKOUT braucht man im Normalfall übrigens nicht.

Holger M. schrieb:
> und seine Block-
> Kondis

Das sind keine Blockkondis, sondern die kapazitive Last, damit das Dings 
richtig anspringt.

: Bearbeitet durch User
von Holger M. (derholger)


Lesenswert?

Matthias S. schrieb:
> Du hast schon die richtige Ecke da unten aufgeklappt, du musst aber noch
> weiter runterscrollen. Full Swing Crystal, 258CK +65ms Startup ist
> normalerweise der richtige Modus für den externen Quarz.
> CKOUT braucht man im Normalfall übrigens nicht.

Bingo! Jetzt läuft er mit 16MHz. Konnte ich mit Oszi am Pin PB0 (CKOUT) 
sehen.
Aber: jetzt läuft das Programm nicht mehr. Das werde ich heute aber 
nicht weiter verfolgen, morgen ist auch noch ein Tag!
Danke Matthias für deinen TIPP. Das war der Punkt!
Ich werde berichten...

von Herbert (Gast)


Lesenswert?

Holger M. schrieb:
> Das Programm ist mit der Arduino IDE
> entwickelt worden und läuft auch auf dem Nano (mit dem gleichen µc)
> stabil und einwandfrei. Ich habe es als Hex- Datei exportiert und
> problemlos brennen können. Mit eben diesem Adapter habe ich in einem
> Steckbord einen entsprechenden Testaufbau gemacht. Der Atmega tut, was
> er soll, aber um das 16fache langsamer (Quarz 16MHz und seine Block-
> Kondis sind angeschlossen). Inzwischen habe ich erfahren, dass diese
> Atmegas ab Werk auf internen Oszi und Teilung :8 eingestellt sind, so
> dass das mit 1MHz wohl in etwa hinkommt. Ich muss also beim Brennen mit
> dem Elnec auch entsprechende Lockbits bzw. Fuse- Bits setzen. Nur
> welche? Bin bisher trotz etlicher Versuche nicht weiter gekommen.

Dann lies doch die Fuses des funktionierenden Nanos aus und programmiere 
deinen uC entsprechend.

von EAF (Gast)


Lesenswert?

Herbert schrieb:
> Dann lies doch die Fuses des funktionierenden Nanos aus und programmiere
> deinen uC entsprechend.

Die Arduino IDE kennt den Nano!
Einfach "Bootloader brennen" drücken.
Das setzt auch die Fuses.

von BoomBoomMagic (Gast)


Lesenswert?

Holger M. schrieb:
> Bingo! Jetzt läuft er mit 16MHz. Konnte ich mit Oszi am Pin PB0 (CKOUT)
> sehen.
> Aber: jetzt läuft das Programm nicht mehr. Das werde ich heute aber
> nicht weiter verfolgen, morgen ist auch noch ein Tag!
> Danke Matthias für deinen TIPP. Das war der Punkt!
> Ich werde berichten...

Wenn's vorher lief mit 1Mhz intern, aber zu langsam (weil auf 16Mhz 
extern programmiert ) und jetzt nach dem Einstellen der FuseBit es nicht 
mehr läuft , obwohl ein 16Mhz Quarz dran hängt .... sind die FuseBits 
definitiv falsch und noch immer nicht passend :-)

... weiter üben ... :-)

von Holger M. (derholger)



Lesenswert?

Wie gestern Abend bereits berichtet, arbeitet jetzt zwar der Oszillator 
mit 16MHz, aber das Programm wird nicht mehr ausgeführt. Auf dem Screen 
Shot ist die jetzige Einstellung der Programmer Software zu sehen, mit 
welcher der Atmega programmiert wurde.
Oszi- Bild zeigt den Pin PB0, welcher den Takt mit ausgibt (CKOUT 
gesetzt)

Ooops, da ist einmal zuviel Screeshot, sorry

: Bearbeitet durch User
von EAF (Gast)


Lesenswert?

Holger M. schrieb:
> Ooops
Ja, oooops.
Meine Unterstützung endet HIER, obwohl sie woanders begonnen hat.
Denn: Crossposter lieben mich nicht.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Was für eine grauenvolle Eindeutschung eines Programmes. Da musste ja 
dreimal hingucken, ehe du kapiert, was gemeint ist.

Du kannst jetzt den Haken bei Fuse und Lock wegnehmen, sie sind ja nun 
gebrannt. Konzentrier dich mal lieber auf 'Einsetzungstest' (vermute, 
die meinen, ob ein Chip vorhanden ist) und Test auf die richtige ID. 
Dann Leertest und Verifizierung.

Als Programm tut es erstmal auch was einfaches, um deinen exotischen 
Porgrammer zu prüfen.

von BoomBoomMagic (Gast)


Angehängte Dateien:

Lesenswert?

Wie vermutet , an Hand der Bilder falsche Fusebit !

Du hast nen Quarzoszillator anstatt Quarzresonator mit Kondensator 
eingestellt.

Dann besorg dir man jetzt nen Oszillatorquarz :-)

von Holger M. (derholger)


Angehängte Dateien:

Lesenswert?

Nun habe ich mich gestern ganztägig dieser Problematik gewidmet. 
Letztendlich habe ich einen Uno (der mit dem 328 im DIL28 Gehäuse auf 
IC- Fassung) mit meinem Programm gebrannt, diesen dann mit dem Elnec 
ausgelesen und so die Fuse- Einstellungen sehen können, wie sie die 
Arduino- IDE mit einstellt. Mit dieser ausgelesenen Datei konnte ich nun 
auch den Atmega 328P im TQFP- Gehäuse (im Adapter >>auf DIL28) brennen. 
Also hier auch die gleichen Fuse- Bits gesetzt (habe ich anschließend 
kontrolliert!). Im Testaufbau des Steckbords funktionierte der 328 aus 
dem Uno auf Anhieb, Quarzfrequenz ziemlich genau 16MHz. Bild davon oben.
Anders der 328 im Adapter TQFP32. Läuft nicht und die Frequenz (mittels 
CKOUT auf Pin PB0 ausgegeben) zeigt seltsame Verhaltensweisen. Siehe 
Bild. Ich kann das eigentlich nur deuten, dass hier die Zusammenarbeit 
Quarz- interne Oszillatorschaltung nur fehlerhaft funktioniert. 
Vermutlich stellen die Leitungen des Adapters eine zu hohe kapazitive 
Last dar, der Oszillator schwingt nicht richtig. Habe auch schon die 22p 
Kondis gegen 10P getauscht>> das gleiche Ergebnis. Fazit für mich: 
Programmieren geht, die richtigen Fuse Bits habe ich auch gefunden, 
Schaltung mit diesem Adapter funktioniert auf diese Weise leider nicht. 
Ich werde demnächst eine Probeplatine fertigen und den TQFP direkt 
aufsetzen.
Achso, die Fusebits: siehe letztes Bild, Extended Byte 0xFD, High Fuse 
Byte 0xDE, Low Fuse Byte 0xBF (ohne CKOUT)

Liebe Trolls (wer auch immer sich angesprochen fühlt), bitte spart euch 
eure Kommentare und unqualifizierten Ratschläge.
Ich bin zwar relativ neu mit den AVR's habe bislang aber weit mehr als 
15 Jahre 51er bearbeitet, mit Assembler. Deshalb bin ich über "was 
einfaches" eigentlich auch schon hinaus.
Und Elnec ist eine etablierte Firma, welche exzellente Programmiergeräte 
herstellt, einfach mal Google bemühen. Da spielt es keine Rolle, wo sie 
ihren Firmensitz hat.
Gruß Holger

PS: Den Elnec habe ich auch schon etwa 10 Jahre! Nie ein Problem damit 
gehabt!

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Diese Steckbretter haben recht hohe Kapazitäten zwischen den 
Kontaktleisten. Einige Leute haben hier berichtet, dass ihr Quarz darauf 
nur ganz ohne zusätzliche Kondensatoren stabil lief.

In deinem Bild ist der linke Kondensator nicht mit dem richtigen GND 
verbunden. Beide Kondensatoren gehören zusammen an den selben GND Pin 
des Mikrocontrollers, und zwar über den kürzest-möglichen Weg.

von Holger M. (derholger)


Lesenswert?

Naja, der im DIL Gehäuse lief aber ohne Probs. Daher würde ich das 
Steckbrett erst einmal ausschließen

von Stefan F. (Gast)


Lesenswert?

Holger M. schrieb:
> Naja, der im DIL Gehäuse lief aber ohne Probs.

Dann hattest du halt Glück und jetzt nicht mehr. Wenn man außerhalb der 
Spezifikation hantiert muss man damit Rechnen.

Wie gesagt, das Steckbrett hat hier schon einigen Leuten genau an dieser 
Stelle Schwierigkeiten bereitet. Da wird dein Steckbrett keine goldene 
Ausnahme sein.

von Holger M. (derholger)


Lesenswert?

Stefan ⛄ F. schrieb:
> In deinem Bild ist der linke Kondensator nicht mit dem richtigen GND
> verbunden. Beide Kondensatoren gehören zusammen an den selben GND Pin
> des Mikrocontrollers, und zwar über den kürzest-möglichen Weg.

Die sind über die untere Leiste mit GND verbunden. Meinst du, dass sie 
im gleichen Loch gesteckt werden müssen? Mit 51ern habe ich bis 24MHz 
noch nie solche Probleme gehabt. Da ist der Aufbau identisch.
Wie sind diese periodischen Störungen (Oszillografenbild) zu erklären?

von OMG (Gast)


Lesenswert?

Holger M. schrieb:
> Naja, der im DIL Gehäuse lief aber ohne Probs. Daher würde ich das
> Steckbrett erst einmal ausschließen

Wenn ich deinen Steckbrett-Aufbau sehe schliesse ich erst mal
gar überhaupt nichts aus. Da braucht man eigentlich nicht
weiter diskutieren.

von Stefan F. (Gast)


Angehängte Dateien:

Lesenswert?

Kurze Leitungen sehen so aus

von OMG (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Kurze Leitungen sehen so aus

Auch in diesem Aufbau ist das nicht optimal gestaltet. Die Masse
der Lastkapazitäten gehört möglichst direkt an den Massepin des
Controllers angeschlossen und nicht an die allgemeine Masseschiene.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Holger M. schrieb:
> im Adapter TQFP32. Läuft nicht

Adapter hin oder her - sowohl der Quarz, als auch Bürde- und 
Abblockkapazitäten gehören dicht an den Chip und nicht über Drahtverhau 
nach ein paar cm Länge halbherzig verkabelt.
Der Sinn von TQFP ist ja nicht nur Geldsparen, sondern auch kürzeste 
Wege. Ausserdem hat das TQFP Gehäuse mehr Anschlüsse für VCC und GND, 
die nicht ignoriert werden dürfen - alle müssen angeschlossen werden.

von Stefan F. (Gast)


Lesenswert?

OMG schrieb:
> Auch in diesem Aufbau ist das nicht optimal gestaltet. Die Masse
> der Lastkapazitäten gehört möglichst direkt an den Massepin des
> Controllers angeschlossen und nicht an die allgemeine Masseschiene.

Ja, das wäre besser. Doch Selbst das wäre nicht optimal, wegen der 
Kapazität der Steckkontakte. Eigentlich müsste man die beiden Pins hoch 
biegen und am Steckbrett vorbei verlöten.

von Holger M. (derholger)


Angehängte Dateien:

Lesenswert?

Sorry, wenn es nicht so exakt gesteckt ist, aber der Adapter nimmt fast 
die gesamte Breite des nutzbaren Steckplatzes ein. OK, werde versuchen, 
das nochmal etwas günstiger zu stecken. Eventuell könnte ich die 
Steckleisten des Adapters verlängern, so dass unten mehr 
Bauteilefreiheit entsteht.

von EAF (Gast)


Lesenswert?

Holger M. schrieb:
> und so die Fuse- Einstellungen sehen können, wie sie die
> Arduino- IDE mit einstellt.

Für die Zukunft:
Die Fuses sind in der betreffenden boards.txt aufzufinden.
Ist vielleicht kürzer, der Weg.

von Holger M. (derholger)


Lesenswert?

EAF schrieb:
> Für die Zukunft:
> Die Fuses sind in der betreffenden boards.txt aufzufinden.
> Ist vielleicht kürzer, der Weg.

Danke, das wusste ich  noch nicht

von Stefan F. (Gast)


Lesenswert?

Holger M. schrieb:
> der Adapter nimmt fast
> die gesamte Breite des nutzbaren Steckplatzes ein.

Da hängen viel zu lange Leitungen an den relevanten Pins

von OMG (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Da hängen viel zu lange Leitungen an den relevanten Pins

Ja, grausam, und aus der Sicht des Elektronikers völlig
grobschlächtig und unangepasst.

Immerhin gibt es ja von Atmel Empfehlungen wie man die
Controller korrekt in der Minimalbeschaltung betreibt.

von Stefan F. (Gast)


Lesenswert?

Holger M. schrieb:
> Sorry, wenn es nicht so exakt gesteckt ist, aber der Adapter nimmt fast
> die gesamte Breite des nutzbaren Steckplatzes ein.

Warum steckst du das ganz Ding nicht eine Reihe weiter (nach rechts 
oben) auf dein Steckbrett? Dann passt es viel besser, weil dann die 5er 
Steckbuchsen mehr Abstand zueinander haben.

von OMG (Gast)


Lesenswert?

Holger M. schrieb:
> Ich bin zwar relativ neu mit den AVR's habe bislang aber weit mehr als
> 15 Jahre 51er bearbeitet, mit Assembler. Deshalb bin ich über "was
> einfaches" eigentlich auch schon hinaus.

Dann hast ja in den 15 Jahren noch nicht viel dazugelernt.

Holger M. schrieb:
> Und Elnec ist eine etablierte Firma, welche exzellente Programmiergeräte
> herstellt, einfach mal Google bemühen. Da spielt es keine Rolle, wo sie
> ihren Firmensitz hat.

Wenn eine Firma in einem ihrer Programme so eine hundsmiserable
Übersetzung der technischen Ausdrücke liefert dann habe ich
grosse Zweifel. Bisher habe ich von dieser "etablierte Firma"
noch nichts gehört.

von Holger M. (derholger)


Lesenswert?

OMG schrieb:
> Wenn eine Firma in einem ihrer Programme so eine hundsmiserable
> Übersetzung der technischen Ausdrücke liefert dann habe ich
> grosse Zweifel. Bisher habe ich von dieser "etablierte Firma"
> noch nichts gehört.

https://www.batronix.com/versand/programmiergeraete/beeprog/beeprog2.html
oder
https://www.dobbertin-elektronik.de/programm/smartprog/smartprog2.htm
oder
https://en.wikipedia.org/wiki/Elnec
Stichwort Horizont. Man kann alles im Übrigen auch in anderen Sprachen 
einstellen (z.B. Englisch). Für mich war das kein Kriterium.

von Holger M. (derholger)


Lesenswert?

Um das ganze jetzt abzuschließen. Ich habe die Tipps soweit möglich 
umgesetzt, die Verbindungen gekürzt, Kondensatoren direkter gesteckt. 
Gleichzeitig habe ich die Anschlüsse des Programmers verlängert, so dass 
er unterhalb einige Bautelefreiheit gewähren kann. Damit hat es nun 
funktioniert. Es zeigt, dass es wirklich in Bezug zum Quarzoszillator 
hier auf diese Maßnahmen ankommt. Eine Platine muss dementsprechend auch 
layoutet werden. Aber das ist ein anderes Thema. Ich möchte mich bei 
allen Tippgebern bedanken!
Was mir sauer aufgestoßen ist: Dies hier ist ein Forum, wo man sich 
gegenseitig hilft und nicht runtermacht! Ich weiß nicht was manchen 
qualifiziert, hier über andere, die er gar nicht kennt, zu urteilen und 
zu beleidigen. Vielleicht regt es den einen oder anderen zum Nachdenken 
an.
Gruß Holger

Beitrag #7187265 wurde von einem Moderator gelöscht.
von Manfred (Gast)


Lesenswert?

Holger M. schrieb:
> Was mir sauer aufgestoßen ist: Dies hier ist ein Forum, wo man sich
> gegenseitig hilft und nicht runtermacht!

Böse Welt, gehe zurück in die Waldorf-Schule.

> Ich möchte mich bei allen Tippgebern bedanken!

Ah ja, Dir wurde also geholfen. Mit welchen Recht pöbelst Du über das 
Forum?

von Keller (Gast)


Lesenswert?

Hey Manfred, cool down!!
Etikette , please!!

von Stefan F. (Gast)


Lesenswert?

Alles Weicheier. Stoßen sich die Tee-Nager nicht mehr ihre Hörner in der 
Schule ab?

von Keller (Gast)


Lesenswert?

Deine Frage ist total fehl
am Platz. Lass das bitte!

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.