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?
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!
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.
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.
abc schrieb:> http://dl1dow.de/inhalt/selbstbau/isp_isolator/index.htmTiny10Nutzer 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.
@ 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
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.
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ß
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 Kondensatorohne 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?
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...
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.
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
... 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 ;)
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.
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).
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.
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.
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.
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.
;-)
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?
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.