Forum: Mikrocontroller und Digitale Elektronik AVR mit ISP-Adapter außerhalb der Zielschaltung brennen


von Torsten (Gast)


Angehängte Dateien:

Lesenswert?

Hi

Ich habe mich schon in einige Threads eingelesen, nur leider irgendwie
nicht das Richtige gefunden.

Ich habe von Elektronik nicht viel Ahnung. Ich ätze, bestücke und löte
meine Platinen selber (Layout oder Schaltplan ist meist vorhanden).
Ich selber kann keine Schaltung zeichnen.

Nun zum Problem: immer häufiger stoße ich im Netz auf Schaltungen,
bei denen ein AVR gebrannt oder geflasht werden muß.
Das Programmieren will ich vielleicht irgendwann mal lernen.
Nur wie brenne/flashe ich einen AVR AUSSERHALB der Zielschaltung ?
Ich bin dabei mir den ISP-Adapter von
http://rumil.de/hardware/avrisp.html zu bauen (Version mit 6 Pins).

Ich möchte aber den AVR (bis max. 40 Pins) auf der ISP-Platine
in einem Sockel brennen/flashen.

Was benötige ich denn noch dazu ? Wie müßte die Schaltung aussehen ?
Ich habe mal das Layout des ISP-Adapters angehängt.
Jemand sagte mir, dass ich noch einen Quarz benötige ?
Nur ich bin absoluter Laie auf dem Gebiet und weiß nicht wo ich wie
was
anschließen/verbinden muß.
Weiter wurde mir gesagt, dass ich dann eine Spannungsversorgung
benötigen würde.
Das Ergebnis habe ich im nächsten Posting angehängt.

Ich bin einfach am verzweifeln. Ich sitze ewig lange davor das Layout
zu zeichnen
und dann habe ich wieder etwas falsch verstanden, weil ich halt Laie
bin.

Es wäre super nett, wenn Ihr mir etwas unter die (virtuellen) Arme
greifen würdet.

Nette Grüße
Torsten

von Torsten (Gast)


Angehängte Dateien:

Lesenswert?

Und hier die "erweiterte" (vermutlich aber völlig falsche) Variante.

Nette Grüße
Torsten

von Rahul (Gast)


Lesenswert?

Die Pins heissen in der Regel bei allen Controllern gleich
(Datenblatt).
Der ATmega128 hat noch spezielle Pins, die zum ISP-Programmieren statt
der Pins der SPI-Schnittstelle benutzt werden.
Im AVR-Tutorial (links oben in diesem Fenster) ist auch noch eine
ISP-Schaltung beschrieben. Dann solltest du dir angucken, welche Pins
noch notwendig sind. (Hab mir deine Layouts nicht ganz genau
angeguckt).

von Karl heinz B. (kbucheg)


Lesenswert?

Na ja. Im Grunde brauchst du die Minimal-Schaltung, damit
Dein µC funktioniert. Die findest du zb im AVR-Tutorial.
(Stromversorgung + Quarz + Abblockkondensatoren). Die
kombinierst du dann noch mit der Flasher-Schaltung und
das wars dann auch.

Bevor du dir die Mühe mit einem Layout machst, würde ich
dir empfehlen, das ganze mal auf einem Steckbrett auszuprobieren,
bzw. in Schritten in Betrieb zu nehmen (mit der Stromversorung
anfangen, die muss stehen sonst geht gar nichts). Falls
du kein Steckbrett hast, würde sich auch eine Streifenraster-
platine anbieten, soo kompliziert ist die Schaltung auch
wieder nicht.

von Karl heinz B. (kbucheg)


Lesenswert?

Ich seh grad, im Tutorial ist der Anschluss eines Quarz-
Oszillators beschrieben. Das ist nicht dasselbe wie ein
einzelner Quarz. Einen einzelnen Quarz schliesst du
an, indem die beiden Quarz-Anschlusspins mit XTAL1 bzw.
XTAL2 verbunden werden, und dann noch jeweils ein 22 pF
Kondesator von jedem Quarz-Pin nach Masse.

Noch'n Vorschlag: Im Web gibt es jede Menge sog.
'Experimentierboards'. Studier mal deren Schaltung und
schmeiss alles raus, was du nicht brauchst: Meist haben die
irgendwelche LED's an den Port-Pins (damit man was sieht), bzw.
irgendwelche Schalter (damit man auch Eingaben machen kann).
Nur zum ISP-Brennen brauchst du den Schnickschnack aber nicht.
(Obwohl: zum rumspielen sind die gar nicht schlecht).

von Hannes L. (hannes)


Angehängte Dateien:

Lesenswert?

Mein Tip: Bau den ISP so, wie er vorgeschlagen wurde und gib ihm nur
eine zusätzliche Stromversorgung (+5V). Dann bau dir für jede der
möglichen Anschlussbelegungen eine kleine Programmierplatine bzw. eine
"Brennzange", die du von oben auf den AVR (DIL) aufstecken kannst.
Damit bist du sehr flexibel und kannst das System jederzeit erweitern.

Im Anhang ist ein "Brennadapter" für den 4433, bei dem nur
Stromversorgung, ISP und Quarz beschaltet ist. Die Stromversorgung
kommt über die ISP-Leitungen vom Programmer.

Eine "Brennzange" für Tiny12 / Tiny15 findest du hier:
http://www.hanneslux.de/avr/isp/tn15ad1.jpg
Auf dem Foto steckt gerade ein Tiny15 drin, der ohne Zielschaltung
programmiert werden sollte.

...

von Karl heinz B. (kbucheg)


Lesenswert?

@Hannes

Da wollte ich dich sowieso schon mal fragen.
Deine Brennzangen: Sind das ausrangierte IC? Sieht
zumindest so aus.
(Ich finde die Idee mit der Brennzange einfach genial).

von Hannes L. (hannes)


Angehängte Dateien:

Lesenswert?

> Sind das ausrangierte IC? Sieht
> zumindest so aus.

Da steckt auf dem Foto (Link) ein IC (Tiny15) drin.
Die DIL8-Brennzange besteht aus zwei Stücken doppelseitigem
Basismaterial mit geflexten Isolierlinien, die T-förmig zusammengelötet
sind. Die Kontaktierung zum AVR (Pin 1, 4, 4, 6, 7, 8) erfolgt über
federnde Stifte von Pfostensteckern, die etwas verbogen wurden. Im
"Boden" ist ein U-förmig abgewinkelter Weißblechstreifen eingelötet,
der als Führung dient und dafür sorgt, dass die Kontakte auch sicher
getroffen werden. Dann gibt es noch den 6-poligen Pfostenstecker (2x3)
nach STK500-ISP-Norm, an den mein Eigenbau-Brenner oder das STK500
angeschlossen wird. Ehe ich nämlich beim STK500 die zusätzlichen
Strippen stecke, um ISP bei DIL8 anzuwenden, bin ich mit der
Kontaktierung von oben mittels Brennzange längst fertig.

Ich hoffe, auf dem Foto im Anhang kann man mehr erkennen. Dort sieht
man auch die Zange für den 2313. Das war eine gewöhnliche 16-polige
IC-Testklemme, die um den GND-Kontakt verlängert wurde.

Für Mega16 habe ich ein einfaches Adapter gebaut, das die ISP-Pins in
eine Reihe bringt. Die Pinbelegung ergibt sich aus dem Mega16-Pinout.
Die Mega16-Platinen bekommen einfach eine 6-polige Buchsenleiste neben
die IC-Fassung, das kostet also keine zusätzlichen Leiterzüge. Ein Bild
gibt es auf http://www.hanneslux.de/avr/isp/isp.html.

...

von Torsten (Gast)


Angehängte Dateien:

Lesenswert?

Vielen Dank für Eure Antworten !

"soo kompliziert ist die Schaltung auch wieder nicht."
Für Jemanden der sich damit auskennt sicher nicht.
Ich bin aber Laie und mir muß man wirklich sagen "... das gehört mit
dem Wert
an den und an den Pin ...."

Die ISP Schaltung ist ja so o.K. wenn ich das richtig verstanden habe.

Nur  - wo muß ich nun die Spannungsversorugung und den Quarz
unterbringen
und wo wird er womit verbunden ? Es sollte also ein 4MHz Quarz sein !?
Mit den einzelnen Platinen für die Sockel ist eine gute Idee.
Es wird bei mir eine "fliegende" Verkabelung.
Mir geht es darum, dass ich alles auf einer Platine habe und nur noch
den Prozessor benötige, den ich dann per "fliegender" Verkabelung
anschließen muß
und ihn dann brennen/flashen kann.

Wie ich schon schrieb - bin halt Laie !

Wäre ganz nett, wenn mir jemand weiterhelfen könnte.
Vielleicht könnte ja jemand mal die angehängte Schaltung runterladen,
entsprechend mit einem Grafikprogramm bearbeiten und sie wieder hier
reinstellen.

Nette Grüße
Torsten

von Karl heinz B. (kbucheg)


Lesenswert?

Ich denke immer noch, du fängst am falschen Ende an:
mit der Platine.
Zeichne dir doch erst mal einen Schaltplan.

> Nur  - wo muß ich nun die Spannungsversorugung und den Quarz
> unterbringen
> und wo wird er womit verbunden ?

Das ersieht man aus den Datenblättern (gibt es bei Atmel),
bzw. indem man die Schaltpläne von anderen studiert.
Übrigens wird dir nicht viel anderes übrigbleiben als dich
auf einen µC zu einigen. Unterschiedliche µC haben die
Anschlüsse an unterschiedlichen Pins. Von daher halte ich
die Idee so eines Flashers immer noch nicht für eine gute
Idee. Wenn Du der Zielschaltung einen ISP Anschluss spendierst
umgehst du dieses Problem auf einfache Art und Weise. Ein ISP
Anschluss ist im einfachsten Fall einfach nur eine 6-polige
Steckerleiste die auf 3 Anschluesse am µC bzw Vcc und GND
führen. Das nimmt auf der Zielschaltung so gut wie keinen
Platz weg und du kannst den µC in der Zielschaltung umprogrammieren
ohne ihn jedesmal aus dem Sockel hebeln zu müssen.

Ich würde dir trotzdem immer noch raten:
* zunächst mal ein Schaltbild zu zeichnen
* das ganze auf einem Steckbrett oder einer Lochraster oder
  Streifenrasterplatine auszuprobieren. Da kann man Fehler
  nämlich ganz leicht korregieren. Auf einer geätzten Platine
  kannst du das nicht.
* Erst dann eine Platine zeichnen.

von Hannes L. (hannes)


Lesenswert?

> Die ISP Schaltung ist ja so o.K. wenn ich das richtig verstanden
> habe.

Das wird sich erst in der Praxis erweisen müssen. Denn nicht jeder PC
kommt auf Anhieb mit jeder Billig-ISP-Schaltung zurecht. Da spielen
noch andere Faktoren eine Rolle, wie LPT-Chip, Leitungslänge, usw...

> Nur  - wo muß ich nun die Spannungsversorugung und den Quarz
> unterbringen

Die Spannungsversorgung gehört nunmal an GND unf Vcc. Da sollte dann
auch ein Abblock-Kondensator 100nF Keramik vorgesehen sein.

> und wo wird er womit verbunden ? Es sollte also ein 4MHz Quarz
> sein !?

Der Quarz gehört an die Anschlüsse XTAL1 und XTAL2 des AVRs, falls
dieser AVR einen Quarz braucht. Die meisten AVRs laufen ab Werk mit
internem Oszillator (siehe Datenblatt). Einen Quarz braucht man
eigentlich erst, wenn das Programm zeitkritisch wird, z.B. für UART.
Und da sind 4MHz absoluter Quatsch, da nimmt man 3,686400MHz oder einen
anderen Baudratenquarz.

> Mit den einzelnen Platinen für die Sockel ist eine gute Idee.

Das ist besonders für den Einsteiger geeignet, da man sich immer nur
auf ein Pinout konzentrieren muss, ohne dabei auch die anderen im Blick
haben zu müssen.

Schau dir mal das STK500 an. Das ist ein Board, welches 8 der derzeit
üblichen AVR-DIL-Pinouts unterstützt. Die Platine hat 4 Leiterebenen.
Sowas wolltest du doch, oder?

> Es wird bei mir eine "fliegende" Verkabelung.
> Mir geht es darum, dass ich alles auf einer Platine habe und nur
> noch
> den Prozessor benötige, den ich dann per "fliegender" Verkabelung
> anschließen muß
> und ihn dann brennen/flashen kann.

Und genau das ist die schlechteste Lösung!
Denn wenn du bei jedem Brennen erst die entsprechenden Leitungen
verkabeln musst, dann machst du garantiert irgendwann Fehler. Dann
kannst du auch gleich auf dem Steckbrett arbeiten.

Ich frage mich, warum du dir zusätzliche Probleme aufhalsen willst?

Bau ein einfaches ISP-Adapter mit 6-poligem ISP-Anschluss und
Stromversorgungsanschluss. Dann probiere mit Steckbrett und AVR erstmal
aus, ob du und dein PC damit zurecht kommen. Wenn du das Forum
aufmerksam liest, stellst du sicher fest, dass Viele an dieser Hürde
scheitern.
Wenn das dann funktioniert, kannst du dir die entsprechenden
Adapterplatinen anfertigen. Wenn es unbedingt sein muss, kannst du es
dir auch kompliziert machen und alle üblichen Pinouts auf einer
Brennplatine zusammenfassen. Das hätte dann den Nachteil, dass du immer
nur an einem Projekt arbeiten kannst.

Ich denke auch, dass du eine falsche Vorstellung vom "Flashen" hast.
Es ist nämlich sehr ätzend, wenn man den Controller immer zwischen
Brenner und Zielschaltung hin und her stecken muss. Denn wenn man das
Programm geschrieben hat, dann hat es meist noch Fehler (zumindest bei
"Nichtprofis" wie mir), die gefunden und beseitigt werden müssen.
Dazu ist es erforderlich, modifizierte Teile des Programms zu testen,
Änderungen vorzunehmen, und wieder zu testen. Das bedingt, dass ISP und
Peripherie des AVRs gleichzeitig verfügbar sein sollten, also ISP in der
Zielschaltung (das kann ein Experimentierboard sein) verfügbar sein
sollte.

Das was du anstrebst, ist zum Entwickeln von Programmen ungeeignet. Es
wäre lediglich für Benutzer fremder Programme brauchbar, die sich
möglichst viele Typen offen lassen wollen. Aber auch dafür ist ein
Steckbrett flexibler...

Die Tips von Karl Heinz kannst du schon ernst nehmen, er ist aus der
Branche und könnte dein Ausbilder sein. (Daher kommt er auch nicht auf
solche unkonventionellen Ideen wie ich...) ;-)

...

von Netbird (Gast)


Lesenswert?

Hallo,

wenn man öfter AVR programmieren möchte und Zeit + Nerven sparen
möchte, lohnt es sich, ein Board wie das STK500 zu kaufen!
Damit kann man unterschiedliche AVRs programmieren und es gibt
Anschlüsse für externe Programmierung, nur eine einfache
Kabelverbindung ist zu löten..

Ich höre schon den Einwand: Ist aber soooo teuer ..! Vielleicht trifft
dies bei oberflächlicher Betrachtung zu. Ich selbst habe aber (zu)
wenig Zeit, um alles selbst zu machen, daher habe ich mir ein solches
Board gegönnt. Bisher hat alles sofort geklappt (oder ich habe gewusst,
dass es nicht an falschen Schaltungen o.ä, gelegen hat!). Das macht Mut
und schafft Vertrauen für neue Projekte!

Wenn man dann noch bedenkt , wie viel Geld manche Menschen für z.B.
"Fast" Food und banalen Zeitvertreib ausgeben ...!

Na ja, jeder so wie er/ sie will.

Gruß, Harald.

von Peter (Gast)


Lesenswert?

...HanneS... Lux
hast du da aus einem breitem sockel einen schmalen sockel gemacht?? ;)

tz tz tz

von Torsten (Gast)


Angehängte Dateien:

Lesenswert?

Danke für Eure Antworten !

Ich weiß nicht, ob ich mich einfach nur falsch ausdrücke ?
Ich will es natürlich nicht unnütz kompliziert machen.
Ich möchte doch nichts weiter, als dass sich jemand die Schaltung
ansieht,
mir schreibt wo ich noch etwas verändern müßte (für mich verständlich)
oder das Layout entspr. ändert - mehr doch nicht.

Dass das mit der fliegenden Verdrahtung nicht das Optimum ist,
kann ich mir gut vorstellen. Ich werde es auch ändern.
Mir geht es jetzt nur darum, ob es so funktionieren würde.

1. wenn ich im angehängten Bild nun die Kontakte der Stiftleiste (VCC,
Reset, GND, GND,
Miso, Mosi, XTAL1, XTAL2, SCK) mit den entsprechenden Pins des ATmega8
verbinde,
den Adapter an der parallelen Schnittstelle anschließe und Spannung
drauf gebe -
würde das so funktionieren (vorausgesetzt wie Hannes es schreibt,
dass der PC keine Schwierigkeiten macht) bzw. könnte ich damit flashen
?

2. Müßte dabei denn so auch noch ein 100nF Abblockkondensator zwischen
GND u. VCC ?

3. Könnte ich die Stromversorgung und den Quarz denn wie im Anhang
anschließen ?

4. Ich habe leider nur einen Quarz mit 3,686411 und nicht mit 3,686400
gefunden.
Muß es unbedingt der 400er sein ?

Ich betone es nochmals - ich bin absoluter Laie, daher kann ich auch
mit vielen Begriffen die für Euch "normal" sind nichts anfangen.
Wie z.B. Karl Heinz schreibt, dass ich mir einen Schaltplan zeichnen
soll.
Ich kann es nicht.
Ich möchte nur vorhandene Schaltung (mit Layout) nachbauen und den
AVR mit dem vorhandnen Code flashen können.
Ich will noch nicht programmieren - vielleicht irgendwann mal.
Nur nachbauen und flashen. Daher ist es für mich auch nicht wichtig,
ob die Zielschaltung einen ISP-Anschluß hat, da ich nicht programmieren
kann
und bei den Schaltungen das entspr. Programm meist dabei ist.

Eine Antwort wäre nett.

von Hannes L. (hannes)


Lesenswert?

> Nur nachbauen und flashen.

Sorry, Sowas unterstütze ich nicht. Ich ziehe daher alle bisher
gemachten Äußerungen zurück und behaupte das Gegenteil.

> hast du da aus einem breitem sockel einen schmalen sockel
> gemacht?? ;)

Wo konkret?
Kommt aber gelegentlich vor, denn ich habe noch etliche breite 28er
Fassungen aus der EPRPM-Zeit, die damals recht teuer waren und heute
nicht mehr gebraucht werden. Da kommt man schnell mal auf die Idee, die
Mittelstege herauszuflexen...

...

von Karl heinz B. (kbucheg)


Lesenswert?

Frage:
Womit zeichnest du jetzt Deine Platinen?
Ganz ehrlich: Mit einem Malprogram da in diesem
Layout rumfuhrwerken ist so als ob du einen Dübel
mit einem Schraubenschlüssel in die Wand klopfts.
Ist einfach das falsche Werkzeug für den Job.

Hinweis: Eagle kann man sich als Demoversion kostenlos
vom Hersteller runterladen. Damit kann man prima
Schaltpläne zeichnen und diese komfortabel in
Platinen-Layouts umwandeln. Und wenn mal Änderungen
notwendig sind, dann kann man die rasch erledigen.
Und sei es nur, dass irgendwelche Bauteile verschoben
werden müssen.
Selbiges gilt für Target.
Weitere Vorteil: Die Dinger drucken das Ganze maßstabsgerecht
aus.

http://www.mikrocontroller.net/articles/Schaltplaneditoren

Ich glaube nicht, dass du hier irgendjemanden finden wirst,
der dir ein Layout auf JPG-Ebene korrigiert. Aber so beim
drüberschauen ist mir (ausser den Abblockkondensatoren direkt
am µC) nichts wesentliches aufgefallen. Das heist aber nicht
viel. Es liegt in der Natur der Sache, dass man im Platinen-
Layout nicht sehr viel sieht. Dazu hat man dann einen
Schaltplan.

von Karl heinz B. (kbucheg)


Lesenswert?

Jetzt ist mir doch noch etwas aufgefallen.
Dein ATMega8 auf der Platine: das sieht aus als ob du einen
breiten 28-Pin Chip verbaut haettest. Der Mega8 ist aber
ein schmaler Chip (so breit wie der 244). Siehst du: mit
Eagle waer dir das nicht passiert. Das Pgm weiss naemlich
in welchen Packungsgrößen das Teil daherkommt.

von Torsten (Gast)


Lesenswert?

Hi

@Karl Heinz
In Eagle versuche ich mich gerade einzuarbeiten.
Das Programm was ich nutze ist Sprint Layout 4.0.

Der Mega8 ist nur dazu dort eingesetzt um verständlich zu machen,
wo was angeschlossen werden sollte.

Danke für Eure Antworten !

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.