PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : USB AVR Lab



christian_u
11.04.2009, 13:02
Hallo,

Einige von euch werden das Lab sicher schon kennen, es ist eine kleine günstige Hardwareplattform mit USB die als universelles Interface genutzt werden kann. Ursprünglich war Sie nur AVR-ISP Programmer mittlerweile gibt es viele Anwendungsmöglichkeiten (I2C Logger SPI Logger, RS232 Interface, Oszi, JTAG Interface u.s.w.).


Ich werde hier im Thread immer mal einige neuigkeiten / News zu den Firmwares u.s.w. bekanntgeben wenn das erwünscht ist.

http://www.ullihome.de/index.php/Hauptseite#USB_AVR-Lab

Die eigentliche Neuigkeit ist derzeit das das die Jtag Firmware und dazu
passend das Boundary scan Tool fertig gestelt sind. Damit kann man auf
jedem Jtag fähigem IC, Pins auslesen/setzen auch im laufenden Betrieb
oder ohne Firmware. Für die AVR´s sind die nötigen BSDL Files schon
enthalten.

Es gab in der jüngsten vergangenheit wieder etliche updates für das USB
AVR Lab Tool und damit verbesserete Firmwares, aktuell ist die V4.0.

Ich bin gerad dabei das Oszi zu überarbeiten, dieses wird dann
warscheinlich an die 100KS/s und verschiedene Triggermöglichkeiten
beherschen so das es schon recht nützlich sein wird. Es sid auch
Vorsätze mit weitaus höheren Samplerates geplant aber dazu später mehr.
Im selben Zug wird der Logikanalyzer fertig werden.

Auf der Softwareseite wird es bald ein nettes Tool zum
Programmieren/Fuses berechnen/setzen/lesen geben welches auch ein wenig
Hilfestellung bei den Einstellungen gibt und natürlich
Plattformübergreifend verfügbar wird.

Bei Fragen Anregungen oder nötiger Hilfestellung bin ich natürlich
wie immer per Mail/IRC oder Skype zu erreichen.

lg
Christian

oberallgeier
17.04.2009, 14:22
Hallo Christian,


... eine kleine günstige Hardwareplattform mit USB die als universelles Interface genutzt werden kann ...So könnte man es ja ausdrücken. Wenn blos nicht bei "günstig" gleich dieser Sound von "Geiz..." drin wäre und bei "klein" etwas wie "... wird schon gehen ...". Ich bin mit meinem Teil hoch zufrieden und finde es eher
DAS kompakte Flashwerkzeug mit etlichen nützlichen Varianten.

Einige Fragen habe ich zu den Firmwarevarianten.

Wozu ist es gut und sinnvoll, dass sowohl ein STK500 als auch ein AVRISPmkII aufgespielt werden können? Beide Teile verrichten doch im Prinzip die gleiche Arbeit? Gibt es für eine oder andere Variante Vorteile? Natürlich ist die Vorliebe oder Gewöhnung für die eine oder andere Arbeitsweise ein Argument - mich interessiert, ob prinzipiell mehr dahinter steckt oder stecken könnte.

Was macht man mit dem Bitbanging? Früher dachte ich dabei an etwas das ja HV heißt - und wohl mit dem Spannungspegel hier nicht gemacht werden kann. Was mache ich bitte damit?

Ist es schlimm, wenn mein USB-AVR mini als *232-Version einerseits funktioniert, andererseits das in den Dokumentationen genannte "PC-Verbindung-steht"-Signal mit der blauen LED nicht geht? (ich habe das LAB als Version avrlabtool_i386-win32-4.0.exe in Verwendung). Die leuchtet beim Anwählen des Terminals nur kurz auf . . . . (Win XP pro mit SPs).

Ja - und noch eine Frage zum I2C-Logger. Der kann ja den Datenverkehr mitschneiden. Kann man den - vielleicht mal in Zukunft - auch als Sender/Master benutzen? So als Hilfswerkzeug bei der I2C-Programmierung?

Danke für die Antworten.

christian_u
17.04.2009, 17:19
Hi,

Da muss ich wohl nochmal über die Formulierung nachdenken, wenn die so negativ klingt :)

Zu STK500 vs AVRISPmkII:
Prinzipiell machen beide das gleiche da hast du recht. De AVRISPmkII Firmware hat den Vorteil das sie einen tzck schneller sit da nicht so viel overhead wie bei der virtuellen Com Port Variante an Traffic entsteht.
Weiterhin muss man nicht extra einen Treiber installieren.
Nachteil ist das Sie ohne den LIBUsb-Filtertreiber nicht mehr so einfach in den Bootmodus versetzt werden kann und der auf einigen Systemen ein ziemliches Chaos anrichten kann hier also Vorsicht.
Weiterhin ist Sie nicht unter Vista Lauffähig da dort Low Speed Geräte nicht für Bulk Transfers erlaubt sind.
Die STK500 Firmware läuft auf XP und Vista32 und kann zudem noch als Debug-Schnittstelle genutzt werden da Sie wenn nicht gerad geflasht wird direkt als RS232 Wandler genutzt werden kann.
Hat als beides leicht Vor und Nachteile.

Die Bitnanging Firmware kann benutzt werden um z.b. Relais zu schalten oder mal schnell ein paar Schaltsignale auf dem Steckbrett zu haben oder so etwas...

Das mit der Blauen LED am Terminal ist einfach so, ich konnte bisher noch nicht eindeutig klären warum das mit dem AVR Studio funktioniert aber mit Hyperterm nicht. Seh ich im Moment auch nicht als DEN BUG an ;)

Mit dem I2C Logger kannst du bereits senden, du kannst unten in dem Eingabefeld hexadezimalwerte +

* s kennzeichnet eine Startbedingung
* p kennzeichnet eine Stoppbedingung
* n kennzeichnet ein Nack
* a kennzeichnet ein Ack

Diese Zeichen eingeben um etwas zu senden...

lg
Christian

christian_u
29.04.2009, 19:36
Hi,

Es gibt mal wieder ein paar aufregende Neuigkeiten ;)
Und zwar ist der erste Schuss des USB AVR Lab Programmers fertig.

Das ist eine Programmiersoftware die ich hauptsächlich für Einsteiger entwickelt hab, um es ihnen so einfach wie möglich zu machen die AVR´s zu brennen.

Die ISP Geschwindigleit wird dabei automatisch erkannt wenn man ein Target anschließt ebenso wie der Controller autoatisch selektiert wird (über die Device ID).
Man kann die Fuses schön übersichtlich in einem Dialog einstellen ähnlich zum AVR Studio. Auch als Fuse Calculator kann man die Software super benutzen.

Es ist geplant sg. Pachages damit speichern zu können da wird dann alles (Hex File,EEPROM File, Fuses, LockBits) in eine Datei gespeichert die man einfach mitgeben kann und alles wird richtig eingestellt. Spart Dokumentationsarbeit bei den Fuses u.s.w. das wird aber erst in den kommenden Wochen implementiert.

hütti
13.05.2009, 16:10
Ein kleiner Erfahrungsbericht meiner seits:

Ich habe mir das USB AVR-LAB bestellt um den
STK500 und den AVRISPmkII - Modus zu nutzen.
Getestet habe ich mit AVR Studio 4.16, Bascom 1.11.9.3
und AvrDude 5.5. Mit keinem der genannten Programme
war ein vollständiges flashen eines Atmels möglich.
Mal ging der eigentliche flash, dann brachten aber
die Fuse-Bits Probleme oder umgekehrt. Mit dem AVR-
Studio ging nix, nur eine Fehlermeldung bei der
Initialisierung.
Um meine Softwareinstallation zu testen habe ich mir
ein original STK500 und den original AVRISPmkII
ausgeliehen. Mit denen liefen alle Programme problemlos!
Der Fehler lag also definitiv an der Hardware.
( Firmware Version 4 )

Also habe ich mir die Hardware mal genauer angeschaut.
Es gibt eine 5V und eine 3V Version, das im Web
erhältliche Schaltbild zeigt aber einen Mix aus beiden
Versionen. Dir korrekten Bauteile muss man sich dann
anhand der Bestückungslisten zurechtfummeln.

Auf meiner Hardware war aber anstatt einer 3V6 Z-Diode
( fertig aufgebaut gekauft ) eine 3V3 aufgelötet.
Das ergibt dann eine Betriebsspannung für den Atmel
von 2V6. Da der Atmel ein L-Typ ist, sind das 0V1 unter
der Mindestanforderung. Bei einer UB von 2V7 ist der
Atmel mit einer max. Taktfrequenz von 8 MHz spezifiziert,
hier wird er aber mit 12 MHz betrieben.

Christian sagte mir dann per Mail das wäre alles schon
richtig so. Da ich aber damit nicht einverstanden war,
haben wir uns auf eine Rücksendung geeinigt ( war alles
noch innerhalb der 2 Wochen Frist ).

Zurückgesendet habe ich das gute Stück auch, nur warte
ich seit Ostern auf mein Geld. Per Mail bekommt man nur
etwas von "vergessen" erzählt.

Ich habe mal versucht es so neutral wie möglich zu
schreiben. Denkt Euch euren Teil selbst.

Gruss

Hütti


PS.
Sollte sich was tun, werde ich berichten !

oberallgeier
13.05.2009, 17:59
Hi hütti,

ich kann Deine Pannen nicht ganz bestätigen, obwohl ich zwischendurch mit dem USB-Programmer von Christian auch nicht klar kam.

Den Programmer für die Druckerschnittstelle von robotikhardware - also dieses Teil (https://www.roboternetz.de/wissen/index.php/AVR-ISP_Programmierkabel) - hatte ich ewig nicht geliefert bekommen und daher den "früheren" AVR USB Programmer - vor eineinhalb Jahren - bei Christian bestellt. Darauf kam (natürlich) der Programmer von robotikhardware. Da ich den AVR USB-Mini nicht sofort ingang bekam, hatte ich ihn zur Seite gelegt. Nach ein paar Wochen "wollte ich es wissen" - und bekam in wieder nicht an (ich war damals rechter Anfänger in µController-Technik - bin ich meist immer noch). Also Diskussionen mit Christian, ich schicke im das Teil zu und bekomme es nach einiger Zeit wieder. Wirklich ingang gesetzt hatte ich das USB-Teilchen, als ich meinen pololu-orangutan mit Mega168 nicht mit dem robotikhardware-Teil und PonyProg flashen konnte - der Controller war einfach nicht existent. Nach einigem Rumprobieren bekam ich das mit Christians USB-Teil hin. Dann kam die derzeit aktuelle Software - möglicherweise läuft das Miniteil seither absolut störungsfrei: selbstgestrickte Platinen, RNControl 1.4, der pololu-orangutan ein tiny13 auf einer selbstgebauten tiny2313-Platine (mit ein paar Drähten hingefrickelt) und mit internem Langsamtakt . . . mögicherweise war ich davor einfach zu dämlich. Die gleiche Hardware wie letztes Jahr wurde mit der aktuellen "LAB"-Firmware bestückt und läuft und läuft. Ich will das Teil heute nicht mehr missen und nutze den Programmer für die Druckerschnittstelle und PonyProg praktisch nicht mehr. Ich muss dazusagen, dass ich mit AVRStudio arbeite - da ist der USB-Programmer direkt als STK500-Clon schon sehr praktisch.

Ein Problem habe ich: auf meinem (nicht gerade Billigcomputer) ist das USB AVR Lab an der originalen Front-USB-Schnittstelle nicht immer fehlerfrei zu betreiben. Auf meiner "hinten"liegenden Zusatz-USB-Karte läuft es wirklich störungsfrei und wie geschmiert.

christian_u
13.05.2009, 18:49
Ich kopier mal meine Antwort aus dem Mikrokontroller Forum hier rein in der er diese Propaganda 4x gepostet hat. Das ist eben der dak dafür das man täglich 3 Stunden opfert und alles als OpenSource und zum Selbstkostenpreis anbietet damit die Einsteiger es möglichst einfach haben.

Das Geld hab ich dir doch, wie schon geschrieben am 5.5. überwiesen ?

Und bei jetzt knapp 300 Leuten läuft das ganze anstandslos, ich bin gern
bereit mit jedem wie dir auch etliche leute sicher bestätigen können
Fehler zu suchen und in 90% der Fälle finden sich dann Schaltungsfehler.
ich hab auch trots der etlichen Mails nicht in Erfahrung bringen können
wie diene Schaltung denn nun auschaut. Statt dessegn hast du immer
wieder angefangen die Schaltung in Frage zu stellen und mit dem
Datenblatt des Controller angefangen. Der AVR macht die 2,7V bei 12 Mhz
schon problemlos mit ich hatte jedenfalls bisher bei allen die ich
gebaut hab und was sind wie gesagt hunderte KEINE AUSFÄLLE. Da ich die
auch teste ist das Risiko das mal ein Controller nicht geht bei mir.


Also habe ich mir die Hardware mal genauer angeschaut.
Es gibt eine 5V und eine 3V Version, das im Web
erhältliche Schaltbild zeigt aber einen Mix aus beiden
Versionen. Dir korrekten Bauteile muss man sich dann
anhand der Besückungslisten zurechtfummeln.

Genau dazu sind Bestückungspläne da, zum bestücken.
Deshalb ist auch dort gekennzeichnet welche Bautele in welcher version
bestückt sind...



Auf meiner Hardware war aber anstatt einer 3V6 Z-Diode
( fertig aufgebaut gekauft ) eine 3V3 aufgelötet.
Das ergibt dann eine Betriebsspannung für den Atmel
von 2V6. Da der Atmel ein L-Typ ist, sind das 0V1 unter
der Mindestanforderung. Bei einer UB von 2V7 ist der
Atmel mit einer max. Taktfrequenz von 8 MHz spezifiziert,
hier wird er aber mit 12 MHz betrieben.


Und er wurde von mir daraufhin getestet das er genau damit läuft.
Da USB läuft was ja bei dir auch funktioniert hat ann ees also daran
schlecht liegen.

hütti
13.05.2009, 19:24
Also, heute am 12.5.09 ist immer noch kein Geld da.

Ich habe den AVR-LAB fertig aufgebaut gekauft, nicht
selber was gestrickt.

Und es ist keine Propaganda, sondern ein Erfahrungsbericht.

christian_u
13.05.2009, 19:38
http://www.mikrocontroller.net/topic/65610#new

hab keine Lust immer in 2 Foren zu schreiben, für Hütti scheint das ja normal zu sein.

thewulf00
13.05.2009, 20:34
OMG. Der Hütti hats echt drauf ... Arbeitet in einem Ingenieurbüro und kriegt nichtmal seinen Programmer zum Laufen.
Bestimmt einer der Top10-Poster bei Heise.de ...

DrJones
19.10.2010, 00:02
Ich hab mal ne Frage zum virtuellen COM-port.

Ich würde gerne (unter anderem) einen 'bare' ATmega328 wie einen Arduino mit der Arduino-IDE betreiben, halt ohne bootloader, stattdessen über einen ISP-Programmer (das kann man in der Konfig der IDE umstellen), eben den USB AVR-Lib, der demnächst bei mir eintrudeln sollte.
Was mir da dann nur noch fehlt, ist die Kommunikation mit dem PC via COM/USB - so dachte ich, doch dann habe ich von der Debug-Schnittstelle gelesen: Das scheint es zu erlauben, mit dem Target zu reden (in beide Richtungen).

Klappt das so einfach? Kann ich Arduinos Serial-Bibliothek wie sonst benutzen und auf PC-Seite einfach die serielle Schnittstelle ansprechen?
Diese Funktion gibt es in der STK500v2- aber nicht in der AVRISPmkII-Firmware?

Ich würde das Target dabei auch gleich mit Strom versorgen. Kann ich die Spannung auch auf 5V hochsetzen? Der Schaltplan legt nahe, einfach R19 zu brücken.

christian_u
19.10.2010, 08:20
Das sollte so einfach klappen.
Natürlich gibts die Funktion in der AVRISPmkII Firmware nicht, dort hat man ja keinen virtuellen Com Port.

Nein du kannst die Spannung nicht einfach ändern da USB dann nicht mehr funktioniert da USB auf den Datenleitungen mit 3,6V Pegel arbeitet.

lg
Christian

DrJones
19.10.2010, 09:38
Gibt es eine nicht allzu komplizierte Möglichkeit, das Target mit 5V laufen zu lassen und den virtuellen COM-Port zu benutzen?

Zugegebenermaßen geht es auch ohne, aber gelegentlich wärs praktisch.

oberallgeier
19.10.2010, 10:17
... eine nicht allzu komplizierte Möglichkeit ... Target mit 5V ... und ... COM-Port ...Klar. Hier ist das gemacht, (https://www.roboternetz.de/phpBB2/viewtopic.php?p=522674#522674) allerdings ist fürs Foto das Kabel zum Lab grad abgesteckt - der Wannenstecker ist unter dem Flachbandkabel. Das ist aber nur EINE der vielen Möglichkeiten. Die 500 mA vom USB zu nehmen, finde ich nicht so pfiffig . . . . . Ich fürchte, jetzt kommt Deine Antwort "ja - aber . . . . .". Aber so gehts eben zuverlässig.

DrJones
19.10.2010, 11:52
Sicherheitshalber frag ich lieber nochmal nach: Es gibt keine Probleme, das 3.3V USB AVR-Lab für COM an ein mit 5V betriebenes Target zu hängen, Tx/Rx verstehen sich ohne Levelanpassung?
(Natürlich mit offenem Target-Stromversorgungs-Jumper, nehme ich an.)

Wozu dient eigentlich der R19-Platz?

christian_u
19.10.2010, 12:13
Die einfachste und auch empfolene Möglichkeit dein target mit 5V zu benutzen ist es extern zu versorgen bei jedem anderen Programmer müsstest du das eh.
Pegelprobleme gibts nicht, wenn du dir die Funktion der IO Ports im Datenblatt etwas genauer anschaust müsstest du auch rausfinden warum ;)
R9 ist eine Alternativbestückung, die mittlerweile keine Rolle mehr spielt.

lg
Christian

avion23
19.10.2010, 13:38
@DrJones
Ja, das geht hier ohne Probleme. Die Masse nicht vergessen!

DrJones
20.10.2010, 23:04
So, mal ein kleiner Erfahrungsbericht:

Mein Steckbrett-Minimal-Arduino läuft. Ist praktisch der nackte Chip plus Oszillator. (Fuse-bits entsprechend gesetzt)

Gerade eben läuft er von den 3.0V(!) vom AVR-Lab, der mit der STK500v2-Firmware läuft. Die wiederum wird über die mitgelieferten Treiber in driver/w2k/ angesprochen.
Als IDE benutze ich Arduino 021 (auf WinXP), hinter dem letztlich WinAVR, also avr-gcc und avrdude, steckt.

Um den Arduino per AVR-Lab/ISP (statt FTDI/bootloader) zu flashen, muss man diesen nur in arduino/hardware/arduino/programmers.txt eintragen:


usbavrlab.name=USB AVR-Lab
usbavrlab.communication=serial
usbavrlab.protocol=stk500v2

... und das neue Target in boards.txt. Da hab ich einfach den Abschnitt von

atmega328.name=Arduino Duemilanove or Nano w/ ATmega328

kopiert, jedes "atmega328...." in "atmega328isp..." umbenannt und natürlich die Beschreibung angepasst. Damit der programmer benutzt wird, muss man eine Zeile mit <board>.upload.using=<programmer> (<programmer> wie in progammers.txt eingetragen) ergänzen.


atmega328isp.name=ATmega328 via USB AVR Lab

atmega328isp.upload.using=usbavrlab
atmega328isp.upload.protocol=stk500v2
atmega328isp.upload.maximum_size=30720
atmega328isp.upload.speed=57600
...Rest...

Die ISP-pins hab ich einfach mit Draht-Adern einzeln aufs Steckbrett gesteckt. (Sehr minimal halt. Ich überleg mir noch was besseres.)

Meist dauert es ~12s vom Starten des avrdude bis die Lichter ausgehen (Ich dachte erst, jetzt hat sich alles abgeschaltet, bis ich gemerkt habe, das er dabei brennt...), avrdude meldet danach einen Fehler (timeount), aber gebrannt ist es trotzdem. Manchmal geht es aber auch gleich und ohne Fehlermeldung.
(Rx/Tx besser abklemmen wenn was gesendet wird, sonst klappts auch mal gar nicht.)

BASCOM zeigt das gleiche Verhalten: Vor jeder Operation, sei es Lesen oder Schreiben, incl Fuses, kommt meist eine 12s-Denkpause, begleitet von der Fehlermeldung "STK500_2_ReceiveMessage(): timeout" - und klappt dann trotzdem. (STK500 native driver)

Dann habe ich auch noch den virtuellen COM-Port ausprobiert, erst mal nur die eine Richtung (Targets Tx -> AVRLabs Rx -> PC), and da ging zunächst nichts. Erst als ich die Rate auf 1200 Baud(!) runtergesetzt habe, kam dann endlich was an. Dummerweise nicht alles: Etwa 5% der Zeichen fehlen einfach. Hm, schade. Jemand eine Idee?