Forum: Mikrocontroller und Digitale Elektronik fragen zu schaltplan (AVR-ISP-MK2-klon)


von Richard X. (synq1e)


Angehängte Dateien:

Lesenswert?

Hallo, ich wollte mir einen AVR-isp-mk2 möglichst günstig anschaffen und 
diese schaltung teilweise nachbauen.
https://www.olimex.com/Products/AVR/Programmers/AVR-ISP-MK2/open-source-hardware

dabei sind fragen aufgetaucht. bin für alle antworten dankbar.

wozu genau sind die Dioden D2, D3, D4 gedacht ?

C13 dient meiner meinung nach als abblockkondensator für die versorgung 
der zielschaltung, aber wozu ist R5 da wo er ist.

warum sind bei den USB-datenleitungen 22 Ohm in serie ?

warum wird hier ein MCP130T-300 IC verwendet ? ich habe das datenblatt 
überflogen und weiss jetzt das er µC's in reset halten soll solange die 
versorgung nicht stabil ist, aber warum genau ist er hier vorhanden ? 
ist die USB spannnung so instabil beim anlegen ?

und warum ist da C15.


Der Taster BOOT_E ist laut eagle-board zeichnung in der mitte, und aus 
dem handbuch für diesen programmer entnehme ich das dieser dafür 
zuständig ist  um ein firmware update einzuspielen (über USB).
da ist noch ein widerstand dran mit 100 ohm , warum ?


nur wozu ist der Taster "HWB" , D1 , C14 ? R6 sollte als pullup doch 
keine 1M haben.

den ER/PGM jumper versteht wenn man das handbuch liest, er ist für den 
fall gedacht wenn man die firmware nicht mehr über den bootloader über 
USB den CHIP programmieren kann und man dafür die ICSP buchse benutzt.

aber für was ist der SMD-jumper MCU_5V/3.3V gut ? dieser ist laut 
eagle-board-zeichnung überbrückt.

desweiteren hab ich mir überlegt was ist wenn ich z.B einen µC damit 
programmieren möchte und dieser ünterstützt nur 3.3V , würden dann die 
5V pegel aus diesem programmer den 3.3V-µC schaden zufügen ?
oder gibt es keine µC von Atmel die nur 3.3V unterstützen.

warum ist am USB-shield 10nF ?
und wofür ist die Spule.

ich wollte mir den AT90USB162 kaufen , ist aber leider nur in TQFP 
verfügbar, hab mir gedacht ich löte ihn auf eine adapter platine,
dabei wollte ich wissen ob sich das mit dem quarz ausgeht. geht sich das 
mit den leiterbahnen aus das der quarz ordnungsgemäß schwingt ?

schöne feiertage

: Bearbeitet durch User
von Karl-werner R. (kwriedel)


Angehängte Dateien:

Lesenswert?

Das Projekt gibt's ein wenig verbessert hier:
http://fourwalledcubicle.com/AVRISP.php
Damit kann man 5 Volt und 3,3Volt Zielsysteme verwenden.
Auch das Zielsystem kann wahlweise mit Spannung versorgt werden.

Nur die Software muss von Olimex sein, sonst erkannt das AVR-Studio den 
Nachbau und nix geht.
Ansonsten läuft der Programmer super.

Habe noch einige Leerplatinen hier, die ich verschenken kann. (erste 
Version, nur TQFP, kein MLF32)
GTL2003 auch zum EK.
Habe im Layout aber auch alternativ zum GTL Widerstände drin.

Zu den Fragen:
> D2-D4: Überspannungen oder 5V / 3 Volt Unterschiede werden glattgebügelt
         (Bei dem LUFA-Projekt wird's mit einem GTL2003 gemacht)
> R5: Mindestlast/Entladung c13 (trotzdem merkwürdig)
> MCP130T-300 :  Luxusvariante, RC tut's auch
> TQFP: Beim LUFA-Projekt ist TQFP vorgesehen. (Bei meinem Layout MLF32 und TQFP32 
wahlweise drauf)

: Bearbeitet durch User
von Matt (Gast)


Lesenswert?

Die Target-Spannung ist beim ersten Schaltplan ja auch scheinbar 
umschaltbar per Jumper. R5 soll C13 beim Umstecken entladen, sonst 
könnten (zumindest kurzzeitig) 5V aus C13 am Ausgang von VR1 liegen.

C15 ist mMn unbestückt (NA). Somit ergibt sich eine Bestückungsoption: 
Statt U2 ein RC-Glied an Reset.

Taster Boot_E löst nur ein Reset aus, während des Reset muss wohl Taster 
HWB gedrückt werden, um in den Bootloader des Mikrocontrollers zu kommen 
(hier hilft das Datenblatt des Controllers weiter, vielleicht auch zur 
weiteren Beschaltung des Pins; grundsätzlich kommen mir 1M für R6 auch 
zu hoch vor).

Per MCU-Jumper kann man entscheiden, ob die MCU mit 5V oder 3,3V 
versorgt werden soll (wieder Blick ins Datenblatt, ob das mit dem 
verwendeten Quarz überhaupt geht).
Damit könnte man prinzipiell das Problem der Pegelunterschiede auf den 
Programmerleitungen umgehen. Ansonsten sind dafür die Widerstände in den 
Programmerleitungen da: Die Schutzdioden an den Eingängen des Targets 
begrenzen die Spannung, die Widerstände verhindern wiederum, dass die 
Schutzdioden Schaden nehmen.

Die 10nF am USB-Shield legen diesen HF-mäßig auf Masse. Da weiß ich 
ehrlich gesagt nicht auswendig, ob man das so macht, da müsstest Du nach 
USB-App-Notes/-Design-Guides suchen.

Die Spule soll durch das Target verursachte Störungen aus der Versorgung 
des Programmers filtern und vice versa.

Das mit der Adapterplatine und dem Quarz sollte mMn hinhauen, zumindest 
für den Eigenbedarf.

von Matt (Gast)


Lesenswert?

Was ich gerade sehe: Taster Boot_E zieht über D1 auch Pin #HWB der MCU 
auf Low. Das RC-Glied um R6/C14 sorgt dafür, dass #HWB noch kurzzeitig 
auf Low-Pegel bleibt, wenn die MCU aus dem Reset zurückkommt.
Damit sollte der Eintritt in den Bootloader sichergestellt sein.

Somit dient Taster Boot_E tatsächlich direkt für FW-Updates, Taster HWB 
wird nicht gebraucht (und ist laut Schaltplan auch unbestückt: NA).

von Daworka (Gast)


Lesenswert?

Henne-Ei-Problem:
Wie willst Du denn die SW auf den AT90 bekommen ?

von Karl-werner R. (kwriedel)


Lesenswert?

>Henne-Ei:
Die kostenlose (Telefunken-, TEMIC-) Atmel Flip Software erkennt den AVR 
am USB.
Deswegen hat er den Boot-Modus.
Damit die Software draufschreiben - fertig.

von Mampf F. (mampf) Benutzerseite


Lesenswert?

Wofür benötigt man noch einen AVR ISP MK2?

Verwende derzeit einen USBASP, den man für 3EUR in der Bucht kaufen kann 
und der macht eigentlich alles, was man möchte ...

Was kann der MK2 besser?

von Karl-werner R. (kwriedel)


Lesenswert?

>Was kann der MK2 besser?
Er funktioniert einfach. (AVRStudio6 aufwärts, Win7)
Nee - im Ernst; Die Sache mit dem USBASP habe ich naklar auch tagelang 
durchprobiert, dann endlich eine Firmware gefunden (STK500 von Ullihome, 
die erst einen eigenen Bootloader braucht, dazu ein eigenes Tool).
Dann lief der Spaß irgendwann mal zufällig.
Beim nächsten mal ging wieder nix.

Aber für Arduino oder AVRDude scheint ein USBASP wohl zu reichen?

von Matt (Gast)


Lesenswert?

Karl-werner R. schrieb:
>>Henne-Ei:
> Die kostenlose (Telefunken-, TEMIC-) Atmel Flip Software erkennt den AVR
> am USB.
> Deswegen hat er den Boot-Modus.
> Damit die Software draufschreiben - fertig.

Wird die MCU wirklich mit Bootloader ab Werk geliefert?
Wenn mich nicht alles täuscht, ist der Bootloader bei Atmel nicht in HW 
umgesetzt, sondern es muss zunächst die HEX des DFU-Bootloaders in den 
Flash.
Das ist bei den Demoboards (z.B. AT90USBKEY) schon geschehen, aber wenn 
man wirklich "blanke" ICs kauft?

Zum USBASP: Mit dem war ich auch immer sehr zufrieden, wäre übrigens 
auch eine schönes Selbstbauprojekt, man könnte eine MCU im DIL-Package 
nehmen und bräuchte keine Adapterplatine o.ä. Allerdings hätte man 
dannwieder mit Sicherheit das Henne-Ei-Problem.

von Carl D. (jcw2)


Lesenswert?

Matt schrieb:
> Karl-werner R. schrieb:
>>>Henne-Ei:
>> Die kostenlose (Telefunken-, TEMIC-) Atmel Flip Software erkennt den AVR
>> am USB.
>> Deswegen hat er den Boot-Modus.
>> Damit die Software draufschreiben - fertig.
>
> Wird die MCU wirklich mit Bootloader ab Werk geliefert?
> Wenn mich nicht alles täuscht, ist der Bootloader bei Atmel nicht in HW
> umgesetzt, sondern es muss zunächst die HEX des DFU-Bootloaders in den
> Flash.
> Das ist bei den Demoboards (z.B. AT90USBKEY) schon geschehen, aber wenn
> man wirklich "blanke" ICs kauft?

Neue Chips sollten den drauf haben. Aber du hast recht, der ist nicht in 
einem ROM, läßt sich also, auch unbeabsichtigt, überschreiben. 
Allerdings per ISP auch wieder reinfüllen.

von Karl-werner R. (kwriedel)


Lesenswert?

Der Bootloader ist ab Werk bei "nackten" CPUs drauf. Ob er nochmal 
geschützt ist, also quasi "in Hardware" drauf ist kann ich nicht sagen. 
Habe nie versucht ihn zu überschreiben. Ist einfach immer da, wenn man 
einen Pin entsprechend setzt. Wie bei den SAM7 usw.

von Matt (Gast)


Lesenswert?

Danke für die Antworten zum Bootloader ab Werk!

Nochmal zurück zum ursprünglichen Post:
Der 100Ohm-Widerstand in Serie zum Taster BOOT_E verhindert, dass C14 
ohne Strombegrenzung über D1 und den Taster entladen wird.
Außerdem könnte er evtl. als Minimal-ESD-Schutzbeschaltung des Tasters 
(bzw. natürlich des Reset-Eingangs der MCU) gedacht sein, dazu würde 
dann aber eigentlich noch ein kleiner Kerko möglichst nahe am Taster 
gehören.

Die Serienwiderstände in den USB-Leitungen begrenzen entweder den Strom 
bei unterschiedlichen Pegeln auf PC- und MCU-Seite (was macht die 
MCU-USB-HW bei VCC=5V?) oder sie dienen anderweitig als 
Schutzbeschaltung (hier wieder Datenblatt oder App-Notes sichten).

von Joachim B. (jar)


Lesenswert?

Richard _. schrieb:
> wozu genau sind die Dioden D2, D3, D4 gedacht ?

Klemmdioden um höhere Target/Port Spannungen abzuleiten

> aber wozu ist R5 da wo er ist.

Die Grundlast damit die Spannung auch abgeleitet wird

5V vs. 3,3V Schaltungen

> warum sind bei den USB-datenleitungen 22 Ohm in serie ?

Serienterminierung oder Dämpfung und Strombegrenzung

von Richard X. (synq1e)


Angehängte Dateien:

Lesenswert?

Ich habe mein AT90USB162 board fertig, USB und die software von OLIMEX 
drauf geschrieben. funktioniert super mit AVRDUDE. hab schon testweise 
einen ATTINY2313 programmiert.

hatte jedoch stunden verbracht den bootloader ordnungsgemäß ausgeführt 
zu bekommen.
bei Werkseinstellungen und mit 16Mhz quarz konnte der bootloader nicht 
über USB kommunizieren.

was mich bei dem Blockschaltbild verwirrt   , der pfeil zur "PLL Clock
Prescaler" - "clk XTAL (2-16 MHz)"
aber warum 2-16 ??  meiner meinung nach wären NUR 16 oder 8 mhz korrekte 
werte um USB lauffähig zu bekommen.

im datenblatt steht ja :
6.9.2 PLL Control and Status Register – PLLCSR
• Bit 4..2 – PLLP2:0 PLL prescaler
These bits allow to configure the PLL input prescaler to generate the 
8MHz input clock for the
PLL.

 Clock Division Factor 1 oder 2 zur auswahl.

somit kann es nur 8 oder 16 Mhz zugeführt werden. bitte korrigiert mich.

dann habe ich nach stunden fehlersuche schließlich rausgefunden dass die 
CKDIV8 fuse eingeschaltet ist(werkseinstellung) und die CPU mit nur 2 
MHZ lief und das zu langsam für USB ist.
jetzt funktionierts. :-)

eine frage habe ich noch bezüglich der pegelwandler , da hier auch 
USBASP erwähnt wurde habe ich mir den schaltplan angesehen und da sind 
einfach nur widerstände mit 270 Ohm zwischen SCK, MOSI und RST. 
funktioniert das auch ?
MISO kann ich ja einfach so lassen oder ?
was ist eigentlich der unterschied zwischen der variante mit den 
dioden+widerstände und nur widerständen.
sonst hätte ich nur einen CD4504BE zur verfügung wobei ich nicht weis 
was mit dem SELECT pin zu machen ist.

von Karl-werner R. (kwriedel)


Lesenswert?

Widerstände gehen na klar auch. Dann ist im Fehlerfall halt die CPU 
hinüber.
(Für den ersten Prototyp reicht auch mal eine Brücke...)
Der GTL2003 hat leider recht engen Pinabstand, so dass es hier im 
Fehlerfall einiger maßen unangenehm ist zu löten. Und die Pads machen 
das auch nicht so oft mit. Aber wenn ich sehe, wie leicht ein orignal 
mkII stirbt, ist das noch ok.

Dioden: s.o.
Wie schon früher geschrieben, habe ich Platinen zu verschenken.

von Oliver J. (skriptkiddy)


Lesenswert?

Mampf F. schrieb:
> Wofür benötigt man noch einen AVR ISP MK2?

Der originale AVRISP-MK2 ist bei mir beim Flashen über avrdude um Welten 
schneller als der USBasp. Das spielt bei größeren µC (128kbyte Flash) 
durchaus eine Rolle.

Grüße Oliver

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.