Hi Junx! Ich habe schon im ganzen Forum nach der Lösung gesucht aber nur quasi nützliches gefunden: "USB-ISP ist zu lahm!", "Parallel und Seriell ist sowieso besser" usw. Aber jetzt meine Frage dazu: wieso soll das nicht gehen? Ich bin zwar bestimmt noch ein Newbie aber wieso soll es nicht möglich sein einen ISP selbst zu bauen, der erstens einwandfrei über USB funktioniert(jetzt bitte nicht mit "ist zu lahm" ankommen ;-) ) und über das AVR Proggi zu bedienen ist? So wie hier: <a href="http://www.e-lab.de/programmer/isp.html">www.e-lab.de/programmer/isp.html</a> Und zu guter letzt den ISP auch mobil, also ohne rechner u.ä. benutzen kann. Das wäre doch mal eine schöne Sache, oder? Da ich eine Lappi nur mit USB schnittstelle habe würde ich mich riesig freuen wenn jemand was dazu weiß! VIELEN DANK JUNX! mfg, shoXy
Hi ein Stück Hardware das das können soll hab ich bereits hier (siehe Anhang) USB-Bootloader und ein erster Synchronisationstest mit AVRDude (STK500 Protokoll) wurde ebenfalls erfolgreich abgeschlossen. Mal sehen wann ich dazu komme etwas mehr daran zu machen. Die Unbestücken Bauteile sind I2C-EEPROM's, Leuchtdioden und Widerstände die ich z.Z. nicht brauche. Eine Version ohne LCD mit nur noch einem Viertel der Größe ist als Eagle-Layout ebenfalls vorhanden. Matthias
Der original ATMEL ISP (AVRISP) funktioniert hier bisher problemlos mit dem USB->seriell-Adapter von Reichelt. Kost' zusammen ca. 45 EUR. Zwar kein "offline-Programmer" (also noch ein Punkt auf der Wunschliste offen) aber dafuer laeuft auf dem eigentlichen Programmer die original ATMEL-Firmware mit Unterstuetzung seitens AVR-Studio fuer jeden "low-voltage-seriell-programming" tauglichen AVR. Hab' keine Geschwindigkeit ausgemessen aber mir ist's schnell genug...
Hi! Danke erstmal! @mthomas: Habe ein USB to Seriell Adapter , aber der läuft bei mir mit allen möglichen ISP-Eigenbauten sowas von langsam ... einfach unglaublich. Außerdem würde ich gerne nur ein Teil haben, also USB to ISP-Adapter to uC. Aber ich werd mir den vielleicht doch mal bestellen, wahrscheinlich ist mit meinem Glück mein Adapter mist! ;-) Vielen Dank! @Matthias: Hört sich echt nicht schlecht an. Hast du noch mehr infos dazu? Wäre auf jedenfall super. Läuft das nur mit Bootloader oder auch mit dem AVR Studio? Auf jedenfallvielen Dank schonmal! mfg, shoXy
Hi der Bootloader dient nur dem Softwareupdate. Das Teil soll mal komplett im AVRStudio funktionieren. Im Moment wird es aber nur als STK500 erkannt. Mehr nicht. Matthias
Nur nicht das Rad wieder neu erfinden (und dann nicht regelmässig die neuen AVR-Controller einbinden)! Einfach den ISP von Atmel nehmen (für 39,- von reichelt) und den USB-Seriell-Wandler von reichelt dazu (13,-!!!). Das läuft astrein. STK500 plus den benannten Adapter ist sogar noch schneller. Und wenn man den USB-Adapter an den freien Com-Port des STK500 anschliesst, dann kann ich OHNE Probleme auch sensationalles 230kbps erreichen und damit den AD-Wandler des AVR maximal ausreizen (und mir ein supersimples, superbilliges gar net sooo schlechtes Oszi mal eben "basteln" bzw. zusammenstöpseln). cu joern
Das klingt ja nicht schlecht, was du da schreibst. Womit programmierst du den Atmel denn (avrdude, Ponyprog, ...)? Welche Einstellungen müssen dort vorgenommen werden, damit die Programmierdaten über die USB-Schnittstelle laufen? Gruss, Alex
Hi @Joern Warum denn nicht mal das Rad neu erfinden? :-) Anhand einer (eher unvollständigen) Spezifikation und ein paar Programmen ein bischen Reverse Engeneering zu betreiben kann durchaus interessant sein. Eine Bitte hätte ich an dich. Könntest du mal testen wie sich avrdude bei dir im Terminalmode verhält wenn du dein AVRisp über den USB betreibst? Mein "Imitat" benötigt eine mittlere Ewigkeit um ein paar hundert Byte aus dem Flash auzulesen. Ich würde mal vermuten das an avrdude liegt da dieses für jedes Byte ein Kommando absetzt was natürlich nicht sehr effektiv ist und beim USB erst so richtig für Probleme sorgen dürfte. Matthias
Wie nennt sich das beim FTDI noch, PingPong-Mode oder so - diesen sollte man tunlichst lassen, wenn man nicht den ganzen Tag Zeit hat. @Alex: ganz normal AVRStudio, STK500-Programmer dort anklicken (be STK500, also auch bei ATAVRISP) AVR-Dude habe ich hier noch nicht getestet, aber in der Uni nehme ich den (ebenfalls über das USB-Interface) für meinen Bootloader im ATmega8. Der AVRProg scheint mir aber ein wenig schneller zu sein, nur habe ich dort keine Lust herumzuklicken, sondern mache einfach "make program", was mit avrdude toll läuft. cu joern
@matthias: was ist terminalmode? gib besser gleich die parameter mit, dann teste ich es mal vielleicht
Hi Junx! Danke erstmal für die vielen Antworten! @"Warum das Rad neu erfinden?!": Natürlich wollen wir das Rad nicht neu erfinden, es wäre nur sinnvoll es zu verbessern. Beispiel Rad: Es gibt hunderte von Ingenieuren die Reifen immer wieder verbessern, also warum soll das auch nicht mit einem ISP gehen? Ist das sogut wie das wichtigste für Alle die mit Microcontrollern umgehen.(wie eben das Rad bei der Fortbewegung). Nochmal, was unglaublich super wäre ;-) : - "Ein" einziger ISP-Adapter, nicht USB to SERIELL usw. - einwandfreie lauffähigkeit über USB - gegebenenfalls offline-Programmierung (Mobiler ISP) mfg, shoXy
Hi @Joern Mein Programmer nutzt natürlich keinen BitBang-Modus des FTDI sondern nutzt diesen nur als Vermittlungsstelle zum ATMega8 im Programmer. AVRDude Befehlszeile: avrdude -p ATMEGA8 -c STK500 -P COM3 -t (Port und Device evtl. anpassen) Dann kommst du in den Terminalmode. Dann: dump flash 0 1000 Damit ließt du die ersten 1000 Bytes aus dem Flash auf den Bildschirm. Das dauert hier etwa 15s. @shoXy Zumindest die ersten Punkte kann ich bereits erfüllen. Für den dritten Punkt ist die Hardware vorbereitet. Matthias
Hiho! @ Matthias: Hast du eine Bauanleitung, Schaltplan o.ä. ...oder wo man den ISP beziehen kann? Auf den 3. Punkt kann man nämlich glaub ich erstmal verzichten, aber wenn der wirklich einwandfrei und zügig mit dem USB anschluss funktioniert dann ... PERFEKT ... danach hab ich gesucht! Danke! Bin zwar nur Noobie aber ich würde mich gerne bereiterklären dann solch einen adapter mit gehäuse zu konstruieren und Bauanleitung und reichelt stückliste zu erstellen. Ich denk nämlich dass das "Hab nur USB" Problem haben viele. @ Joern: Hast du das Datenblatt von deinem USB to Seriell, welchen IC oder Dioden-Schaltung? würde nämlich mal gerne wissen warum der läuft. Meiner läuft nämlich überhaupt nicht. Vielen Dank nochmal junx! Super Beiträge hier! mfg, shoXy
Hi Schaltplan habe ich natürlich. Wenn ernsthaft Interesse besteht könnte ich mal einen Satz Platinen machen lassen (dann ohne Display -> kleiner). Lohnt aber wohl erst ab 10 Stück aufwärts. Ich würde mal vermuten das du einen "dummen" Adapter für die Serielle Schnittstelle hast. Dann arbeitet das Programm das den AVR programmiert mit den Statusleitungen was direkten Zugriff auf den Port erfordert oder über USB schnarchlangsam ist. Mit einem AVRisp wird wohl auch deine USB2RS232 funktionieren. Matthias
was kann dein programmer denn so und wofür verwendest du das lcd? wieviel würde das denn so alles zusammen kosten? platine + bauteile ungefähr. ich hab auf jeden fall interesse!
Hi die Hardware ist etwas universeller ausgelegt als eigentlich nötig da damit noch mindestens zwei andere Projekte realisiert werden. Deshalb das LCD und die Tasten. Ich habe kein PC-Programm geschrieben. Da existieren genug. Ich implementiere das STK500 Protokoll. Damit ist dann der Programmer sowohl mit dem AVRStudio als auch mit AVRDude und uisp kompatibel. Platine und Bauteile sollten zusammen so auf max. 25 kommen wenn wir 10 Stück zusammen bekommen. Dann allerdings ohne LCD. Matthias
Also ich habe das gerade mal das mit dem Terminalmode ausprobiert (neustes winavr und neuste firmware stk500 und USB-seriell-wandler von reichelt mit sipex chip oder so (nicht ftdi, sondern billig)). Also das "dump 0 1000" dauert etwa 2 1/2 sekunden mit dem USB-Wandler. Genauso schnell, wie über die normale serielle. Das Gehäuse ist zwar ein bischen durchsichtig (blau), aber man kann nicht viel erkennen, öffnen ist unmöglich, da alles in dem blauen Gummi eingespritzt ist. Den Chip gibt es wohl auch eher in Japan, als hier. Ist mehr eine Preiswertkopie des FTDI - läuft aber gut. Es gibt aber massenweise FTDI-Bauanleitungen im Netz (auch mit Schaltplan). Oder in die tausenden ELV-Projekte (ELV-Journal -> Bücherei) gucken, die bauen den FTDI derzeit fast überall ein (Ladegeräte, Thermometer, ...). Schaltpläne sind auch auf der FTDI Website zu finden. cu joern
Oder auch bei ELV im Shop sind Bauanleitungen zum kostenlosen download: 68-560-11 68-567-32 Sind z.B. zwei Geräte, die den FTDI245 oder den FTDI232 benutzen. Einfach Nummer in Shop tippen. cu joern
Mir fällt noch was an deinem Board auf, wo ist die USB-Buchse? Sie sollte direkt in der Nähe des FTDI sein und nicht weit weg oder per Fädeldraht verbunden. Vielleicht ist dein Layout einfach wenig optimal und du (bzw. der FTDI) kämpft mit Fehlern in der Übertragung? USB ist immer etwas empfindlich in solchen Dingen und erfordert ein gutes Layout (Masseschleifen, Groundplane, usw). Am besten sich nach einem funktionierenden Layout richten. In der Uni habe ich übrigends auch keinen Geschwindigkietsunterschied (bei Einstellung "-p avr910" und einem Bootloader) zwischen seriell und USB feststellen können, obwohl (!) avrdude dämlicherweise die Words einzeln schreibt, anstelle von pages, wie es Avrprog tut. cu joern
Hi Es liegt garnatiert nicht am Layout bzw. an der Hardware. Das funktioniert. Über den FTDI bekomm ich eine Netto-Dauertransferrate von etwa 6MBit (lesend als auch schreibend). Das dürfte der USB bei Fehlern wohl kaum schaffen. Das Problem sind (bzw. waren) die 15ms Verzögerung zwischen zwei einzelnen Paketen. Das der USB da von der Protokolleben bereits ein Problem hat ist mir klar allerdings sind (waren) 15s deutlich zuviel. Mit etwa 2ms hätte ich gerechnet, was je dann auch etwa auf deine gemessenen 2,5s rausläuft. Wie ich jetzt herausgefunden habe kann man im Treiber einen sog. "Latency Timer" umstellen. Dieser steht standardmäßig auf 15ms (die Zeit kommt mir irgendwie bekannt vor :-) Stellt ich die auf 1ms um dauert ein "dump flash 0 1000" noch etwa 1,5s. Das hätte ich auch mal so erwartet. Matthias
Hi Für alle neuen Leser dieses Threads: Es geht um einen AVR-Programmierer der seine Daten über den USB erhält. Hardware: http://www.mikrocontroller.net/attachment.php/93508/USBisp.jpg ich bin jetzt so weit das das STK500 Protokoll fast komplett implementiert ist. Programmieren (Flash und EEPROM) diverser Chips (Mega8, Mega16, 90S2313, 90S8515, Mega8515) funktioniert mit dem AVRStudio und avrdude. Ebenso setzen und lesen von Fuse und Lockbits. Zum Zeitverhalten: Für ein Write/Verify eines ATmega benötigt mein USBisp etwa 4 Sekunden. Der original AVRisp von Atmel benötig etwa 18s. Der Fairness halber muß ich noch erwähnen das der Vorteil bei 90S-AVR's und beim EEPROM programmieren lange nicht so groß ist (dort etwa 10%) Jetzt suche ich einen Betatester. Natürlich sollte es jemand sein der sich in der Materie etwas auskennt und auch nicht nur einen AVR zuhause hat. Als Entlohnung würde ich eine Platine stiften. Es sind noch keine Bauteile drauf. Also heißt es selber bestücken. Wer Interesse hat einfach hier melden. Matthias
Hallo, habe mir jetzt vieles zu AVR-programmierung über USB durchgelesen und bin teilweise etwas verwirrt. Als ich kann nun mit einem FT-chip einen adapter bauen, mit dem ich (ohne stk) einen mega programmieren kann!!?? nur, wie schnell und einfach (direkt mit avr-studio oder yaap) geht das nun. habe mal irgendwas von 15 minuten gelesen, dann wieder von doppelt solang als seriell, dann wieder viel schneller. was muss ich denn anders machen, wenn ich isp programmieren will? (um einfach mit einem jumper zwisachen isp und normalbetrieb umstellen zu können) mfg Kai
du kannst auch ohne ftdt chip einen adapter bauen um einen mega zu flashen. vielliehct solltest du etwas mehr zu isp bei avr's allgemein durchlesen. der ftdi chip ist nur eine transparente rs232 brücke über usb. daran kann ein ganz normaler serieller programmer gehangen werden der nicht mitbekommt, dass er jetzt über usb läuft. am pc wird eine serielle schnittstelle simuliert, so dass jedes programm benutzt werden kann, dass auch mit einem seriellen programmer verwendet werden kann (z.b avr studio oder yapp)
möchte schon über usb isp programmieren (notebook ohne serielle schnittstelle) habe halt nur oft gelesen, dass es sehr langsam seinen soll
Wenn du aus Interesse und Spass am Basteln einen USB <-> RS232 Konverter bauen willst, geht das einfach mit dem FT232BM. Die Bremse dabei ist weniger der FTDI Chip, sonder eher der RS232 Levelshifter. Aber auch hier gibt es schnellere Chips (z.B. Sipex). Brauchst du den Konverter nur zum Arbeiten und der Bau interessiert dich weniger, dann kauf dir einen günstigen bei Reichelt. Mit Selbstbau wirst du nicht günstiger wegkommen.
das geschwindigkeitsproblem liegt nich direkt an der usb verbindung mehr an dem protokoll, dass der programmer und der pc benutzen. usb braucht durch den ganzen protokollkram länger bis was ankommt und wenn der pc nach jedem gesendeten byte auf eine bestätigung vom programmer wartet wird die verbindung sehr langsam. bei protokollen die immer gleich einen ganzen block rüberschicken und dann auf eine bestätigung warten hat man das problem nicht. bin mir bloss im mom nicht sicher welcher programmer welches der beiden verfahren benutzt. ich glaub das stk500 protokoll war das blockorientierte
erstmal möchte ich einfach meinen avrs über usb programmieren wie geht dass am schnellsten
fertig usb<-->rs232 konverter z.b von reichelt + normaler serieller programmer, z.b eigenbau oder der original atmel programmer (gibts auch bei reichelt). zusammenstecken und fertig
Hallo Matthias Kannst du mir mal bitte das Datenblatt für das STK500-Protokoll posten? Ich suche bereits danach. Danke Tschüss Martin
Danke, werde es mal mit nem adapter versuchen.nur welche modifikationen sind noch nötig, damit er "Schnell" läuft?
Hallo Matthias! Habe mir die Datenblätter runtergeladen und schon etwas angeschaut. Eine Frage habe ich jedoch. Das AVR-Studio fragt zu Beginn verschiedene Parameter ab: z.B. Parm_STK_HW_VER - Das Programmiergerät muss mit einen Wert (Value) antworten. Welchen Wert muss hier das Programmiergerät zurückschicken. oder z.B. bei Parm_STK_SW_MAJOR Danke für deine Hilfe. Tschüss Martin
Hi HW_VER ist AFAIK egal. SW_MINOR 0x05 SW_MAJORR 0x01 Matthias
Hallo Woher hast du diese beiden Werte, ich finde sie nicht im Datenblatt. Danke Tschüss.
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.