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.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
@ 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 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?
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.
:
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.