Hi Leute,
ich habe bisher keine Lösung gefunden. Daher hoffe ich dass ihr mir
helfen könnt.
Und zwar möchte ich einen ATmega16 mit meinem avrisp-mkII programmieren.
Dazu verwende ich auf Ubuntu avrdude. Wenn ich den Controller
programmiere, dann wird der erste Lesezyklus erfolgreich ausgeführt
(auch eine wohl passende Signatur wird erkannt), das schreiben
funktioniert aber nicht. Die Anzeige steht eine Weile auf 0% und dann
taucht die Nachricht "stk500v2_recv_mk2: error in USB receive" auf.
Bei LEDs des Programmers sind grün und auch die libusb ist installiert.
Kann damit jemand was anfangen?
Vielen Dank im Voraus
David
Mit welchen Parametern hast du avrdude aufgerufen?
Hast du eine Stromversorgung angeschlossen?
Hast du root Rechte oder eine udev Rule hinzugefügt, damit andere User
das Gerät benutzen dürfen?
Kannst du wenigstens die Versorgungsspannung des Targets auslesen?
Mit wie viel Mhz wird der µC getaktet und welche Taktfrequenz hast am
Programmer mit avrdude (Parameter -B) eingestellt?
Wer schon die Antworten zwischen den Zeilen erkennt, darf sie behalten.
Stefanus F. schrieb:> Mit welchen Parametern hast du avrdude aufgerufen?> Hast du eine Stromversorgung angeschlossen?> Hast du root Rechte oder eine udev Rule hinzugefügt, damit andere User> das Gerät benutzen dürfen?> Kannst du wenigstens die Versorgungsspannung des Targets auslesen?> Mit wie viel Mhz wird der µC getaktet und welche Taktfrequenz hast am> Programmer mit avrdude (Parameter -B) eingestellt?
Die Aufrufparameter sind oben zu sehen.
externe Spannung ist da. Das dürften die Vtarget mit 5.1V sein.
Die udev-rule hab ich nicht angelegt. Da der Programmer ja anscheinend
lesen darf wird es nicht daran liegen, dachte ich mir.
Der uC wird mit den Default-gesetzten, internen 1 MHz getaktet. Die
Taktfrequenz des Programmers kenn ich ehrlich gesagt nicht. Habe da aber
nie was dran gemacht, deswegen dürften das auch die
Default-Einstellungen sein.
> Die Aufrufparameter sind oben zu sehen.
Oh, dieser Beitrag war noch nicht da, als ich geschrieben hatte.
> Der uC wird mit den Default-gesetzten, internen 1 MHz getaktet.
Dann brauchst du den Parameter -B16. Wenn du die Fuses auf 8Mhz oder
mehr umgestellt hast, geht es auch ohne -B.
> Die Taktfrequenz des Programmers kenn ich ehrlich gesagt nicht.
Den Standard Wert weiß ich auch nicht, ist auf jeden Fall mehr als der
µC bei 1Mhz schafft.
help schrieb:> Stefanus F. schrieb:>> Mit welchen Parametern hast du avrdude aufgerufen?>> Hast du eine Stromversorgung angeschlossen?>> Hast du root Rechte oder eine udev Rule hinzugefügt, damit andere User>> das Gerät benutzen dürfen?>> Kannst du wenigstens die Versorgungsspannung des Targets auslesen?>> Mit wie viel Mhz wird der µC getaktet und welche Taktfrequenz hast am>> Programmer mit avrdude (Parameter -B) eingestellt?>> Die Aufrufparameter sind oben zu sehen.> externe Spannung ist da. Das dürften die Vtarget mit 5.1V sein.> Die udev-rule hab ich nicht angelegt. Da der Programmer ja anscheinend> lesen darf wird es nicht daran liegen, dachte ich mir.> Der uC wird mit den Default-gesetzten, internen 1 MHz getaktet. Die> Taktfrequenz des Programmers kenn ich ehrlich gesagt nicht. Habe da aber> nie was dran gemacht, deswegen dürften das auch die> Default-Einstellungen sein.
Hallo, dann schaue dir bitte die Parameter von avrdude an, bei F_CPU = 1
MHz darf der ISP Takte <= 250 kHz sein.
Somit sind "-B 10" [µs] ausreichend langsam.
Stefanus F. schrieb:>> Der uC wird mit den Default-gesetzten, internen 1 MHz getaktet.>> Dann brauchst du den Parameter -B16. Wenn du die Fuses auf 8Mhz oder> mehr umgestellt hast, geht es auch ohne -B.
Ich werd verrückt. Das war die Lösung!
Stefano ich Danke dir vielmals.
Kann ich diesen Beitrag auf "Solved" setzen für die Nachwelt?
Karl M. schrieb:> Hallo, dann schaue dir bitte die Parameter von avrdude an, bei F_CPU = 1> MHz darf der ISP Takte <= 250 kHz sein.> Somit sind "-B 10" [µs] ausreichend langsam.
Die 10 µs tauchen dann auch hier bei der Ausgabe unter "SCK period : inf
us" auf.
Hallo Stefanus ,
Stefanus F. schrieb:> Die 10 ergeben hier nur zufällig 10µS. Dieser Parameter hat keine> 1:1> Beziehung zu den µS. Schau mal in die Anleitung von avrdude.
Ich beziehe mich auf diese Anleitung und habe den Parameter auch auf
anderen Programmieradapter, wie den AVRISP-MKII Clone, übertragen:
https://www.nongnu.org/avrdude/user-manual/avrdude_4.html
-----------------------------
B bitclock
-----------------------------
Specify the bit clock period for the JTAG interface or the ISP clock
(JTAG ICE only). The value is a floating-point number in microseconds.
The default value of the JTAG ICE results in about 1 microsecond bit
clock period, suitable for target MCUs running at 4 MHz clock and above.
Unlike certain parameters in the STK500, the JTAG ICE resets all its
parameters to default values when the programming software signs off
from the ICE, so for MCUs running at lower clock speeds, this parameter
must be specified on the command-line. It can also be set in the
configuration file by using the ’default_bitclock’ keyword.
-----------------------------
Ich will ja immer noch etwas lernen, wie ist der Parameter in deinen
Augen zu verstehen?
Vielleicht hat sich das inzwischen Geändert. Es war mal so, dass kleine
Zahlen kleine Änderungen bewirkten und je größer die Zahl wurde, umso
größer die Schrittweite.
Wie dem auch sei, ich benutze einfach immer -B16 und komme damit prima
klar.
Hallo Stefanus ,
unsere Antworten hatten sich uber schnitten und beide liefern eine
Lösung.
Damit ist dem TO geholfen.
Stefanus F. schrieb:> Wie dem auch sei, ich benutze einfach immer -B16 und komme damit prima> klar.
..thumbs up..