0
Offline
Jr. Member
Karma: 0
Posts: 78
Arduino rocks
|
 |
« on: November 18, 2012, 05:14:08 pm » |
Hey ,
habe es geschaft, den Atmega168 auf internen Quarz umzustellen mit 8MHz, aber auch nur weil ich den Bootloader vom Lillypad rauf spielte.
Nur sobald ich CKDIV8 aktiviere, läuft der Sketch nicht mehr. Da ich aber den Arduino mit Batterie versorge und keine großen Ansprüche besitze, würde ich gerne die Stromaufnahme stark reduzieren und ihn auf 1MHz laufen lassen.
Ich denke ich muss am Bootloader (Makefile-Datei), etwas verändern.
Bevor ich mein Arduino Schrotte, wollte ich um Rat bitten, wie ich an die Sache richtig angehen muss.
Vielen Dank.
|
|
|
|
|
Logged
|
|
|
|
|
Switzerland
Offline
Faraday Member
Karma: 69
Posts: 3280
|
 |
« Reply #1 on: November 19, 2012, 08:48:31 am » |
Ich denke ich muss am Bootloader (Makefile-Datei), etwas verändern. Ja, Du musst den Wert von AVR_FREQ anpassen, sonst wird die Baudrate für den Upload nicht stimmen.
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Jr. Member
Karma: 0
Posts: 78
Arduino rocks
|
 |
« Reply #2 on: November 19, 2012, 12:36:18 pm » |
Hey,
Danke für den Hinweis, habe ich befolgt AVR_FREQ= 8000000 ---> 1000000 gewechselt.
Leider kann ich immernoch keinem Sketch uploaden, sofern die Fuses CKDIV8 aktiv ist.
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Faraday Member
Karma: 16
Posts: 3196
20 LEDs are enough
|
 |
« Reply #3 on: November 19, 2012, 01:01:49 pm » |
Wenn Du Bootloader flashen kannst und Fuses setzen, dann hasst Du einen ISP. Wieso brauchst Du dann überhaupt einen Bootloader? Du kannst doch einfach direkt per ISP die Sketches aufspielen.
|
|
|
|
|
Logged
|
|
|
|
|
Switzerland
Offline
Faraday Member
Karma: 69
Posts: 3280
|
 |
« Reply #4 on: November 19, 2012, 01:51:00 pm » |
Ich habe schnell nachgerechnet. Bei 19200 Baud würde das UBRR einen Wert von 2.25 erhalten. Da das kein Integer ist, wird 2 reingeschrieben, was fast 10% Abweichung entspricht (8.5% gemäss Datenblatt). Einen relativ guten Teiler kriegt man erst mit 4800 Baud (12). Ich würde also im Bootloader-Code die Baudrate auf 4800 ändern: #define BAUD_RATE 4800
und das entsprechend auch im boards.txt anpassen. Damit hast Du auf 0.2% genau die richtige Baudrate.
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Jr. Member
Karma: 0
Posts: 78
Arduino rocks
|
 |
« Reply #5 on: November 19, 2012, 02:02:37 pm » |
Wenn Du Bootloader flashen kannst und Fuses setzen, dann hasst Du einen ISP. Wieso brauchst Du dann überhaupt einen Bootloader? Du kannst doch einfach direkt per ISP die Sketches aufspielen.
Ja eine ISP besitze ich. Darüber habe ich noch gar nicht nachgedacht. Kann ich wie gewohnt den Code schreiben in Arduino1.0.1 und über die ISP übertragen, fertig?
|
|
|
|
|
Logged
|
|
|
|
|
Germany
Offline
Edison Member
Karma: 27
Posts: 1497
|
 |
« Reply #6 on: November 19, 2012, 04:10:51 pm » |
Kann ich wie gewohnt den Code schreiben in Arduino1.0.1 und über die ISP übertragen, fertig? Ja, "Upload mit Programmer"
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Jr. Member
Karma: 0
Posts: 78
Arduino rocks
|
 |
« Reply #7 on: November 22, 2012, 03:32:27 pm » |
So, konnte es testen. Bekomme Problemlos die Sketche geuploadet mit der ISP.
Nebeneffekt an der Änderung der Frequenz, die Zeiten bei Delay stimmen nicht mehr. 16Mhz delay(1000)= 1s als vergleich hatte ich int.168khz /8 gestellt und diese Sekunde verging ewig.
Wie kann man sich das erklären, klar er läuft langsamer, aber gibt es da Formeln bzw. Tabellen um dies abzugleichen ?
Und ganz andere Frage, wenn das mit der ISP sogut geht, wieso machen sich viele die Arbeit mit dem Boatloader?
|
|
|
|
|
Logged
|
|
|
|
|
Germany
Offline
Edison Member
Karma: 27
Posts: 1497
|
 |
« Reply #8 on: November 22, 2012, 04:43:03 pm » |
Wenn du einen ISP hast und es gut geht, brauchst du natürlich keinen Bootloader.
Aber eine Serielle Schnittstelle "hat jeder" ( ok, heute nur noch USB ). Der Rest ist dann Software, incl. eines beim Arduino schon vorinstallierten Bootloaders.
Im Boards.txt kannst du zum Kompilieren auch build.f_cpu=16000000L passend abändern, damit 1000 millis wieder eine Sekunde sind.
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Faraday Member
Karma: 16
Posts: 3196
20 LEDs are enough
|
 |
« Reply #9 on: November 22, 2012, 04:46:21 pm » |
Bootloader statt ISP ist für Anfänger zunächst scheinbar einfacher und billiger. Und wer noch nie einen LKW gefahren ist, der glaubt ja auch, daß man mit einem Kombi alles transportieren kann...
|
|
|
|
|
Logged
|
|
|
|
|
|