Hallo, ich habe die Platine für diesen USB Programmierer nachgebaut:
http://weigu.lu/a/pdf/MICEL_F6_Programmieradapter.pdf
Jetzt wollte ich mit einem anderen Programmiergerät den Atmega8 mit der
Firmware versehen und die bootloader.hex draufladen. Diese hat 8046
Byte, 8192 Byte sind ja eigentlich verfügbar, trotzdem kommt ein Fehler
beim draufladen:
1
Fehler: Das Setzen der Fuses wird nicht unterstützt.
2
brenne Flash, 8046 Bytes ...
3
Die verfügbare Flash-Größe reicht nicht für die zu brennenden Daten aus. Verfügbar sind 0x1800 Bytes.
Das Setzen der Fusebits geht scheinbar auch nicht. Hat jemand eine
Ahnung an was das liegen kann? Oder hat(te) sogar jemand dasselbe
Problem?
Gruß O.E.
O. E. schrieb:> mit einem anderen Programmiergerät> Oder hat(te) sogar jemand dasselbe Problem?
Dafür müßte man erstmal wissen, mit welchem Programmiergerät du es
versucht hast.
Villeicht meint deine Programmiersoftware, dass 8k = 8000 und nicht 8192
sind.
Also mal AVR Burn O Mat und avrdude saugen/installen.
Dann damit versuchen.
>achso ja klar sorry, benutzt habe ich myAVR Bootloader>- mySmartControl mit der Software myAVR ProgTool, was sonst immer>wunderbar funktioniert hat
Du versuchst scheinbar mit einem Bootloader Downloaderprogramm
deine HEX zu flashen. Du kannst aber mit einem
Bootloader keinen Bootloader flashen. Da dieser scheinbar
schon 2kB benötigt hast du nur noch 6kB frei und kannst eben
keine 8kB Hex flashen.
Wenn du deinen Bootloader flashen willst musst du das per ISP machen.
Danke für eure Antworten!
Hm okay, sorry dass ich nachfrage aber was heißt per ISP machen und wie
mache ich das? bin neu im thema mikrocontroller und kenn mich noch nicht
all zu gut aus
Okay danke, leider finde ich da nichts dazu, mit was ich das direkt
machen kann. ist mein vorhandenes board dazu irgendwie in der Lage oder
müsste ich dazu extra etwas kaufen?
und geht des mit myavr progtool oder brauch ich da dann auch noch eine
extra software? und über welchen pc-anschluss wird der Mikrocontroller
dann programmiert?
Hallo.
Ggf. seh dir doch mal:
http://matrixstorm.com/avr/tinyusbboard/
an.
Du kannst tinyUSBboard in einen USBasp-Programmierer "flashen"
(Firmware ist auf der Seite vorhanden).
Ich verwende das als mein Programmiergeraet und hatte noch keine
Probleme damit.
MfG
Danke für deine Antwort!
Also müsste ich mir nur diese kleine Schaltung aufbauen und kann damit
dann die Firmware auf den Atmega8 laden?
Wie funktioniert das Teil denn? Andere USB Programmierer brauchen einen
Bootloader und bei diesem kann man direkt über USB den Mikrocontroller
programmieren?
Was meinst du mit "Du kannst tinyUSBboard in einen USBasp-Programmierer
"flashen" "?
Gruß O.E.
Vielen Dank, habs mir mal durchgelesen.
Meine Frage ist es, ob ich mit der kleinen Schaltung die
Bootloader-Firmware auf den Atmega8 laden kann? Und wo ist zu diesem
Board der Unterschied zu z.b. dem, welches ich verlinkt hab? also dem
selbstbau-programmieradapter (nicht das myavr light board)
Hallo O.E.
Du kannst versuchen mit deiner Schaltung die Defaultfirmware zu laden
(und fuses zu setzen).
Aber das Problem schien doch zu sein, das dies nicht zuverlaessig
funktioniert?
Falls du keinen anderen Programmierer zur Hand hast, zur Not:
http://matrixstorm.com/avr/tinyusbboard/#chickenoregg
Nachdem du einmal einen ATmega erfolgreich geflasht (und gefust) hast,
brauchst du das so nie wieder zu tun.
Also dieses Board kannst du zunaechst einmal zu mehr als nur
"programmieren" einsetzen. Es kann dir als eine sehr bequeme
Steckbrettplattform dienen.
Mehr allgemein dazu: http://matrixstorm.com/avr/tinyusbboard/#advantages
Es emuliert einerseits einen USBasp um sich selbst zu programmieren
(USBaspLoader) kann aber andererseit mit einer Beispielfirmware
programmiert werden, die es in einen USBasp "verwandelt".
(Wenn man es gerade nicht als USBasp braucht, nutzt man es anderweitig
g)
Ich glaube aber der entscheidende Vorteil fuer dich ist: Es
funktioniert!
Vermutlich setzt das andere Board als Programmiere nicht auf USBasp
sondern auf irgendein serielles Protokoll. Diese kann aber mit USB 1.0
nicht zuverlaessig implementiert werden, weshalb es zu deinen
beschriebenen Instabilitaeten kommt.
Der Bootloader (https://github.com/baerwolf/USBaspLoader) ist
desweiteren voellig ueberarbeitet - die tinyUSBboard firmware
(http://matrixstorm.com/avr/tinyusbboard/bootloader/rev3_default_ger_lfx3f_hfxc0_v0x96x2.hex)
8192 Byte.
MfG
Hi
Immer wieder interessant, das man das einfache Flashen eines eines AVRs
noch weiter komplizieren kann. Weiter so. In ein paar Jahren seit ihr so
weit, das man mindestens zehn Tools basteln muss, um zu einem
funktionierenden Programmer zu kommen.
MfG Spess
Noe. Das Board reicht auch fuer die naechsten paar Jahre ;-)
Ausserdem ist "Programmer" nur eine Einsatzmoeglichkeit.
Je groesser der Chip, desto laenger dauert ISP. USB ist da einiges
schneller.
Sorry das sich fuer dich die Welt zu schnell dreht...
MfG
Hi
>Je groesser der Chip, desto laenger dauert ISP. USB ist da einiges>schneller.
Mit einem USB1-Softwaregefrickel? Mach dich nicht lächerlich. Da bin ich
mit einem STK500 noch schneller.
MfG Spess
Aber die ganze Diskussion löst nicht das "Chicken or the egg (How to get
the bootloader into the AVR)"-Problem von O.E.
Ich empfehle dir: Such jemand, der einen funktionsfähigen Programmer
besitzt, und bitte ihn dir 2 Atmega8 mit dem Bootlaoder zu "füllen"
(2Stk darum, dass du, wenn einer abraucht selbt weitere selbst
programmieren kannst.)
Hi nochmal.
Um einen Byte (8Bit) per ISP zu transferieren muessen 32 Bit aus dem SPI
kommen. (Siehe "Memory Programming")
Sagen wir mal fuer einen 16MHz getakteten IC die hoechste Rate mit der
geschrieben werden kann ist 4Mbit/sec (Sehr optimistisch).
Macht 128kbyte/sec - egal was dein UART schafft.
USB ist da schneller, weil hoehere Datenrate und direktes Schreiben...
Wenn du UART fuer deinen STK benutzt wirst du nicht viel mehr haben.
Nun habe ich das STK nie getestet - dafuer aber den Arduinobootloader
mit aehnlichem (gleichen??) Protokoll.
Das Ergebnis war: Lamgsamer, instabiler und fehleranfaelliger.
Und falls wirklich hindert dich nichts, den USBaspLoader durch einen
UART-Bootloader zu ersetzen...
MfG
Stephan, ich glaube du hast den Abschnitt "or the egg (How to get the
bootloader into the AVR)" in deinem Link nicht genau genug durchgelesen.
Besonders Ziffer 2. ;-)
isnah schrieb:> Stephan, ich glaube du hast den Abschnitt "or the egg (How to get the> bootloader into the AVR)" in deinem Link nicht genau genug durchgelesen.> Besonders Ziffer 2. ;-)
Okay, doch doch ich sehe ein. Ich habe es ja schliesslich auch
geschrieben ;-)
Danke für eure Antworten!
Stephan B. schrieb:> Du kannst versuchen mit deiner Schaltung die Defaultfirmware zu laden> (und fuses zu setzen).> Aber das Problem schien doch zu sein, das dies nicht zuverlaessig> funktioniert?
Ich denke mal das Problem ist das, wie es holger beschrieben hat:
holger schrieb:> Du versuchst scheinbar mit einem Bootloader Downloaderprogramm> deine HEX zu flashen. Du kannst aber mit einem> Bootloader keinen Bootloader flashen. Da dieser scheinbar> schon 2kB benötigt hast du nur noch 6kB frei und kannst eben> keine 8kB Hex flashen.
Meine Frage ist eigentlich nur, ob das tinyUSBboard dieses Problem dann
nicht hat?
Und was ist genau ein USBaspLoader?
Leider kenn ich auch überhaupt niemanden, der einen Programmierer hat
und mir 1 oder 2 Atmega programmieren könnte :/
Gruß O.E.
Warum nimmst du nicht den fertigen AVR ISP Programmer? Zusammen mit dem
AVR Studio ist das doch eine sichere Sache. Gerade wenn man anfängt und
niemanden hat der einem Hilft will man so viele Fehlermöglichkeiten wie
möglich ausschließen.
ansonsten ist die Frage: In welcher Region treibst du dich herum? Es
gibt mit sehr hoher Wahrscheinlichkeit in deiner Nähe jemanden, der dir
helfen kann. Wenn der aber nichts davon weiß...
O. E. schrieb:> Hallo, ich habe die Platine für diesen USB Programmierer nachgebaut:> http://weigu.lu/a/pdf/MICEL_F6_Programmieradapter.pdf
Halte ich für keine besonders glückliche Wahl. Das ist so eine
eierlegende Wollmilchsau, die alles können will und nix davon richtig.
Fang doch einfach mit einem Einzweck-ISP-Programmiergerät an.
Ich habe mir z.B. diesen gebaut: http://www.fischl.de/usbasp/
Das Henne/Ei-Problem ist relativ einfach aus der Welt zu schaffen, wenn
man einen Computer mit Parallelport hat. Dann baut man einmalig einen
Minimalprogrammierer SP12 a'la http://www.rowalt.de/mc/avr/progd.htm
Zum Programmieren geht dann jedes Tool, das SP12 unterstützt. Ich würde
hier gleich AVRDUDE empfehlen.
> Jetzt wollte ich mit einem anderen Programmiergerät den Atmega8 mit der> Firmware versehen und die bootloader.hex draufladen. Diese hat 8046> Byte, 8192 Byte sind ja eigentlich verfügbar, trotzdem kommt ein Fehler> beim draufladen:>>
1
Fehler: Das Setzen der Fuses wird nicht unterstützt.
2
> brenne Flash, 8046 Bytes ...
3
> Die verfügbare Flash-Größe reicht nicht für die zu brennenden Daten aus.
4
> Verfügbar sind 0x1800 Bytes.
...
> benutzt habe ich myAVR Bootloader> - mySmartControl mit der Software myAVR ProgTool, was sonst immer> wunderbar funktioniert hat
Tja. Blöderweise ist dieses Board kein ISP-Programmer, sondern setzt
einen Bootloader im zu programmierenden µC voraus (Henne/Ei läßt
grüßen). Und weil der Bootloader selber auch Platz braucht
(hier anscheinend 0x800 = 2K Bytes) paßt kein Programm größer als
0x1800 = 6K mehr rein.
Das von dir zu ladende Programm bringt aber seinen eigenen Bootloader
mit. Und da der Bootloader natürlich nicht überschrieben werden darf,
während er gerade läuft, bist du so oder so aufgeschmissen.
Persönlich empfinde ich diese Bootloader als Seuche. Vor allem weil es
so viele davon gibt und jeder sein eigenes Süppchen kocht: welche
Schnittstelle er verwendet, welches Protokoll und damit welche Software
man auf der PC-Seite braucht. Daß man dann nur einen Teil des Flashs
benutzen kann und oftmals auch Pins reservieren muß, kommt als
Sahnehäubchen noch oben drauf.
> Das Setzen der Fusebits geht scheinbar auch nicht.
Das könnte beabsichtigt sein. Schließlich steht in den Fuses auch die
Größe des Bootloaders drin. Und wenn du das ändern könntest, könntest du
deine myAVR Spielwiese karpott machen.
Ich sehe im wesentlichen drei Möglichkeiten, wie du weitermachen kannst
1. du siehst zu, daß du einen SP12 "Notprogrammierer" zusammenkriegst
und flashst dir so deinen ersten USB-Programmierer selber. Da deine
Hardware fast identisch zum USBasp ist, kannst du auch von USB-Lab auf
USBasp umorientieren.
2. du suchst dir jemand der dir einen ATmega8 programmiert. Das gibts
auch preiswert kommerziell, z.B.
http://www.ehajo.de/Dienstleistungen/Programmierung-Mikrocontroller
(das sind EUR 1,55 für einen ATmega8A und EUR 0,60 für das Programmieren
- finde ich unverschämt preiswert)
3. du kaufst einen fertigen Programmer oder einen Bausatz mit
vorprogrammiertem µC. Preiswert und wirklich gut ist z.B.
http://www.ehajo.de/%25-Schnaeppchen-%25/AVR-ISP-Stick
PS: falls das gerade wie Werbung rüberkam: ich bin mit dem Betreiber
weder verschwägert noch bekomme ich Prozente. Ich habe aber erst
kürzlich was bei ihm bestellt - u.a. einen ISP-Stick als Zweitprogrammer
- und finde sein Angebot wirklich überzeugend.
PPS: die USBasp Firmware ist gerade mal 4K groß. Prinzipiell müßtest du
die mit myAVR in einen ATmega8 reinbekommen (in dem sich natürlich
vorher der myAVR Bootloader befinden muß). Das wäre dann ein 4. Weg.
XL
Nachtrag:
Axel Schwenke schrieb:>> Das Setzen der Fusebits geht scheinbar auch nicht.>> Das könnte beabsichtigt sein.
Tatsächlich geht das gar nicht anders. Aus einem laufenden Programm
heraus (ein Bootloader ist ein solches) kann man die Fuses gar nicht
setzen.
> PPS: die USBasp Firmware ist gerade mal 4K groß. Prinzipiell müßtest du> die mit myAVR in einen ATmega8 reinbekommen (in dem sich natürlich> vorher der myAVR Bootloader befinden muß). Das wäre dann ein 4. Weg.
Das fällt dann vermutlich flach. Du könntest zwar die USBasp Firmware
flashen, aber wenn die Fuses nicht zufällig schon kompatibel gesetzt
sein sollten (im wesentlichen für einen externen Quarz mit 12MHz) dann
wird es nicht funktionieren.
XL
O. E. schrieb:> Meine Frage ist eigentlich nur, ob das tinyUSBboard dieses Problem dann> nicht hat?> Und was ist genau ein USBaspLoader?
Also ein Feature, was meines Wissens kein anderes Bootloader-Board
bietet:
Die Bootloadersektion bleibt austauschbar ("bootloader section
update-/exchangeable without any further programming device needed")
und der Schutz vor versehentlichen Ueberschreiben wird von der Software
anstatt von den Lockbits uebernommen.
Um deinem Leiden ein Ende zu setzen, hier mein Angebot:
Wenn du in Deutschland einen Briefkasten haben solltest und mir einen
(1) Euro fuer die Warensendungbriefmarke ueberweist sende ich dir nen
Bausatz mit vorprogrammierten Rev.3 Chip.
Alernativ kannst du mir auch die Briefmarke per Post senden - halte ich
aber fuer Overhead...
MfG Stephan
Achso, Nachtrag: USBaspLoader ist der standardmaessig installierte
Bootloader: https://github.com/baerwolf/USBaspLoader
Es gibt aber bereits auch firmwares fuer BootloadHID und AVRUSBBoot.
USBaspLoader erlaubt dir, dass du immer wieder bequem per USB Interface
die auf dem Board installierte firmware auswechseln kannst.
Ggf. les dich mal bissel intensiver durch die Seite...
Nochmals vielen Dank für eure wirklich ausführlichen Antworten!
Axel Schwenke schrieb:> Ich sehe im wesentlichen drei Möglichkeiten, wie du weitermachen kannst
Ja ich überleg mir nochmal wie ich weitermache, will das USB-Lab aber
auf jeden Fall irgendwann zu Ende bringen, da ich schon mit dem Löten
begonnen und auch fast fertig bin. Es wurde mir empfohlen und habe
eigentlich auch nur gutes darüber gehört. Notfalls lass ich mir den
Atmega einfach programmieren, 2,15€ für einen programmierten Atmega8
ist ja nun wirklich nicht viel.
@Stephan B.:
danke, ich werd mich auf jeden Fall intensiver damit beschäftigen, ich
will ja auch etwas dazulernen.
Und danke für dein Angebot. Was genau ist das denn für ein Bausatz?
Gruß O.E.
O. E. schrieb:> Was genau ist das denn für ein Bausatz?http://matrixstorm.com/avr/tinyusbboard/#components
Das Set enthält in einem Zipbeutel:
1x grob vorgeschnittene (halbierte 5cm x 7cm) (Prototyp-)Leiterplatte (8
x 24 lötbare Punkte à 0.1")
(Die Platine bedarf weiterer "Beschneidung"/"Bearbeitung" damit
USB-Stecker eingesetzt werden kann)
1x vorprogrammierter (und "vorgefuster") ATmega8-16PU
1x USB-Stecker (Typ A)
1x Widerstand 1.5kOhm
2x Zenerdiode 3.6V (1N4729)
2x Widerstand 68Ohm (1/6W)
1x Quarz 16MHz
2x Keramikkondensator 18pF
1x Pinleiste 14Pins
1x Pinleiste 3Pins
2x Pinleiste 4Pins
2x Taster (tactile push button)
4x LED 3mm rot
1x LED 3mm grün
5x Widerstand 1kOhm (1/6W)
2x rund 13cm Kabel
zusätzlich:
1x Keramikkondensator 1uF
Uwe schrieb:> Diese Software (ponyprog) löst dein Henne-Ei Problem mit der> nachstehenden Schaltung:> http://www.lancos.com/prog.html
Danke! Diese oder eine ähnliche Schaltung habe ich auch schon gefunden,
allerdings bräuchte ich da ja einen Parallelport am PC...
Gruß O.E.
Lesen ist eine Kunst. In Uwes Anhang steht doch "Serial-Port", aber ich
vermute du hast nur USB zur verfügung. Darum der gute Rat, probier schon
gar nicht den Programmer über einen USB-Serial-Converter zu betreiben -
Es wird mit 90%-er Sicherheit scheitern.
Sorry hatte mich verschrieben, meinte natürlich die serielle
Schnittstelle, die ich aber leider auch nicht habe, wie du richtig
vermutet hast.
Ja ich hab auch schon gelesen, dass man davon die Finger lassen sollte.
Stephan B. schrieb:> Um deinem Leiden ein Ende zu setzen, hier mein Angebot:>> Wenn du in Deutschland einen Briefkasten haben solltest und mir einen> (1) Euro fuer die Warensendungbriefmarke ueberweist sende ich dir nen> Bausatz mit vorprogrammierten Rev.3 Chip.
--> O. E.
Warum nimmst du Stephans Angebot nicht an? Das ist doch eine super
Sache!
Mit einem eigenen Programmer hast du nachher alle Freiheiten.
Wenn du mir deine Adresse zukommen lässt, schick ich dir gern auch einen
Programmer. Der ist dann nicht so komfortabel wie der von Stephan, aber
sonst läuft dieser Thread ja ewig. ;-)
Markus
@Markus Weber: ich habe sein Angebot angenommen. Danke auch für dein
Angebot ;)
@Stephan B.: Vielen Dank! die Überweisung wurde gestern früh getätigt.
;)
Gruß O.E.