AVR Dragon

Dirk Ruth schrieb:

Den kann man aber nur miserabel zum Bit-Banging missbrauchen. 1 ms pro "bang", da kannst du zwischendrin Kaffee kochen gehen. Reicht vielleicht gerade mal dazu, dass man damit einen Bootloader nach Wahl (der dann auf die konkrete Hardware und deren IO-Pins zugeschnitten ist) programmiert.

Nicht jeder Controller in einer Zielschaltung will schließlich die UART-Pins immer als UART benutzen, und gerade bei den ganz kleinen werden die Pins schnell knapp sonst (außerdem haben die kleinsten gar keine UART).

Aber Programmierhardware für einen AVR bekommst du inzwischen wirklich an jeder Straßenecke für'n Appel und 'n Ei, das ist nicht mehr wirklich ein Thema.

--
cheers, J"org               .-.-.   --... ...--   -.. .  DL8DTL

http://www.sax.de/~joerg/                        NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)
Reply to
Joerg Wunsch
Loading thread data ...

Joerg Wunsch schrieb:

Wenn sie denn funktioniert. Ich hatte gerade ein Problem mit einem gekauften USB-Programmer. Hübsches Gerät, klein und mit Gehäuse, und endlich mal eins mit dem 6-poligen Steckverbinder. Das Dumme war nur, er konnte nicht mit dem (zugegeben schon recht alten) Zielprozessor kommunizieren. Ein modernerer, pinkompatibler Prozessor in derselben Hardware lief. (zum Glück DIL auf Fassung) Gegentest mit einem no-cost-Selbstbauteil über den Parallelport: beides geht. Service des Verkäufers hat keine Idee, woran es liegt. Bei ihnen geht es. Ich soll ihnen die ganze Hardware zuschicken, darf ich aber nicht.

Lösung des Problems: Chef sagt "Parallelkarte kaufen, alten Programmer benutzen." - schade.

--

      Mit freundlichen Grüßen    Andreas Graebe
--. .-. .- . -... . .--.-. - ..-. .... -....- -... . .-. .-.. .. -. .-.-.- -.. .
Reply to
Andreas Graebe

Joerg Wunschschrieb: "

Für Bit-Banging über USB-Seriell sind m.W. die FT245 von FTDI besser geeignet. Allgemein bin ich aber von einem Controller mit Bootloader ausgegangen. Der kann nicht nur die verschiedenen internen Spezialitäten abbilden, mit dem kann man dann auch debuggen. Bei Renesas z.B. haben das m.W. selbst die kleinsten Controller.

UART braucht zwei Pins. Wer die aus Kostengründen sparen muss, um dafür den noch kleineren Controller zu verwenden, wird wohl Produkte entwickeln, die mal in sehr großen Stückzahlen vom Band laufen. Derjenige wird dann sicher auch einen richtigen Emulator für ein paar tausend Euros anschaffen.

Ärgerlich ist, dass man für jede Serie dieses Hersteller einen neuen Emulator bräuchte. Das hat mich bisher vom Einsatz dieser Controller abgehalten, da ein Up- oder Downgrade immer umfangreichere Änderungen nach sich zieht.

Dirk

Reply to
Dirk Ruth

Dirk Ruth schrieb:

Bei den meisten AVRs kann man einen Bootloader installieren, hierfür kann man per Fusebits dessen Speicherbereich vor dem Überschreiben schützen. Braucht dann aber um die 500 Byte; wenn der Platz knapp ist, muß man eben wieder den Programmer nehmen.

Ist mMn nicht nötig. Hier ist von Programmern die Rede, und diese haben bei bislang *allen* von mir verwendeten AVRs (Tiny13 bis Mega2561) dieselben Anschlüsse. Das einzige, was sich hier geändert hat, ist der verwendete Steckverbinder. Früher war das meist ein 10poliger Pfostenstecker, heute wird ein 6poliger empfohlen.

Das ist, wie gesagt, nicht korrekt. Ab und an ändern sich mal die Algorithmen, mit denen die Kommunikation läuft. Ist auch nicht verwunderlich, die Derivate vermehren sich wie die Karnickel, und als die Verfahren einst entwickelt wurden, konnte man wohl noch nicht erahnen, wie erfolgreich diese Serie wird. Wenn man ein gut gepflegtes Programmiertool wie den AVRDUDE einsetzt, muß man sich darüber jedenfalls keine Gedanken machen. Der ist netterweise auch noch konfigurierbar, sodaß man auch exotische oder selbstgebaute Programmer nutzen kann. Einen Emulator habe ich bislang noch nie gebraucht. AVRGCC übersetzt schon recht ordentlich.

--

      Mit freundlichen Grüßen    Andreas Graebe
--. .-. .- . -... . .--.-. - ..-. .... -....- -... . .-. .-.. .. -. .-.-.- -.. .
Reply to
Andreas Graebe

Dirk Ruth schrieb:

Nö, wenn schon, dann FT2232. Damit kann man auch einen AVR programmieren, ja, und das geht recht flink.

Sei's wie es sei, wenn du einen Controller via USB programmieren willst, brauchst du halt (mit Ausnahme der direkt USB-fähigen Controller, die aus ebendiesem Grund auch einen entsprechenden Bootloader vorgeladen haben) immer noch *irgendein* Stück Programmierhardware. Auch deinen USB-RS-232-Wandler bekommst du schließlich nicht kostenlos.

Beim Parallelport (und nur bei diesem) genügte als Adapter ein DB-25-Stecker mit ein paar Drähten. Allerdings war das auch nur die "lowest cost"-Variante, bei der man schon ein paar Abstriche an der Zuverlässigkeit machen musste.

Gibt's beim AVR nicht (mehr). Der Standard-Emulator (das JTAG ICE mkII) kostet offiziell wohl USD 300 oder so, die Lowcost-Variante (AVR Dragon, back to the subject ;-) kommt für knapp EUR 70 zum Endkunden (mit Märchensteuer). Der kann nicht nur so gut wie alle AVRs mit so gut wie allen Methoden programmieren, sondern auch gleich noch debuggen.

Woher auch immer du das hast. Andreas schrieb dir ja schon, dass das so nicht stimmt.

--
cheers, J"org               .-.-.   --... ...--   -.. .  DL8DTL

http://www.sax.de/~joerg/                        NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)
Reply to
Joerg Wunsch

Ja, das hatte ich gelesen und genau das finde ich nicht sinnvoll. Wieso soll die Richtung und der Pegel von einem Port-Pin darüber entscheiden, ob SPI nun läuft oder nicht? Beim AD7718 z.B. kann man SPI ohne Chipselect betreiben (indem man 32 Clocks mit DIN high zur Synchronisierung sendet), sodaß ich also rein theoretisch alle anderen Anschlüsse als Eingang schalten könnte, wenn die andere Aufgaben hätten. Ein kleines zusätzlichens Bit irgendwo im SPI-Modul wäre dann sinnvoll, um es dennoch immer als Master laufen zu lassen, egal was an anderen Pins anliegt. Zugegeben, ein wenig konstruiert der Fall :-)

--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss

Joerg Wunschschrieb: "

Ja genau den meinte ich.

Die USB nach RS232 Wandler gibt es bei Ebay für 2 EUR incl. Versand. Wenn man den aufmacht, die Kondensatoren für den Spannungswandler am MAX213 entfernt und entsp. zwei Brücken mit Fädeldraht einlötet, dann hat man einen Wandler von USB auf RS232 mit 5V Pegeln. Den kann man immer gebrauchen, wenn man mit Mikrocontrollern arbeitet,und sei es nur, man will nur mal ein Terminal an den Controller hängen.

Da bin ich noch anderer Meinung. Ich erinnere mich noch an etwas wie einen STK500 + 501 + 502, AVRISP, AVRJTAG mkII usw. Dazwischen gab es möglicherweise noch andere Versionen - ich hab das nicht weiter verfolgt. Die C51er Serie kann man damit aber gar nicht programmieren, bei der C51er Serie mir ISP weiß ich es nicht. Und den Emulator ATICE50 scheint es auch noch zu geben.

Das alles scheint mir etwas verwirrend. Aus heutiger Sicht mag der mkII oder der Dragon das alles erschlagen, wenn man aber schon ein paar Jahre bei Atmel ist, dann hat man die ganzen anderen Programmer auch im Schrank stehen. Nur für die o.g. Programmer kommt man auf ca. 670,- EUR. Dafür kann man schon eine Menge Controller kaufen. Mal zum Vergleich, bei Renesas kann man vom kleinsten bis zum größten Controller (R8C, M16C, M32C, R32C ..) alles mit dem E8 (vergleichbar mit dem mkII) programmieren und debuggen. Geht m.W. sogar mit einigen H8, die Hitachi mit zu Renesas gebracht hat. Programmieren und debuggen kann man R8C, M16C, M32C auch ausschließlich über die UART. Damit liegt die Investition für den Einsteiger bei genau 2,- EUR.

Aber sei's drum. Bei Microchip scheint es noch mehr verschiedene Programmer zu geben. Mal schauen, wie lange der Drache lebt.

Dirk

Reply to
Dirk Ruth

Dann beschreibe mal, wie du es implementieren würdest, dass der gleiche SPI-Block am gleichen Bus sowohl als Master als auch als Slave betrieben werden kann. Irgendein Entscheidungskriterium brauchst du dafür (auch wenn diese Kombination in der Praxis wahrscheinlich wirklich eher selten benötigt wird), und es liegt in der Natur der Sache, dass dieses Kriterium vom Master (also aus Sicht deines AVR von außen) kommen muss.

Gut, ein Bit mehr im Steuerregister hätte es auch getan, aber die waren alle schon belegt. (Später hat man dann aber trotzdem noch eins mehr gebraucht, SP2X, das hat man dann ins Statusregister gelegt.)

Wenn dich das so sehr stört, kannst du ja immer noch die USART im SPI-Modus betreiben, die kann dann nur den Master-Modus. ;-)

Der SPI läuft ja in beiden Fällen. In deinem Fall hat er nur auf den Takt vom Master gewartet...

Das ist aber eine ziemliche Ausnahme, die meisten SPI-Chips brauchen ein Select-Signal, weil das auch zur Synchronisation des SPI-Moduls benötigt wird.

Ja, erscheint mir noch mehr konstruiert als der Fall, dass man wirklich mal master und slave an einem Bus sein möchte. ;-)

--
cheers, J"org               .-.-.   --... ...--   -.. .  DL8DTL

http://www.sax.de/~joerg/                        NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)
Reply to
Joerg Wunsch

Du schmeißt hier gerade komplett das gesamte Programm an Tools in einen Haufen: Programmer, Emulatoren, Entwicklungsboards.

Der STK500 ist ein Entwicklungsboard mit Fassungen für den schnellen Prototypenbau, noch dazu ein paar LEDs und ein paar Taster drauf. Er enthält außerdem noch einen Programmer, aber das ist nicht der Hauptverwendungszweck. Die STK5xx sind Aufsteckboards, die den STK500 für AVRs erweitert haben, die ins Grundgerät mechanisch nicht mehr gepasst haben. (Mittlerweile gibt's von alldem einen Nachfolger namens STK600.)

So ein Ding kann ganz hilfreich sein (man kann sich mit ein paar Flachbandkabeln innerhalb weniger Minuten eine Demo-Applikation zusammenstöpseln), und gerade der Preis des STK500 hat ihn selbst bis in den Hobbybereich attraktiv gemacht, aber wenn man nur programmieren will, ist es komplett übers Ziel hinaus geschossen.

Als reinen Programmer hat Atmel immer nur den AVRISP vermarktet, der war noch mit RS-232 (aber nicht im Bitbang-Modus, d. h. er geht auch hinter einem USB-Adapter), später abgelöst durch AVRISPmkII mit USB. Die Dinger sind vergleichsweise preiswert, wenn auch nicht unbedingt fürs Hobbybudget. Dort haben sich stattdessen diverse Eigenbauten eingebürgert, die es auch nach wie vor tun, wenn man will.

JTAG ICE nannte sich der Emulator für die größeren ATmegas, die mit JTAG daher kommen und als erste AVRs on-chip debuggt werden können. Das Ding wurde schnell zu klein und daher durch ein JTAG ICE mkII abgelöst, das nun außer via JTAG auch noch mit debuWIRE die kleineren neuen AVRs on-chip debuggen kann. Da es relativ teuer war für Wenignutzer (zwar nicht im Vergleich zu einem "richtigen" ICE), wurde dann als lowcost-Variante der AVR Dragon aufgelegt. Der kann im Großen und Ganzen dasselbe, ist nur billiger aufgebaut (kein Gehäuse, Kabel muss man sich selbst machen, einfachere Schutzschaltung an den Pins).

Das ICE50 war nur was für Leute mit einem dicken Geldbeutel, da es die gesamte Hardware in einem FPGA implementiert hat, damit man die CPU online debuggen kann. Nachdem das Debuggen über JTAG so vergleichsweise simpel und praktikabel geworden ist, gab es für dieses teure Teil (das vermutlich nur wenige Kunden gekauft haben werden, bei denen der damit erreichbare Produkitivitätsgewinn tatsächlich den Preis wieder rausgeholt hat) keine Berechtigung mehr, sodass es nicht mehr gebaut worden ist.

Ich glaube, das teuerste, was du danvon noch übrig hättest, wäre ein altes JTAG ICE. Das war aber vergleichsweise wenig verbreitet, außerdem war es leicht zu clonen. Die Clones gab's lange noch im Hobbybereich, aber das ist mittlerweile vom Dragon verdrängt worden.

Den STK500 kannst du heute nach wie vor genauso einsetzen, wenn du vor

8 Jahren einen gekauft hast, und selbst die alten AVRISPs müssten noch gehen (die sind praktisch dasselbe wie der Programmierteil des STK500).

Mittlerweile auch schon einige Jahre.

--
cheers, J"org               .-.-.   --... ...--   -.. .  DL8DTL

http://www.sax.de/~joerg/                        NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)
Reply to
Joerg Wunsch

Am 21.04.2010 00:36, schrieb Dirk Ruth:

Zusätzlich noch zu Joerg Wunschs Antwort:

C51 ist nicht AVR.

Reply to
Heiko Lechner

Heiko Lechner schrieb:

Wobei wohl der STK500 aus hysterischen Gründen noch in der Lage war, AT89C2051 und AT89C4051 zu programmieren, aber diese Sonderlösung wurde später dann nicht mehr verfolgt.

--
cheers, J"org               .-.-.   --... ...--   -.. .  DL8DTL

http://www.sax.de/~joerg/                        NIC: JW11-RIPE
Never trust an operating system you don't have sources for. ;-)
Reply to
Joerg Wunsch

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.