Forum: Mikrocontroller und Digitale Elektronik Programmieradapter für Atmel


von Ulph (Gast)


Lesenswert?

Hallo an alle,

ganz kurze, simple Frage (die ich ausführlich und präzise stelle, um 
Nachfragen zu vermeiden ;-)):
Ich habe vor längerer Zeit einen ATMEGA 16-16 DIP mit diesem 
LPT-Programmieradapter mit 74HC244-Bustreiber von Rolf Milde 
programmiert: http://rumil.de/hardware/avrisp.html
Auf der Platine der "Zielschaltung" befand sich eine entsprechende 
Schnittstelle, an die ich den Adapter angeschlossen habe (mit +5V, SCK, 
Reset, MOSI, MISO, GND), das hat auch alles super funktioniert.

Nun die eigentlich Frage: Reicht es schon aus, wenn man den Atmel 
einfach ohne die ganze Zielschaltung an den Adapter hängt, also ohne den 
Quartz und den ganzen Kram?

Hintergrund: Ich möchte einen ATMEGA 8515-16 D mit Programm versehen, 
leider hat die Zielschaltung keinen Programmieranschluss (s.o.), der 
Controller müsste also kurzfristig auf einer Extraplatine Platz nehmen, 
an die ich wiederum den LPT-Programmieradapter hänge. Oder sind dazu 
wieder zusätzliche Bauteile auf der Programmierplatine notwendig?

Ich würde mich freuen, wenn jemand dazu etwas schreiben könnte, oder 
vielleicht einen hilfreichen Link oder Schaltplan in petto hat - danke!

von Sepp (Gast)


Lesenswert?

Der Atmel, der programmiert werden soll benötigt:

-Versorgungsspannung (5V), der Adapter stellt die nicht bereit.

-Takt, solange die "Fuses" im Original-Lieferzustand sind,
 ist das der Interne (1MHz).

Den Atmel mit externem Netzteil 5V versorgen, (alle!) Vcc-Pins,
(auch AVCC) und alle! Gnd -Pis anschließen!
Falls interner Takt nicht verfügbar, extern einspeisen, z.B.
Quarzoszillator.

Dann sollte es funktionieren.

(Ich persönlich vertraue dem ISP-Programmer vom STK500,
die "Bit-Banging-Programmierung" ist nicht so toll.)

von Thomas E. (thomase)


Lesenswert?

Ulph schrieb:
> Nun die eigentlich Frage: Reicht es schon aus, wenn man den Atmel
>
> einfach ohne die ganze Zielschaltung an den Adapter hängt, also ohne den
>
> Quartz und den ganzen Kram?

Jein.
Wenn du per Fuse auf externen Quarz umschalten willst, muß auch an der 
Programmierplatine ein Quarz dran.
Ansonsten geht das schon.
Stützkondensator zwischen Vcc und GND nict vergessen.

mfg.

von JojoS (Gast)


Lesenswert?

kommt drauf an wie die Fuse-Bits bei dem Controller programmiert sind, 
bei den meisten Megas (der 8515 ist älter, ins Datenblatt gucken) kann 
man per Fuse einstellen ob interner Oszi oder externer Takt anliegen 
müssen. Wenn der µC jetzt auf Quarz steht läuft er nicht ohne.

von Michael L. (michaelx)


Lesenswert?

Im Prinzip das, was Thomas schrieb, aber Spannungsversorgung nicht 
vergessen, der Programmieradapter wird nämlich aus der Schaltung mit 
versorgt.

Also mach dir eine kleine Platine (Lochraster reicht auch), mit ein paar 
ISP-Stecker, Sockeln (8/28/40-polig) und einem 7805 + Zubehör drauf, und 
nimm besser statt dem Quarz einen Quarz-Oszillator.

Michael

von Ulph (Gast)


Lesenswert?

Alles klar, das beantwortet meine Frage ja schon ausreichend. Einen 
Bauvorschlag habe ich bereits gefunden, Lochraster reicht für die paar 
Teile völlig aus.

Vielen Dank an die Belegschaft!

von Klaus W. (mfgkw)


Lesenswert?

Sepp schrieb:
> (Ich persönlich vertraue dem ISP-Programmer vom STK500,
> die "Bit-Banging-Programmierung" ist nicht so toll.)

Ich nehme seit Jahren ohne Probleme von der erwähnten
Rolf Milde-Seite den stk200-kompatiblen mit 74HC244 am
Druckerport.
Geht einwandfrei und ist schnell.

Wenn viele Bitbanging-Spielereien Murks sind, müssen es nicht
alle sein.

Nur schade, daß der Druckerport am Aussterben ist :-(

von Ulph (Gast)


Lesenswert?

Kein Thema, ich werde meinen Uralt-PC nie entsorgen, solange das Teil 
noch geht.
Warum überhaupt das STK500? Das ist ja nicht gerade für Kleingeld zu 
haben.

Eine Sache fällt mir noch ein: Ist es egal, welcher Takt der Atmel beim 
flashen bekommt, oder muss das zwangsweise der gleiche sein, wie im 
späteren Betrieb?

von Klaus W. (mfgkw)


Lesenswert?

Nein, er muß nur hoch genug sein für den Clock beim Programmieren
(SCK).
Notfalls müsste man letzteren reduzieren.

von alibaba (Gast)


Lesenswert?

Haha sehr gut. Hatte gestern genau diesen Aufbau mit 8515 und dem 
gleichen Programmer. Zufälle ... Geht wunderbar auf einem Steckboard. 
Irgend einen Quarz dran und gut ist.

Schönen Feiertag noch

von Klaus W. (mfgkw)


Lesenswert?

Klaus Wachtler schrieb:
> Sepp schrieb:
>> (Ich persönlich vertraue dem ISP-Programmer vom STK500,
>> die "Bit-Banging-Programmierung" ist nicht so toll.)
>
> Ich nehme seit Jahren ohne Probleme von der erwähnten
> Rolf Milde-Seite den stk200-kompatiblen mit 74HC244 am
> Druckerport.
> Geht einwandfrei und ist schnell.
>
> Wenn viele Bitbanging-Spielereien Murks sind, müssen es nicht
> alle sein.
>
> Nur schade, daß der Druckerport am Aussterben ist :-(

Auch wenn es langsam OT wird, aber ich bin seit neuestem (fast aus
Versehen) stolzer Besitzer eines AVRISPmkII.

Ein Beispielprogramm für einen mega32 brennt der über USB
in 4.4 bis 4.5 sec unter Linux mit avrdude (Flash löschen,
schreiben, verfizieren).

Der alte selbstgelötete stk200-kompatible am Druckerport
macht dieselbe Arbeit in 2.8 bis 2.9 sec.

Eigentlich müsste ich jetzt mal das stk500 ausgraben...

von Ulph (Gast)


Lesenswert?

Hallo,

nach längerer Abstinenz will ich endlich anfangen und melde mich 
nochmal:

Ich habe eine passende Schaltung gefunden, mit der mittels 
ISP-Schnittstelle der Atmega 8515 geflasht werden kann.
Nun fehlt in der Schaltung aber eine Angabe zum Takt des Quartzes - was 
soll ich da nehmen? K. Wachtler schrieb weiter oben, dass der Takt nur 
so schnell wie SCK beim flashen sein muss. Was nimmt man da 
üblicherweise, oder einfach den schnellsten?

Ich bin mir da unsicher, der Atmega läuft in der Zielschaltung mit einem 
externen Clocksignal eines USB-Controllers (USB N9604) mit 4MHz.

Und wie stelle ich die Fuse-Bits ein? Geflasht werden muss ja auf 
externen Takt, habe aber Bedenken, wenn der Takt beim aufspielen des 
Programmes nicht passt, der Controller danach nicht mehr ansprechbar 
sein könnte.

Gruß

von Helfer (Gast)


Lesenswert?

> Ich bin mir da unsicher, der Atmega läuft in der Zielschaltung mit einem
> externen Clocksignal eines USB-Controllers (USB N9604) mit 4MHz.

Dann muss dein ISP-Targetboard auch ein externes 4 MHz Clocksignal als 
Taktquelle haben. Einen auf externe Clock gefusten AVR kannst du mit 
einem Quarz nicht betreiben. Und einen auf Quarz gefusten AVR kannst du 
mit external Clock nicht betreiben.

von Ulph (Gast)


Lesenswert?

Das wundert mich etwas, aber ich lasse mich eines besseren belehren: ich 
dachte immer, es macht nur einen Unterschied, ob man den Atmega auf 
internen oder externen Takt umstellt.

Ich kenne es so: An den Anschlüssen XTAL1 und XTAL2 hängt ein 
Standardquartz. In dieser Schaltung ist aber XTAL2 frei und am XTAL1 ist 
der CLKOUT vom USBN9604.
Falls es weiterhilft: In der Anleitung sind alle Fusebits auf 1, also 
nicht programmiert, inklusive CKSEL0 bis CKSEL3!

Ich hoffe, das schafft etwas Klarheit für mein Problemchen.....

von Helfer (Gast)


Lesenswert?

Der interne RC Oxzillator ist von den Fuses aus nicht aktiv, d.h. du 
musst eine externe Taktquelle beim ISP Programmieren benutzen.

XTAL2 ist von den Fuses aus aber auch nicht nicht als Antreiber für den 
externen Quarz konfiguriert. D.h. einen externen Quarz kannst zu nicht 
beim ISP-Programmieren verwenden.

Bleibt eine externe Clock fürs ISP-Programmieren, genau so wie du den 
AVR später in der Schaltung laufen lässt.

In Beitrag "Re: Programmieradapter für Atmel" war ich 
vorschnell mit dem umgekehrten, bei dir nicht zutreffendem Fall. Könnte 
man einen AVR, der auf Quarz gefust ist, auch mit externer Clock 
betreiben oder gilt must als Muss "To run the device on an external 
clock, the CKSEL Fuses must be programmed to “0000”."

von Ulph (Gast)


Lesenswert?

Danke für Deine Bemühung!

Aus dem letzten Absatz werde ich aber nicht schlau bzw. klingt eher nach 
einer Frage ;-) Du bist Dir auch nicht sicher, ob man einen Atmega mit 
Quartz flashen kann und dann in der Zielschaltung einfach anstelle 
Quartz ein Clocksignal benutzen kann?

Statt des doofen Quartzes würde ich sonst lieber einfach ein "richtiges" 
Clocksignal nehmen. Also einen Quartzoszillator - zur Sicherheit frage 
ich ganz doof nach: wird es mit diesem 4MHz-Oszillatörchen von Reichelt 
funktionieren?
http://www.reichelt.de/?ACTION=3;GROUP=B42;GROUPID=3174;ARTICLE=13706;SID=11TWE0yH8AAAIAAEkfyEY170e93977c6cce37861d692c72ee554e
(Alternativ die Best.-Nr. OSZI 4,000000 ins Schnellsuche-Feld auf 
Reichelt.de eingeben).

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.