Guten Abend alle zusammen,
ich versuche mich momentan in die AVR-Mikrocontrollerwelt einzuarbeiten.
Doch scheitere ich bereits an den Anfängen und bräuchte etwas Rat.
Ich haben einen Atmega8A-PU, wie in dem Schaltplan abgebildet, auf einem
Steckbrett beschaltet. Ich hoffe dies ist für die Grundbeschaltung
soweit korrekt. Die Verbindungen habe ich alle auf Durchgang geprüft.
Als Programmer habe ich mir den uISP-Stick von eHaJo bestellt und die
erforderlichen Treiber nach den Anleitungen installiert.
(http://dokuwiki.ehajo.de/artikel:libusb-ispstick)
Ebenso habe ich die .config-Datei von avrdude unter „PROGRAMMER
DEFINITIONS“ wie folgt angepasst:
1
programmer
2
id = "ehajo-isp";
3
desc = "avr-isp-programmer from eHaJo, http://www.eHaJo.de";
4
type = "usbtiny";
5
connection_type = usb;
6
usbvid = 0x16D0;
7
usbpid = 0x0BA5;
8
;
Nun gelingt es mir leider nicht eine Verbindung zwischen dem Atmega und
dem ISP-Stick über avrdude (v 6.2) herzustellen. Die Befehlszeile für
avrdude und die dazugehörige Fehlermeldung habe ich als Bild angehangen.
Ich habe auch die Verbindungen auf dem Steckbrett überprüft und den
Aufbau nochmals neu aufgebaut. Jedoch ließ sich das Problem nicht
beheben.
Die 5V-Spannungsversorgung, welche vom ISP-Stick bereitgestellt wird,
sind auf dem Steckbrett messbar.
Nach der Suche im Internet bin ich darauf gestoßen, dass ein zu langes
USB-Kabel dieses Problem ebenfalls verursachen könnte. Aber auch ein
direkter Anschluss bzw. die Verwendung unterschiedlicher USB-Ports
brachte ebenfalls keine Abhilfe.
Ich bedanke mich im Voraus für Anregungen, Hilfe und Lösungsvorschläge.
Mit freundlichen Grüßen
Heini
Versuch mal dieses Tool hier:
https://sourceforge.net/projects/avrdude-gui/
Kannst du damit die Fuses auslesen? Falls das nicht funktioniert, helf
ich dir morgen weiter. Habe jetzt leider keine Zeit mehr...
Versuch es mal ohne C3:
Könnte sein, das der ISP-Stick den Reset nicht schnell genug aktivieren
kann, oder sich der Reset hinterher nicht schnell genug erholt.
mfG
Fall der µC gebraucht ist, dann ist er möglicherweise für den Betrieb
mit Quarz konfiguriert.
Eventuell musst du die Taktrate der ISP Kommunikation reduzieren, mit
dem Parameter -B20.
Danke für die zahlreichen und vorallem schnellen Rückmeldungen.
Mick schrieb:> Versuch mal dieses Tool hier:> https://sourceforge.net/projects/avrdude-gui/> Kannst du damit die Fuses auslesen? Falls das nicht funktioniert, helf> ich dir morgen weiter. Habe jetzt leider keine Zeit mehr...
Ich habe dieses Tool mal ausprobiert. Doch leider ließ sich dieser
Programmer damit nicht einbinden. Habe es daraufhin nochmals mitdem
AVR-Burn-O-Mat erneut versucht. Diesmal ließ sich der Programmer
einbinden jedoch erschien nach auslesen der Fuses die gleiche
Fehlermeldung wie zuvor in der Kommandozeile.
R. M. schrieb:> Versuch es mal ohne C3:> Könnte sein, das der ISP-Stick den Reset nicht schnell genug aktivieren> kann, oder sich der Reset hinterher nicht schnell genug erholt.> mfG
Auch ohne C3 wird weiterhin die Fehlermeldung ausgegeben.
Mick schrieb:> Noch was: Von wo hast du deinen ATmega? Neu, oder ausgebaut? Falls> ausgebaut, kann es sein, dass jetzt der Quartz fehlt.
Habe den Atmega8 mit dem Programmer zusammen neu bestellt.
Stefan U. schrieb:> Fall der µC gebraucht ist, dann ist er möglicherweise für den Betrieb> mit Quarz konfiguriert.>> Eventuell musst du die Taktrate der ISP Kommunikation reduzieren, mit> dem Parameter -B20.
Die Reduzierung der Taktrate spuckte eine andere Fehlermeldung aus.
(siehe Bild)
S. Landolt schrieb:> Bei der Meldung "avrdude: error: usbtiny_transmit:" hätte ich eher auf> einen Installationsfehler geschlossen.
Wie ließe sich so etwas beheben? Habe die Treiberinstallation nochmals
erneut nach der Anleitung durchgeführt und blieb leider auch erfolglos.
Nach der Fehlermeldung mit der veränderten Taktrate entnehme ich, dass
der Programmer andere Werte erhält die er erwartet. Allerdings verstehe
ich noch nicht so ganz die Zusammenhänge.
Hast du mal zusätzlich die Optionen "-v -v" probiert? Avrdude spuckt
dann mehr Infos aus, WAS schief gegangen ist. Das kann man übrigens mit
Ausgabeumleitung in eine Textdatei packen.
Bist du ganz sicher, daß alle 4 Versorgungs-Spannung Pins wie in deinem
Plan angeschlossen sind?
Ist eventuell das Kabel zwischen Programmer und µC länger als 30cm? Wenn
ja, dann mache es mal kürzer.
Ein solltest du wissen: Dieser Programm entspricht vom Hardware Aufbau
dem USBASP. Die Schaltung ist mit der heißen Nadel gestrickt und für
gewissen Unzuverlässigkeit bekannt.
Es kann durchaus sein, daß dein Programmer nicht funktioniert, obwohl er
nicht defekt ist. Kannst du einen anderen Mikrocontroller zum Vergleich
probieren?
> Die Reduzierung der Taktrate spuckte eine andere Fehlermeldung aus.
Gut, dann bleibe erstma dabei, immer den Parameter -B20 zu benutzen
solange die CLKDIV8 Fuse aktiv ist (so werden sie verkauft).
Heini schrieb:> Ebenso habe ich die .config-Datei von avrdude unter „PROGRAMMER> DEFINITIONS“ wie folgt angepasst:programmer> id = "ehajo-isp";> desc = "avr-isp-programmer from eHaJo, http://www.eHaJo.de";> type = "usbtiny";> connection_type = usb;> usbvid = 0x16D0;> usbpid = 0x0BA5;> ;
Eigentlich ist diese Änderung auch nicht notwendig, wenn man den AVRDUDE
mit "c=usbtiny" aufruft.
Ansonsten fällt mir ausser SPI-Takt runtersetzen (B=50 wurde ja schon
genannt: goße Zahl=langsamer Takt), evtl Anlegen eines externen Taktes
an PB6, für den Fall falscher Fuses, oder Austausch des µC gegen ein
anderes Exemplar nicht mehr viel ein. Habe mit dem USBTINY eigentlich
bisher gute Erfahrungen gemacht, auch wenn er etwas langsam ist.
mfG
Hallo,
den ISP - Programmer ist ein TinyUSB, der läuft bei mir mit eigenen
Aufbauten (Platinen) und den von Ehajo gelieferten Platinen wunderbar.
Ich gehe davon das, dass der Atmega auf einem Steckbrett sitzt und nicht
korrekt oder vollständig beschaltet ist.
Siehe Atmel Application Notes zu diesem Thema.
#http://www.microchip.com/wwwproducts/en/ATMEGA8A
Bisher sehen wir keinen Schaltplan oder hochauflösende Bilder von
Aufbau.
Irgendwie ist der TE verschwunden. Hoffentlich liest er noch mit.
Bis auf C3 an Reset ist die Schaltung im Prinzip erstmal korrekt. Der
ISP-STick von eHaJo funktioniert bei mir prima (genauso wie ein usbasp
übrigens) - an dem liegt es mit einiger Wahrscheinlichkeit nicht.
Der Fehler liegt ziemlich sicher in der Verdrahtung. Steckbretter sind
notorisch dafür, schlechte Kontakte zu haben. Noch eine Falle: die
durchverbundenen Kontakte für GND/Vcc sind nicht über das ganze
Steckbrett durchverbunden, sondern immer nur in 25er Gruppen!
Also, nochmal prüfen:
- liegen alle GND-Anschlüsse des µC auf GND?
- liegen Vcc und AVcc auf +5V?
- sind die Abblockkondensatoren C1 und C2 direkt an den Pins des µC
eingesteckt?
- sind die 6 ISP-Leitungen kurz und korrekt angeschlossen?
und weil der µISP-Stick ein "Bausatz" ist: sind die Lötstellen am
ISP-Stecker sauber? Ist das Kabel sicher und in der richtigen
Orientierung aufgepreßt? Steckt es richtig herum am Stick?
Noch eine Frage: wird der µC eigentlich vom µISP-Stick versorgt oder hat
er seine eigenen 5V? Falls das erste: ist der Jumper auf den zwei
separaten Pins des Sticks gesteckt?
> Steckbretter sind notorisch dafür, schlechte Kontakte zu haben.
So pauschal darf man das sicher nicht sagen, meine Erfahrung ist eine
andere: ich arbeite mit zwei sehr alten Steckbrettern ("K AND H") und
hatte damit bei Digitalschaltungen noch nie Probleme.
Hallo zusammen.
Hatte gestern leider keine Zeit zu antworten oder weiter die Sachen
auszuprobieren.
Werde mich heute Abend nochmal melden und die Lösungsvorschläge
ausprobieren.
So jetzt arbeite ich hier das mal Schritt für Schritt ab.
Jim M. schrieb:> Hast du mal zusätzlich die Optionen "-v -v" probiert? Avrdude spuckt> dann mehr Infos aus, WAS schief gegangen ist. Das kann man übrigens mit> Ausgabeumleitung in eine Textdatei packen.
Habe ich mal gemacht. Die Textdatei habe ich mal beigefügt. Lässt die
Ausgabe "avrdude: programmer operation not supported" vielleicht darauf
schließen, dass ich bei der Installation einen Fehler gemacht habe?
Stefan U. schrieb:> Bist du ganz sicher, daß alle 4 Versorgungs-Spannung Pins wie in deinem> Plan angeschlossen sind?>> Ist eventuell das Kabel zwischen Programmer und µC länger als 30cm? Wenn> ja, dann mache es mal kürzer.
Ich habe mal ein Foto von dem Steckbrettaufbau beigefügt. Das Kabel
zwischen dem µC und dem Programmer ist unter 15cm lang.
R. M. schrieb:> Heini schrieb:>> Ebenso habe ich die .config-Datei von avrdude unter „PROGRAMMER>> DEFINITIONS“ wie folgt angepasst:programmer>> id = "ehajo-isp";>> desc = "avr-isp-programmer from eHaJo, http://www.eHaJo.de";;>> type = "usbtiny";>> connection_type = usb;>> usbvid = 0x16D0;>> usbpid = 0x0BA5;>> ;>> Eigentlich ist diese Änderung auch nicht notwendig, wenn man den AVRDUDE> mit "c=usbtiny" aufruft.
Habe es mit dem anderen "c"-Parameter ebenfalls mal versucht und die
alte (nicht abgeänderte) config-Datei verwendet. Allerdings bekomme ich
da die Meldung, dass er den Programmer nicht kennt.
Karl M. schrieb:> Ich gehe davon das, dass der Atmega auf einem Steckbrett sitzt und nicht> korrekt oder vollständig beschaltet ist.
Ja genau, so habe ich es gemacht. Das Bild vom Aufbau ist im Anhang.
Wenn ich da jetzt keinen Fehler gemacht habe sollte die Beschaltung wie
in dem zuvor gezeigten Schaltplan sein (mit C3 entfernt).
Axel S. schrieb:> Der Fehler liegt ziemlich sicher in der Verdrahtung. Steckbretter sind> notorisch dafür, schlechte Kontakte zu haben. Noch eine Falle: die> durchverbundenen Kontakte für GND/Vcc sind nicht über das ganze> Steckbrett durchverbunden, sondern immer nur in 25er Gruppen!>> Also, nochmal prüfen:>> - liegen alle GND-Anschlüsse des µC auf GND?> - liegen Vcc und AVcc auf +5V?> - sind die Abblockkondensatoren C1 und C2 direkt an den Pins des µC> eingesteckt?> - sind die 6 ISP-Leitungen kurz und korrekt angeschlossen?>> und weil der µISP-Stick ein "Bausatz" ist: sind die Lötstellen am> ISP-Stecker sauber? Ist das Kabel sicher und in der richtigen> Orientierung aufgepreßt? Steckt es richtig herum am Stick?
Habe den Aufbau auch gerade nochmal neu aufgebaut und die
Steckbrettverbindungen durchgemessen. Brachte leider auch keine
Besserung mit sich.
Die Versorgungsspannung von 5V lässt sich auf dem Steckbrett messen. Am
Programmer ist das Kabel wie im Bild gezeigt angeschlossen.
Axel S. schrieb:> Noch eine Frage: wird der µC eigentlich vom µISP-Stick versorgt oder hat> er seine eigenen 5V? Falls das erste: ist der Jumper auf den zwei> separaten Pins des Sticks gesteckt?
Ja genau so war es geplant gewesen. Habe den Jumper auch aufgesteckt.
Ich habe noch einen zweiten, baugleichen, Atmega und werden diesen jetzt
nochmal ausprobieren. Melde mich später nochmal.
Vielen Dank für die viele Hilfe schon mal.
Was mir gerade noch aufgefallen ist.
Sobald ich über avrdude die Befehlszeile ausführe geht die Leuchte an
dem ISP-Stick aus und kurz danach wieder an. Dabei kommt die Tonmeldung
für "ein entferntes USB-Gerät" und anschließend die für ein "verbundes
USB-Gerät"
Heini schrieb:> Was mir gerade noch aufgefallen ist.>> Sobald ich über avrdude die Befehlszeile ausführe geht die Leuchte an> dem ISP-Stick aus und kurz danach wieder an. Dabei kommt die Tonmeldung> für "ein entferntes USB-Gerät" und anschließend die für ein "verbundes> USB-Gerät"
Wenn das passiert, ist der Lötjumper bei RST gesetzt.
In dem Bild:
http://dokuwiki.ehajo.de/_media/bausaetze:uisp-003.jpg
der Lötjumper oben, der sollte nicht verbunden sein.
vg,
Hannes J. schrieb:> Heini schrieb:>> Was mir gerade noch aufgefallen ist.>>>> Sobald ich über avrdude die Befehlszeile ausführe geht die Leuchte an>> dem ISP-Stick aus und kurz danach wieder an. Dabei kommt die Tonmeldung>> für "ein entferntes USB-Gerät" und anschließend die für ein "verbundes>> USB-Gerät">> Wenn das passiert, ist der Lötjumper bei RST gesetzt.>> In dem Bild:> http://dokuwiki.ehajo.de/_media/bausaetze:uisp-003.jpg>> der Lötjumper oben, der sollte nicht verbunden sein.>> vg,
Das ist die Lösung gewesen!
Vielen Dank dafür.
Heini schrieb:> Kurze Interessensfrage: Wofür ist dieser Jumper da ?
Der verbindet den Reset der Stiftleiste mit dem Reset des
Mikrocontrollers. Wenn der gesetzt ist, kann man den Attiny4313 über den
ISP-Stecker programmieren. So flashe ich die Bausätze vor Auslieferung.
Und nach dem flashen öffne ich den Jumper... theoretisch...