Hallo, ich hab für meinen Atmega8 und einen 16Mhz Quarz folgende "fusebits" mit dem "calculator" von hier http://www.engbedded.com/fusecalc/ (ich hab startup auf 4ms und 16k ck gesetzt) -U lfuse:w:0xef:m -U hfuse:w:0xd9:m Ich benutze aber eigentlich das Makefile von mikrocontrollerspielewiese. Da gibt es den Befehl "make wrfusecrystal". Meine Frage ist jetzt ob damit die richtigen Fusebits wie die berechneten gesetzt werden. MfG flo
push das interessiert mich jetzt aber auch, wie man einen atmega8 dazu bekommt mit 16mhz zu laufen.
>das interessiert mich jetzt aber auch, wie man einen atmega8 dazu >bekommt mit 16mhz zu laufen. TLC555 als Taktgenerator und auf externen Takt fusen. Brauchst dann aber schon ziemlich große Widerstände und Kondensatoren. Bei Beachtung von Groß- und Kleinschreibung wäre dir diese Antwort erspart geblieben.
Franz schrieb: > das interessiert mich jetzt aber auch, wie man einen atmega8 dazu > bekommt mit 16mhz zu laufen. Datenblatt lesen, dann labern! Gegen 16 MHz spricht rein garnichts... holger schrieb: > TLC555 als Taktgenerator und auf externen Takt fusen. Brauchst dann aber > schon > ziemlich große Widerstände und Kondensatoren. genau - ab in die erste Klasse. PS: der 555 geht nur bis 2 MHz. holger schrieb: > Bei Beachtung von Groß- und Kleinschreibung wäre dir diese > Antwort erspart geblieben. Wenn du mal dein Hirn einschalten würdest, keine bescheuerten Kommentare posten würdest, dann würde hier vielleicht mal was produktives rauskommen und das ganze wird kein Off-Topic!
Hi
>genau - ab in die erste Klasse. PS: der 555 geht nur bis 2 MHz.
Es geht um 16mhz. In Worten: 16 MilliHertz
Den Rest von Holger nun auch verstanden?
MfG Spess
toll und meint ihr jetzt, dass ihr irgendwas sinnvolles zur Problemlösung beigetragen habt? PS: Die Frage war rein rethorisch und die Antwort lautete NEIN. Also lasst den Schrott und gebt euren Senf dazu wenn's was sinnvolles ist. Nachdem ich nicht weiterhelfen kann, will ich Vorbild sein und bin darum jetzt auch still.
HI
>toll und meint ihr jetzt, dass ihr irgendwas sinnvolles zur...
"Satiren, die der Zensor versteht, werden mit Recht verboten."
Karl Kraus
MfG Spess
Also laut Datenblatt müsste es gehen, hat noch jemand eine Antwort auf meinen ersten Beitrag? MfG flo
http://www.mikrocontroller.net/articles/AVR_Fuses#Taktquellen_Fuse_Einstellung Aber was es mit dieser mikrocontrollerspielewiese und ihrem 'make' auf sich hat, weiß ich auch nicht.
Also in dem Makefile wird dieser Befehl ausgeführt: ./prg_fusebit_uc -w 0 kennt denn einer? von der spielewiese hab ich bis jetzt keine antwort mfg flo
also ich hab das file pr_fusebit_uc im netz gefunden aber des wird auf der spielwiese nicht verwendet, da in dem Makefile mit dem dort die fusebits gesetzt werden direkt der Befehl für den avrdude steht. ich hab aber kein avrdude :-)
1 | #!/bin/sh
|
2 | prg="adude" |
3 | #
|
4 | help() |
5 | {
|
6 | echo "prg_fusebit_uc -- read and write fuse bits of the atmega8" |
7 | echo "" |
8 | echo "Usage: prg_fusebit_uc [-hu] -r|-w Freq" |
9 | echo "" |
10 | echo "OPTIONS: -h this help" |
11 | echo " -r read fuse bytes" |
12 | echo " -u use uisp instead of avrdude" |
13 | echo " avrdude can automatically detect dapa or avrusb500." |
14 | echo " uisp can only be used with the parallel port dapa." |
15 | echo " -w write fuse bytes such that a given Freq is used" |
16 | echo " a frequency of 0 means external crystal. Possible" |
17 | echo " values are 0,1,2,4,8" |
18 | echo "" |
19 | echo "EXAMPLE: program the fuses to 4MHz internal" |
20 | echo " prg_fusebit_uc -w 4" |
21 | echo "" |
22 | echo "Warning: you can not undo the setting \"external crystal\" unless" |
23 | echo " you have a crystal that works." |
24 | echo "This script can be easily adapted to different programmer types" |
25 | exit 0
|
26 | }
|
27 | while [ -n "$1" ]; do |
28 | case $1 in |
29 | -h) help;shift 1;; |
30 | -u) prg="uisp";shift 1;; |
31 | -r) opt_r="1";shift 1;; |
32 | -w) opt_w="1";freq="$2";shift 2;; |
33 | -*) echo "error: no such option $1. -h for help";exit 1;; |
34 | *) break;; |
35 | esac
|
36 | done
|
37 | |
38 | if [ -z "$opt_r" -a -z "$opt_w" ];then |
39 | # one of those options is mandatory
|
40 | help
|
41 | fi
|
42 | |
43 | hf=0xd9 |
44 | if [ "$opt_w" = "1" ]; then |
45 | case $freq in |
46 | 0) lf=0xee;echo "Make sure you have a crystal otherwise you can not change this!";sleep 2;; |
47 | 1) lf=0xe1;; |
48 | 2) lf=0xe2;; |
49 | 4) lf=0xe3;; |
50 | 8) lf=0xe4;; |
51 | *) echo "error: no such frequency, -h for help";exit 1;; |
52 | esac
|
53 | fi
|
54 | |
55 | |
56 | if [ "$prg" = "uisp" ]; then |
57 | if [ "$opt_r" = "1" ];then |
58 | set -x |
59 | uisp -dlpt=/dev/parport0 -dprog=dapa --rd_fuses |
60 | set +x
|
61 | echo "Explanation: Fuse Low Byte: 0xe1 (1MHz intern), 0xe3 (4MHz intern), " |
62 | echo " 0xe4 (8MHz intern)" |
63 | echo " Fuse High Byte should be 0xd9" |
64 | exit 0
|
65 | fi
|
66 | if [ "$opt_w" = "1" ]; then |
67 | set -x |
68 | uisp -dlpt=/dev/parport0 -dprog=dapa --wr_fuse_l=$lf |
69 | uisp -dlpt=/dev/parport0 -dprog=dapa --wr_fuse_h=$hf |
70 | set +x
|
71 | exit 0
|
72 | fi
|
73 | |
74 | fi
|
75 | if [ "$prg" = "adude" ]; then |
76 | if grep "Vendor=0403 ProdID=6001" /proc/bus/usb/devices > /dev/null ; then |
77 | prg="avrusb500" |
78 | else
|
79 | prg="dapa" |
80 | fi
|
81 | if [ "$opt_r" = "1" ];then |
82 | set -x |
83 | avrdude -p m162 -c $prg -v -q |
84 | set +x
|
85 | echo "Explanation: Fuse Low Byte: 0xe1 (1MHz intern), 0xe3 (4MHz intern), " |
86 | echo " 0xe4 (8MHz intern)" |
87 | echo " Fuse High Byte should be 0xd9" |
88 | exit 0
|
89 | fi
|
90 | if [ "$opt_w" = "1" ]; then |
91 | set -x |
92 | avrdude -p m162 -c $prg -u -v -U lfuse:w:$lf:m |
93 | avrdude -p m162 -c $prg -u -v -U hfuse:w:$hf:m |
94 | set +x
|
95 | exit 0
|
96 | fi
|
97 | fi
|
Florian schrieb: > Also in dem Makefile wird dieser Befehl ausgeführt: > ./prg_fusebit_uc -w 0 Und Florian schrieb: > also ich hab das file pr_fusebit_uc im netz gefunden aber des wird auf > der spielwiese nicht verwendet, da in dem Makefile [..] direkt der Befehl > für den avrdude steht. Ja wattenu - heißt es prg_fusebit_uc oder pr_fusebit_uc und wird es im Makefile verwendet oder nicht? Florian schrieb: > ich hab > aber kein avrdude :-) Das lässt sich ändern. Google existiert. Welches Betriebssystem verwendest Du? Das Skript, das Du als pr_fusebit_uc hereinkopiert hast, ist für Linux und dürfte selbst dort mit einigen aktuellen Distributionen, z.B. Ubuntu, nicht ohne Verrenkungen laufen (da es /proc/bus/usb verwendet).
Florian schrieb: > fusebits gesetzt werden direkt der Befehl für den avrdude steht. ich hab > aber kein avrdude :-) > Womit brennst du dann? Ich würde dieses prg_fusebit_uc ganz schnell vergessen. Wenn du dir die Mühe machst, die ganze Fusebit Einstellerei einmal zu verstehen, mit deinem Brennprogramm die bestehenden Fusebits ausliest und mit dem Datenblatt vergleichst (oder mit dem Fusebit-Calculator auseinandernehmen), vorsichtig bist und lieber 3 mal überlegst ob das was du tust überhaupt Sinn macht, dann ist das alles keine Hexerei. Du darfst nur nicht mit der Einstellung rann gehen: Ich hab da im Web irgendwo irgendwann diese Fuseeinstellung gesehen, ich weiß zwar nicht was die bedeutet, aber ich brenn die mal in den Chip. An dieser Stelle willst du dich genau informieren. An dieser Stelle willst du die relevante Stelle im Datenblatt lieber 3 mal lesen, bis du alles verstanden hast. An dieser Stelle willst du die im µC vorhandenen Fuses auslesen und mit dem Datenblatt vergleichen und das Erfolgserlebnis haben, dass deine Fuse-Dekodierung tatsächlich 100% mit dem Datenblatt übereinstimmt. An dieser Stelle willst du dich selber so weit bringen, dass du dir sicher bist, dass du genau weißt was du tust, wenn du 1 Fuse umstellst. Das klingt jetzt alles aufwändig. Aber nach einer halben Stunde bist du soweit, dass du sagen kannst: Yo, ich bin mir 100% sicher, dass die CKSEL Fuses so und so stehen müssen; in meinem Brennprogramm bedeutet das, dass ich hier und hier ein Häkchen machen muss bzw. ein Häkchen rausnehmen muss bzw. dass im FuseByte dieses und jenes Bit gesetzt sein muss.
Avrdude unterstüzt laut dem Artikel auf der seite http://www.mikrocontroller.net/articles/AVRDUDE Parallelport Programmer. Ich habe mir für mein Makefile folgende Befehle überlegt, kann mir jemand sagen ob das so funktioniert? oder wird das nichts?
1 | #der Programmieradapter ist ein Parallel Programmer wie #Mikrocontrollerspielewiese: |
2 | PROGRAMMER = -c dapa |
3 | |
4 | |
5 | |
6 | |
7 | # use external crystal |
8 | wrfusecrystal: |
9 | clear |
10 | @echo "Warnung: Das Setzen des Quarz-Fusebits kann nur mit Quarz rueckgaengig gemacht werden!" |
11 | @echo " Du hast 15 Sekunden, um mit crtl-c abzubrechen." |
12 | @echo |
13 | @echo "Warning: The external crystal setting can not be changed back without a working crystal" |
14 | @echo " You have 15 seconds to abort this with crtl-c" |
15 | @sleep 15 |
16 | |
17 | avrdude -p m8 $(PROGRAMMER) -u -v -U lfuse:w:0xef:m |
18 | avrdude -p m8 $(PROGRAMMER) -u -v -U hfuse:w:0xd9:m |
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.