Hallo, Hab mir nun nach diesem Link hier: http://www.mikrocontroller.net/articles/Bierdeckel-Programmer einen Programmer mit Attiny85 gebaut. Programmierkabel usw. hab ich alles fertig. Das letzte Problem ist jetzt, dass ich keine Ahnung hab wie ich die Firmware compilliere. Hab mir die Sources von guloprog runtergeladen und mein erster Anlauf war das Makefile mit Programmer's Notepad zu öffnen und mit [WinAVR]Make All die main.hex zu bekommen, die ich dann ja mit PonyProg auf den Attiny85 flashen kann. Bekomme leider beim MakeALL die Fehlermeldung: > "make.exe" all make.exe: *** No rule to make target `all'. Stop. > Process Exit Code: 2 > Time Taken: 00:00 Soweit ich das verstehe liegt das schlicht daran, dass WinAVR andere Befehle in der Makefile hat, aber wie bzw. womit muss ich das Ding jetzt kompillieren? Habe echt null Ahnung von C und will die Microkontroller später erstmal mit Bascom programmieren. Danke schonmal.
Dominik schrieb: > Soweit ich das verstehe liegt das schlicht daran, dass WinAVR andere > Befehle in der Makefile hat, aber wie bzw. womit muss ich das Ding jetzt > kompillieren? der Abschnitt im dem (mir vorliegenden) makefile heisst "hex", also: "make hex" oder nur "make" hab mal eine fertige "hex"-Datei angehängt. > die ich dann ja mit PonyProg auf den > Attiny85 flashen kann. Wird wohl nichts werden, da Du die "ResetDisable"-Fuse setzen musst, weil alle Beinchen vom Tiny benötigt werden, wirst Du wohl einen HV-Programmer benötigen. Hab mir auch, extra für diesen Test, einen AVR-Doper bauen müssen. http://www.obdev.at/products/vusb/avrdoper.html mfG vom ingo
Dominik schrieb: > einen Programmer mit Attiny85 gebaut. Schön! :-) > Bekomme leider beim MakeALL die Fehlermeldung: >> "make.exe" all > make.exe: *** No rule to make target `all'. Stop. Wahrscheinlich kann die Make-Prozedur mit "all" nichts anfangen. Wenn du "make" von der Kommandozeile aus startest und den Parameter "all" weglässt, müsste ungefähr diese Ausgabe kommen:
1 | Usage: make same as make help |
2 | make help same as make |
3 | make main.hex create main.hex |
4 | make clean remove redundant data |
5 | make disasm disasm main |
6 | make flash upload main.hex into flash |
7 | make fuses program fuses |
8 | make avrdude test avrdude |
9 | Current values: |
10 | TARGET=attiny85 |
11 | LFUSE=0xf1 |
12 | HFUSE=0x5d |
13 | CLOCK=12000000 |
14 | ISP=usbasp |
15 | PORT=/dev/usb/ttyUSB0 -B 6 -F |
Da in deinem Beispiel "make.exe" steht, nehme ich an, du verwendest Windows. Das Projekt wurde zwar unter Linux entwickelt, aber wenn die notwendigen Tools installiert sind, müsste es auch unter Windows klappen. Wahrscheinlich musst du aber zumindest die Zeile "PORT=" in der Make-Datei anpassen. Ingo Wendler schrieb: > Wird wohl nichts werden, da Du die "ResetDisable"-Fuse setzen musst, > weil alle Beinchen vom Tiny benötigt werden, wirst Du wohl einen > HV-Programmer benötigen. Das geht auch ohne HV-Programmer. Das Reset-Disable-Fusebit kann man auch mit einem "normalen" Programmer setzen, man kann es nur nicht wieder zurücksetzen. Aber einmaliges Programmieren klappt - mehr will man in diesem Fall meist auch nicht.
Danke ingo, aber ist V-USB nicht was anderes? Der guloprog Programmer basiert doch auf dem USBASP von fischerl. Markus Weber schrieb: > Wahrscheinlich kann die Make-Prozedur mit "all" nichts anfangen. Wenn du > "make" von der Kommandozeile aus startest und den Parameter "all" > weglässt, müsste ungefähr diese Ausgabe kommen: Wie genau mache ich das? Hab von den Kommandozeilenbefehlen ungefährt genauso wenig Erfahrung. > Da in deinem Beispiel "make.exe" steht, nehme ich an, du verwendest > Windows. Das Projekt wurde zwar unter Linux entwickelt, aber wenn die > notwendigen Tools installiert sind, müsste es auch unter Windows > klappen. Jap, extra Windows XP auf einem alten System aufgesetzt um den Attiny zu programmieren. Verwendet werden soll das alles später mit einem Win7 System ohne Druckerport. Deswegend er ganze Aufwand. Bei WinAVR sind AVR-GCC und AVR-libc dabei soweit ich weiß. Müssten die richtige sein? > Wahrscheinlich musst du aber zumindest die Zeile "PORT=" in der > Make-Datei anpassen. Du meinst "PORT=/dev/usb/ttyUSB0 -B 6 -F" richtig? Wird damit irgendwie der Usb port bzw. Treiber definiert? Was wäre das Windows pendant hierzu? Mir ist das ja schon richtig unangenehm hier mit so einem Halbwissen aufzukreuzen.:( > Das geht auch ohne HV-Programmer. Das Reset-Disable-Fusebit kann man > auch mit einem "normalen" Programmer setzen, man kann es nur nicht > wieder zurücksetzen. Aber einmaliges Programmieren klappt - mehr will > man in diesem Fall meist auch nicht. Danke für die Aufklärung, hatte mich schon erschreckt :D Dabei waren noch AVRDUDE (startet nicht, muss wohl auch mit Kommandozeile gestartet werden?), usbavp_driver (Treiber vermute ich mal g), sed-3.59(keine Ahnung was das ist) und libusb. Ich muss doch höchstwahrscheinlich was mit libusb machen, oder?
Dominik schrieb: > Wie genau mache ich das? Hab von den Kommandozeilenbefehlen ungefährt > genauso wenig Erfahrung. Dann wirds nicht so einfach... :-( Ich seh grad, du hast hier kein Account, ich kann dich nicht anschreiben. Wollte mich grad um die Hex-Datei kümmern. Allerdings ist es damit nicht getan, denn du müsstest dann noch die korrekten Fusebits setzen. Das macht normalerweise auch das Makefile.
Gesagt getan :) In diesem Makefile wird nur das Fusebit für den Reset pin gesetzt oder? Die könnte ich doch im Zweifelsfall mit PonyProg setzen. Ist zwar ein bisschen her dass ich das gemacht hab, aber vielleicht krieg ich das ja noch hin :) Ist wohl mein Fehler, seh jetzt erst, dass da "für Experten" steht. Ohne Anleitung und C-Wissen komm ich da wohl nicht weit. Danke für deine Hilfe
Ich hab schnell das Makefile der Linux-Version ausprobiert. Ich nehme an bei winavr wird es die selben 2 Aufrufe sein: make main.bin make main.hex (beide nacheinander aufrufen)
Dominik B. schrieb: > Gesagt getan :) Gut. :-) Ich schreib dich nachher mal direkt an. > In diesem Makefile wird nur das Fusebit für den Reset pin gesetzt oder? Nein, es müssen auch andere Fuses gesetzt werden, vor allem die, die die Taktgeschwindigkeit von 8 MHz auf 16 MHz umstellen. So steht es in der Make-Datei: HFUSE=0x5d LFUSE=0xf1
isnah schrieb: > Ich hab schnell das Makefile der Linux-Version ausprobiert. > Ich nehme an bei winavr wird es die selben 2 Aufrufe sein: > make main.bin > make main.hex > (beide nacheinander aufrufen) Ich glaube, das Erste ("main.bin") ist nicht erforderlich. Mit "make flash" wird das Programm geflasht. Und mit "make fuses" werden die Fuses gesetzt. Immer vorausgesetzt, avrdude ist installiert und das Makefile ist an den benutzten Programmer angepasst.
@ Markus Weber lies das Makefile genau: Aus was will objcopy die Hex-Datei erzeugen - darum:"*** No rule to make target `all"
Dominik vergleiche mal das Schaltbild aus: http://www.mikrocontroller.net/articles/Bierdeckel-Programmer mit dem Schema aus: http://www.simpleavr.com/avr/vusbtiny aus welcher das File "vusbtiny.hex" her stammt! Also überlegt dir ob du nicht lieber aus der source "guloprog" das Hex-File erzeugen willst, bevor du den Reset an deinem Tiny "wegprogrammierst"?
isnah schrieb: > Dominik vergleiche mal das Schaltbild aus: Völlig richtig, die beiden Programmer unterscheiden sich in wesentlichen Punkten: - Die Anschlussbelegungen der Pins sind unterschiedlich, die Software des vusbtiny passt daher nicht zum Bierdeckelprogrammer - die Software des Bierdeckelprogrammers nicht zur Hardware des vusbtiny. Das hat Gründe, zu denen ich gerne etwas sagen kann. - Der vusbtiny besitzt im Gegensatz zum Bierdeckelprogrammer keine Schutzwiderstände. Das heißt, wenn das Target falsch angeschlossen wurde, kann es beim vusbtiny passieren, dass er abraucht. - Der vusbtiny besitzt keine Signalwandlerfunktion (hier erklärt: https://guloshop.de/shop/USB-TTL-ADC-PWM-Signalwandler:::10.html ). Das ist natürlich nicht ausschlaggebend, wenn man programmieren will und diese Zusatzfunktion nicht braucht.
Der Druckerport konnte die 5V nicht aufrecht erhalten, weswegen keine Kommunikation zustande kam :D Nun kann ich den Attiny zumindest (ab und zu) auslesen, aber beim Programmieren zeigt er mir dann no device :( Fusebits kann ich mit Ponyprog auch auslesen: CKDIV8 SUT0 CKSEL3 CKSEL2 CKSEL0
Muss ich die Stromversorgung evtl. auch an VCC vom ISP Kabel anschließen? Hab den Tiny derzeit am PC Netzteil (5,2V] hängen, Masse von ISP Kabel, Tiny und Netzteil verbunden und VCC am ISP Kabel leer gelassen. Die 5,2V hängen also nur am Tiny. 100nF Kondensator ist dran. Lesen klappt trotzdem nur ab und zu mal und schreiben garnicht.
Dominik B. schrieb: > Muss ich die Stromversorgung evtl. auch an VCC vom ISP Kabel > anschließen? Der zu programmierende ATtiny85 benötigt eine Versorgungsspannung. Woher er die bekommt, ist zweitrangig, sofern du alle GND-Leitungen miteinander verbunden hast (PC und ATtiny85). > Hab den Tiny derzeit am PC Netzteil (5,2V] hängen, Welches Netzteil? Das, mit dem dein PC grad läuft? Falls es ein externes Netzteil ist, achte unbedingt drauf, dass die Gleichspannung auch geglättet ist...
Hier mal die Verdrahtung: Parallel Attiny Netzteil ISP-Prog. 85 VCC VCC(Pin8)---------VCC(+5,2V) MOSI---------MOSI(Pin5) MISO---------MISO(Pin6) SCK----------SCK (Pin7) RESET--------RESET(Pin1) GND----------GND (Pin4)--------GND GND-----------| GND-----------| GND-----------| N.C. Häng an dem gleichen Pc Netzeil mit dem der Pc gerade betrieben wird.
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.