Forum: Mikrocontroller und Digitale Elektronik AVR ISP Entkoppeln


von Tiny10Nutzer (Gast)


Lesenswert?

Ich habe mir schon einige Schaltungen und Beiträge dazu angesehen und 
angelesen. Die gewünschte Information habe ich so schnell aber noch 
nicht gefunden. Meine Frage:

Inhalt des AVR-ISP sind die Signale Reset, SCK, Mosi, Miso.
Hat wer Informationen darüber, welches Ein- und Ausgänge sind, bzw. ob 
diese mit auf- bzw. absteigender Flanke gesteuert werden?

von Justus S. (jussa)


Lesenswert?

Tiny10Nutzer schrieb:
> Hat wer Informationen darüber,

nennt sich Datenblatt...

von abc (Gast)


Lesenswert?


von Tiny10Nutzer (Gast)


Lesenswert?

Ja das ist schon hilfreich, aber leider nicht das was ich meinte. Das 
was hier die Schaltung beschreibt habe ich bereits auf dem Breadboard 
aufgebaut. Ich habe einen 20 Pin Zif-Sockel und zum Programmieren setze 
ich den Chip nach ganz oben und zum Testen nach ganz unten.

Ich möchte aber zum Programmieren den Chip vom ISP trennen, sodass beide 
beim Programmieren sich elektronisch nicht berühren. Das würde mit 
Optokopplern wunderbar gehen, aber dafür müsste ich wissen, was Ein- und 
Ausgang ist usw.

Und für die Pauschalantwort "Schau ins Datenblatt": Wenn ich immer alles 
sofort finden würde bräuchte keiner dieses Forum hier!

von Thomas D. (thomasderbastler)


Lesenswert?

Ich gehe mal davon aus daß der Progger der "Sender" ist oder ?

von Alex A. (alexdetsch)


Lesenswert?

Eigentlich sollte man das schon an den Namen der Signale erkennen:
MISO: Master In - Slave Out
MOSI: Master Out - Slave In
SCK: Taktleitung
Reset: Sollte klar sein.

Also gehen MOSI, Reset und SCK vom Programmiergerät raus und
MISO zum Programmiergerät rein.

Die Signale sind IMHO alle GND-bezogen. Häng auf der Ausgangsseite der 
Optokoppler halt noch nen Widerstand (10k oder so) nach VCC.

von µC-Bastler (Gast)


Lesenswert?

Tiny10Nutzer schrieb:
> Hat wer Informationen darüber, welches Ein- und Ausgänge sind, bzw. ob
> diese mit auf- bzw. absteigender Flanke gesteuert werden?

Tiny10Nutzer schrieb:
> Und für die Pauschalantwort "Schau ins Datenblatt": Wenn ich immer alles
> sofort finden würde bräuchte keiner dieses Forum hier!

Zumindest für die Datenrichtung ist das Datenblatt der richtige 
Ansprechpartner, insbesondere da die Pins hardwaremäßig festgelegt sind. 
Die Flanke kannst du dir z.B. auch mit einem Oszilloskop ansehen, spielt 
aber auch keine Rolle, weil du die Signale sowieso in der richtigen 
Phasenlagen rüberbringen mußt, damit der Controller den Progger 
versteht.

von Walter T. (nicolas)


Lesenswert?

abc schrieb:
> http://dl1dow.de/inhalt/selbstbau/isp_isolator/index.htm

Tiny10Nutzer schrieb:
> Ja das ist schon hilfreich, aber leider nicht das was ich meinte. Das
> was hier die Schaltung beschreibt habe ich bereits auf dem Breadboard
> aufgebaut. Ich habe einen 20 Pin Zif-Sockel und zum Programmieren setze
> ich den Chip nach ganz oben und zum Testen nach ganz unten.
>
> Ich möchte aber zum Programmieren den Chip vom ISP trennen, sodass beide
> beim Programmieren sich elektronisch nicht berühren.

Irgendwie passen die beiden Aussagen 0% zusammen. Wobei ich gestehe, daß 
ich keine Ahnung habe, was "elektronisch nicht berühren" aussagen soll.

Für den Fall, daß es soetwas wie "galvanisch getrennt heißen" soll: 
genau dafür sind Trenner wie die ADUM1401 oder ADUM1250 gedacht.

Aber wollen wir es mal ehrlich und offen auf den Punkt bringen:

Bei der Anzahl von Programmern, die Du schon durchgebracht hast und 
Anzahl von Iterationen, die nötig waren, um einen simplem 
Stützkondensator anzubringen wäre es dringend angebracht, noch einmal 
einen Schritt zurück zu machen, mit einem fertigen Eval-Board anzufangen 
und an Deiner Methodik zu arbeiten.

Das STK500 ist wunderbar, aber nicht unbedingt anfängertauglich.

Das Pollin-Eval-Board 
http://www.mikrocontroller.net/articles/Pollin_ATMEL_Evaluations-Board 
ist preisgünstig, erprobt und hat auch mit Deinem Dragon kein Problem.

Irgendein Arduino-Board taugt auch als Eval-Board und es sind viele 
Schaltungsvorschläge verfügbar.

So ziemlich jeder Elektronik-Online-Shop oder jeder echte lokale 
Elektroniklieferant hat irgendein Eval-Board im Angebot. Für unter 25 
Euro.

Ich weiß nicht, was Du mit Deinen Programmern anstellt. Ich habe jetzt 
meinen Zweiten (nicht weil einer kaputtgegangen ist, sondern weil der 
erste nicht mit Windows 7 64 bit kompatibel ist). Für den habe ich auch 
mittlerweile eine Potenzialtrennunng (s.o.), weil einer meiner kleinen 
AVRs in einer Schaltung sitzt, wo 80V/10A auf der gleichen Leiterplatte 
stattfinden. Nicht weil ich so toll bin. Sondern weil die Dinger im 
Normalfall einfach funktionieren. Ich bin weder Informatiker noch 
Elektrotechniker. Es gibt tausende Menschen, die mit den 
Standard-Programmern wunderbar klarkommen.

Es wird einfach Zeit, daß Du lernst, mit der Schaltungstechnik 
klarzukommen. Und deshalb bietet sich ein existierendes Eval-Board an. 
Denn da stimmt die Schaltungstechnik. Und wenn Du wieder auf Deine 
eigene Hardware gehst, kannst Du immer noch mit dem Eval-Board 
gegentesten, ob das Problem an der Hardware oder an der Software liegt.

Letzeres mache ich übrigens auch sehr gerne zur Firmwareentwicklung: Es 
gibt einen "mock-up", der mit dem gleichen (oder billigeren) Prozessor, 
dem gleichen Display und den gleichen Bedienelementen bestückt ist. Nur 
die Leistungskomponenten fehlen und die Stroversorgung ist auf USB. Auf 
diesem findet ein Großteil der Firmwareentwicklung statt. Damit kann ich
 a) ungefährlich überall mit dem Tastkopf oder dem Multimeter im Betrieb 
nachsehen
 b) Flash-Zyklen für den Zielprozessor sparen
 c) Logger und Co. ohne Potenzialtrennung betreiben
 d) Den JTAG/ISP immer eingesteckt lassen

Noch einmal: Tausende Bastler und Entwickler haben es geschafft, ihre 
Methodik so anzupassen, daß sie mit Standardwerkzeug klarkommen. 
Vielleicht wäre es für den Anfang sinnvoll, es einfach genauso zu 
machen.

Viele Grüße
W.T.

: Bearbeitet durch User
von Tiny10Nutzer (Gast)


Lesenswert?

@ Alexander Detsch

Klasse Antwort. Bei der Namensgebung für Mosi und Miso kahm ich nicht 
drauf was das heißt. Du hast das aber sehr gut erklärt und ich kann eine 
entsprechende Schaltung aufbauen.

@ Walter Tarpan

Du hast sicherlich recht, dass ich vieleicht den gleichen Weg gehen 
sollte, wie alle anderen vor mir auch. Und ein Stück weit werde ich das 
auch tun. Nur habe ich auf der Uni oft genug gesehen, dass Informatiker 
immer nur mit ihren vorgefertigten (erlernten) Programm- bzw. 
Schaltungs-Bausteinen arbeiten und dabei recht denkfaul geworden sind. 
Ich möchte meine geistige Bewegungsfreiheit (ich weiß dass das scheiße 
klingt) nicht mit all zu vielen vorgefertigtem Zeugs einschränken. Was 
ich aber auf jeden Fall lernen muss ist sozusagen "das Gefühl für die 
Bauelemente".

So Entwicklungsboards fand ich mal vor 10 Jahren ganz interessant. Heute 
denke ich das hat ehr was von "mit Lego spielen" als tatsächlich was zu 
machen. Und zumindest auf den ersten Blick (hatte noch nie eins in der 
Hand) sind die Möglichkeiten auf so einem Board doch recht stark 
eingeschränkt und ich bekomme dann das Gefühl von "Irgendwer den ich 
nicht Kenne will mir hier vorschreiben was ich hier machen soll". Das 
hat mir damals schon bei den C-Control Bausteinen nicht gefallen.

Aktuell komme ich nicht darauf klar, dass im Datenblatt meines AtTiny13A 
der Stromverbrauch als sehr gering angegeben wird, aber trotzdem meine 
2,5 W für das Programmieren ohne Kondensator bzw. für den einfachen 
Betrieb mit Leds und mit Kondensator nicht ausreichen und ich von Außen 
nochmal 15 W draufballern muss, nur damit der Chip läuft. Einen der 
Chips wollte ich eigentlich in einem Super-Low-Power-Bereich einsetzen, 
da der laut Datenblatt ja auch bei 1,8 V läuft.

Grüße

von Georg G. (df2au)


Lesenswert?

Tiny10Nutzer schrieb:
> Datenblatt

Ein gutes Wort...
Im Allgemeinen stimmen die Datenblätter sehr gut. Wenn deine Schaltung 
nicht das tut, was du laut Datenblatt erwartest, glaub nicht an einen 
Fehler im Datenblatt. Du hast es vermutlich nur nicht richtig gelesen. 
Oder du hast einen Designfehler in deiner Schaltung.

Du möchtest dich nicht mit Eval Boards abgeben, das ist in deinen Augen 
Kinderkram. Lass dir gesagt sein, dass viele gestandene Ingenieure gern 
mit Eval Boards arbeiten. Um erst einmal ans Laufen zu kommen, sind die 
Dinger prima und meist auch preisgünstig. Wenn dein Projekt nicht will, 
woran liegt es? An der Entwicklungsumgebung? An der Software? An deiner 
Hardware? Mit einem Eval Board kannst du schon einmal einiges testen und 
Fehler beseitigen (auch mit 30 Jahren Berufserfahrung machst du noch 
Fehler).

Nimm das, womit Hunderte vor die gut gefahren sind und vergiss diese 
Nummer mit der galvanischen Trennung der ISP Schnittstelle. Wenn du 
nicht gerade netzbetriebene Power Hardware entwickelst, geht es mit 
"Schüttgut" besser.

von Alex A. (alexdetsch)


Lesenswert?

Tatsächlich: Wenn deine 500mA aus dem USB-Port nicht ausreichen und du 
nicht viel anderes als den µC momentan in deiner Schaltung hast, dann 
wirst du wohl irgendwo einen Kurzen drin haben. Meine Schaltungen 
funktionieren nämlich stets wunderbar mit der Dragon-Versorgung. Und ich 
hab noch keinen zerstört.

Für den allerersten Anfang mögen eval-Boards geeignet sein. Ich komme 
aber schon seit Jahren mit der Controller-auf-Steckbrett-Methode 
wunderbar klar. gerade wenn man oft unterscheidliche Typen braucht.

Ber nimm ruhig erstmal so ein Board, bei Dir scheints ja schon an den 
Schaltungskünsten zu liegen. Am Besten nicht gleich das STK500, das wäre 
zu teuer, um es zu zerstören.

BTW: Wie schafft man es eigentlich, einen Dragon zu zerschießen? Es wird 
doch überall prominent erwähnt, dass man nicht gleichzeitig die 
Spannungsversorgung vom Dragon und eine Externe nutzen soll?

Viel Spaß

von Alex W. (a20q90)


Lesenswert?

Tiny10Nutzer schrieb:
> Ja das ist schon hilfreich, aber leider nicht das was ich meinte. Das
> was hier die Schaltung beschreibt habe ich bereits auf dem Breadboard
> aufgebaut. Ich habe einen 20 Pin Zif-Sockel und zum Programmieren setze
> ich den Chip nach ganz oben und zum Testen nach ganz unten.

Wie meinst Du das? Normalerweise wird der AVR in die Schaltung 
eingfelötet und kann einfach so mittels ISP umprogrammiert werden, ohne 
das irgendwas stört. Beim Breadbord sparst Dir halt das Löten, aber 
ZIF?? Weswegen das?

> Ich möchte aber zum Programmieren den Chip vom ISP trennen, sodass beide
> beim Programmieren sich elektronisch nicht berühren. Das würde mit
> Optokopplern wunderbar gehen, aber dafür müsste ich wissen, was Ein- und
> Ausgang ist usw.

Welchen Grund soll das haben? Die ganzen ISP-Programmer haben auch keine 
Trennung und die funktionieren 1++ (AVR ISP MK2, ISPProg, mySmartXX)


> Und für die Pauschalantwort "Schau ins Datenblatt": Wenn ich immer alles
> sofort finden würde bräuchte keiner dieses Forum hier!

Frech!


> Aktuell komme ich nicht darauf klar, dass im Datenblatt meines AtTiny13A
> der Stromverbrauch als sehr gering angegeben wird, aber trotzdem meine
> 2,5 W für das Programmieren ohne Kondensator

ohne Kondensator kannst Dir gleich abschminken!

> bzw. für den einfachen
> Betrieb mit Leds und mit Kondensator nicht ausreichen und ich von Außen
> nochmal 15 W draufballern muss, nur damit der Chip läuft. Einen der
> Chips wollte ich eigentlich in einem Super-Low-Power-Bereich einsetzen,
> da der laut Datenblatt ja auch bei 1,8 V läuft.
>
> Grüße

Dann hast was falsch gemacht! LED mit Vorwiderstand, Cs (Abblock C) an 
allen VCC nach GND?

von Tiny10Nutzer (Gast)


Lesenswert?

Na Frech will ich nicht sein. Nur ist das zwar so, dass ich recht gut 
Englisch verstehe. Aber diese Datenblätter sind ungewöhnlich schwer zu 
lesen, was nicht zuletzt an den nicht direkt verständlichen Abkürzungen 
liegt (hatte schon leichter zu verstehende Datenblätter). Und das gleich 
auf 130 Seiten. Da such ich mir dann schon zwei drei Tage den Wolf. Um 
so schlimmer wird es dann, wenn ich gar nicht weiss wonach ich überhaupt 
suchen soll. Da bin ich dann sehr froh ein Forum zu haben, wo ich meine 
Frage dann auch mal reinstellen kann. Dann als Antwort zu bekommen "Sieh 
ins Datenblatt"... Ja so schlau war ich schon...

von Thomas (kosmos)


Lesenswert?

nimm doch Jumper oder DIP-Schalter um die I/Os von der restlichen 
Hardware zu trennen ISP kann immer dran bleiben, was stört ist eher das 
externe Zeug was am Pin mit draufhängt.

von Mike (Gast)


Lesenswert?

Tiny10Nutzer schrieb:
> Und das gleich auf 130 Seiten. Da such ich mir dann schon zwei drei
> Tage den Wolf.

Ein Telefonbuch lernst du doch auch nicht auswendig. Benutze einfach die 
Suchfunktion des PDF-Readers. Bisher hast du nicht geschrieben (oder ich 
hab's übersehen) welches Datenblatt dich dermaßen beschäftigt.
Beim ATtiny2313 z.B. mit seinen 274 Seiten liefert dir der fünfte 
Treffer bei der Suche nach "MOSI" die Pinfunktionen und Datenrichtung 
bei der seriellen Programmierung und wenige Treffer weiter kommt das 
Signaldiagramm mit Flankenlagen.

* http://www.atmel.com/Images/doc8246.pdf

von Alex A. (alexdetsch)


Lesenswert?

... Wobei Datenblätter lesen können auch so eine Fähigkeit ist, die zum 
"Elektronik-Basteln" dazu gehört. ;)

Du solltest vielleicht das Ganze nochmal ordentlich von Grund auf 
aufbauen. Und zwar mit Abblockkondensator (100nF) und OHNE Peripherie. 
Nimm einfach LEDs als Anzeige. Mache ich auch immer, bevor ich es in der 
realen Schaltung teste. :)
Und bevor du Spannung anlegst: Mit Multimeter auf Kurzschluss prüfen. 
Nimm am besten auch einen neuen µC, den Anderen hast du evtl. bei deinen 
Versuchen ein bisschen kaputt gemacht.

Viele Grüße ;)

von Konrad S. (maybee)


Lesenswert?

Für ATtiny25/45/85 habe ich mir einen Adapter gebastelt, der mit einem 
4x-Um-Relais die Programmier-Pins des Controllers von der 
Anwendungsschaltung bei Bedarf auf den Programmer umschaltet. Es kommt 
bei den kleinen Controllern schon mal vor, dass sie nicht 
ISP-programmierbar sind, z.B. weil an der Clock-Leitung irgendwas 
niederohmig dranhängen muss.

von Tiny10Nutzer (Gast)


Lesenswert?

Was Ich ja grade möchte war nicht das Abtrennen von Programmierbereich 
und Testbereich. Das habe ich mit dem ZIF-Sockel schon. Ist zwar nicht 
super elegant, aber funktioniert und hat nur wenig Aufwand gekostet. Mir 
ging es um das Abtrennen des Programmierbereichs vom ISP-Port des 
Programmiergerätes. Da ich ja einige Hundert Chips vom gleichen Typ 
programmieren möchte, kann ich mir so auch überlegen eine Schaltung 
aufzubauen, die vieleicht mehrere Chips gleichzeitig programmiert (mit 
logischen Und-Bausteinen).

von Alex A. (alexdetsch)


Lesenswert?

Also wenn du Hunderte Chips programmieren willst, wäre eine 
Programmierteil und Peripherieteil doch sinnvoll?! Warum willst du die 
ISP-Leitungen galvanisch trennen, wenn du doch beim Programmieren eh 
nichts anderes dran hast (und bei dem kleinen uC auch nicht kannst)?

Ich weiß ja nicht, was du vorhast, aber ich würde zuerst die Software / 
Hardware mit EINEM Exemplar 100% entwickeln und testen und DANN erst in 
die Produktion gehen.
Wenn du den uC beim Programmieren richtig anschließt und keinen Kurzen 
reinhaust, kann eigentlich gar nichts passieren?!

Und: Mehrere Chips gleichzeitig per UND-Gatter zu "versorgen" ist 
totaler Quatsch. Erstens funktioniert schon das Programmieren nicht und 
zweitens liest der Dragon den gesamten Speicher des uC danach wieder zur 
Kontrolle aus. Das kann nicht funktionieren.

von Walter T. (nicolas)


Lesenswert?

Tiny10Nutzer schrieb:
> Da ich ja einige Hundert Chips vom gleichen Typ
> programmieren möchte,

Schrittweise vorgehen schade niemandem.

Schritt 1: Eine MCU programmieren

Schritt 2: Mehrere MCUs programmieren.

Nicht die Serie vor dem Prototypen planen! Dazwischen liegen für 
gewöhnlich Monate.

Nebenbei: mit der ganz gewöhnlichen Programmierung in der Schaltung habe 
ich auch bei der Programmierung in der Serie (bis 200 Stück) noch nie 
Probleme gehabt. Im Gegenteil: Im Programm war dann direkt ein 
Hardwaretest mit drin, so daß man Lötfehler leichter feststellen kann.

von Georg G. (df2au)


Lesenswert?

Mein Bestücker würde mich erschlagen/erwürgen, wenn ich die Prozessoren 
aus dem Gurt nehmen würde, um sie zu programmieren.

Mehrere Prozessoren parallel zu programmieren ist nicht trivial. Schau 
dir mal die Preise für Gang Programmer an.

von Konrad S. (maybee)


Lesenswert?

Im Datenblatt des ATtiny4/5/9/10 ist im Abschnitt "Physical Layer of 
Tiny Programming Interface" skizziert, wie ISP (bzw. TPI) bei den 
kleinen Controllern funktionieren kann. Wenn das nicht machbar ist, gäbe 
es noch die Möglichkeit, mit einem Bootloader zu arbeiten, der nur einen 
Pin verwendet. Und ein Pin ist leichter ISP-/TPI-/Bootloader-tauglich zu 
beschalten als drei oder vier.

Mit Geduld ist das hinzubekommen. Es hat schließlich auch nur zwei Tage 
gedauert, bis langsam erkennbar wird, wo eigentlich das Problem liegt. 
;-)

von Tiny10Nutzer (Gast)


Lesenswert?

Das mit der Und-Schaltung war nur so ein grundsätzlicher Gedanke. Man 
könnte ja mehrere Chips nehmen und die Leitungen Reset, SCK und Mosi 
zwischen den Chips parallel zum Programmer verbinden und die Miso 
Leitungen per Und-Baustein mit dem Programmer verbinden. Schlägt bei 
einem Chip das Flashen fehl wird dies dann angezeigt. Natürlich unter 
der Vorrausetzung, dass alle Chips alles zeitgleich machen. Sollten sie 
dank SCK aber tun.

Für das Verständnis:
Mein erstes Projekt ist noch keine Serie. Ich brauche für EIN Projekt so 
viele gleiche Module. und ich mache mir eben jetzt schon Gedanken wo ich 
wie lange für was brauchen könnte, wie lange ich dafür überhaupt 
brauchen möchte und wo ich bei den Modulen Geld einsparen kann. Btw: 
gibt es Anlaufstellen wo ich Platinen fertigen und bestücken lassen 
kann?

von Georg G. (df2au)


Lesenswert?

Tiny10Nutzer schrieb:
> gibt es Anlaufstellen wo ich Platinen fertigen und bestücken lassen
> kann?

Das gibt es massenhaft. Wobei es sich empfiehlt, dass der Bestücker auch 
gleich die Bauteile und Platinen einkauft. Das hat den Vorteil, dass 
alles zusammenpasst. Allerdings will der Geld dafür sehen. Und bei 
Neukunden vermutlich Vorkasse oder Bankakkreditiv.

Zu deinem und-Gatter: Wenn es nur so einfach wäre... das Eintakten 
übernimmt SCK, das ist richtig. Die internen Abläufe (das eigentliche 
Programmieren) macht der Prozessor aber mit seinem eigenen Takt mit 
seiner eigenen Toleranz. Was meinst du, warum Gang Programmer so teuer 
sind?

Übrigens, zum normalen Bestücker Service gehört auch das Programmieren 
der Prozessoren. Meist liefert man ein Testprogramm mit oder entwickelt 
es gemeinsam mit dem Bestücker. Such dir doch ein Ingenieurbüro in 
deiner Nähe, das Elektronik entwickelt, und lauf mal ein halbes Jahr als 
Praktikant mit. Dann wird dir vieles klarer.

: Bearbeitet durch User
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.