Hallo zusammen,
ich versuche mich gerade in die Welt der Elektronik und Mikrocontroller
einzufinden mit Hilfe der Einstiegshilfe von Stefan Frings.
http://stefanfrings.de/mikrocontroller_buch/index.html
Gleichzeitig mache ich eine großen Schritt vorraus und würde sehr gern
das Alarmanlagenprojekt
http://stefanfrings.de/bfAlarm/index.html
versuchen umzusetzen. Damit ich nicht immer den Autor der Software (der
mir bereits sehr geduldig und kompetent geholfen hat , vielen vielen
dank!) per eMail belästige, hoffe ich auf Hilfe hier im Forum
(hoffentlich im richtigen Bereich).
Zuerst habe ich mir bei Chip45.com den Crumb644 mit installierten
Bootloader und 20Mhz gekauft. http://go.chip45.com/crumb644-1.1
Folgende Schritte habe ich danach gemacht:
1. Die Stiftleisten und den 20Mhz Quartz angelötet
2. Ein ausrangiertes FujitsuSiemens 5V 1A Netzteil für
Versorgungsspannung organisiert und die +5V mit VCC und Ground mit GND
des Crumb644 auf einem Experimentierboard verbunden.
3. Treiber installiert
http://www.silabs.com/Support%20Documents/Software/CP210x_VCP_Windows.zip
4. BootloaderGUI von Chip45 installiert
http://www.chip45.com/avr_bootloader_atmega_xmega_chip45boot2.php
5. Netzteil des Crumb644 eingesteckt und via USB mit dem Rechner
verbunden
---> PC installiert die Treiber selbständig und der Crumb644 wird auf
COM5 erkannt.
6. Chip45 BootloaderGUI gestartet und beim drücken des Buttons "connect
to Bootloader" verbindet sich das Programm mit dem Bootloader des
Crumb644 auf COM5 mit 115200 Baudrate.
Da die vorcompilierte Firmware von Stefan Frings
http://stefanfrings.de/avr_io/SERIAL-IO-Modul_v1.4.1.zip nur für 14,7MHz
Taktgeber vorhanden war und ich 20Mhz brauche, habe ich folgendes
gemacht:
7. WinAVR installiert und mit dem Programmers Notepad das Makefile aus
der Firmware geöffnet (im Ordner scr)
8. In der Zeile F_CPU von 14,7MHz auf 20Mhz umgestellt
1 | ifeq ($(LAYOUT),Crumb644)
|
2 | MCU = atmega644p
|
3 | F_CPU = 20000000
|
4 | LFUSE = 0xF7
|
5 | HFUSE = 0xD9
|
6 | # See additional settings in hw-layout.h !
|
7 | endif
|
9. Unter dem Programmreiter Tools die Befehle "Make Clean" & "Make all"
in dieser Reihenfolge ausgeführt. Dadurch werden im Ordner des Makefiles
3 Dateien erzeugt
SERIAL-IO-Modul.elf
SERIAL-IO-Modul.hex
SERIAL-IO-Modul.map
10. Öffnen der Chip45 BootloadersGUI und mit dem Bootloader des Crump644
verbinden
11. Beim Button "Select Flash Hexfile" habe ich die neu erzeugte
SERIAL-IO-Modul.hex ausgewählt und anschließend auf "Programm Flash"
gedrückt.
---> Die BootloaderGUI rechnete kurz, es erschien keine Fehlermeldung
und im Log war (sinngemäß) zu lesen das das Programm übertragen wurde.
12. Danach habe ich auf den Button "Start Application" gedrückt. Im Log
erschien (sinngemäß) Programm gestartet.
13. Nun wollte ich das ganze Testen (siehe
http://stefanfrings.de/bfAlarm/Installations_Anleitung.pdf S.34) und
habe ein Terminalprogramm http://www.der-hammer.info/terminal/ mit COM5
und 115200Baud verbunden. In der Statutszeile unten rechts, steht auch
"Connect to COM5)
14. Der Terminalbefehl "h" soll eine Hilfeseite erscheinen lassen, doch
leider tut sich bei mir nichts. Auch in der Java Web App "bfAlarm" tut
sich nichts, der USB COM5 wird nicht erkannt.
Danach habe ich versucht die BootloaderGUI von Chip45 nochmals mit dem
Bootloader des Crumb644 zu verbinden. Hatte keinen Erfolg. Habe es
mehrfach probiert (mit Neustart, ändern des Comports im Gerätemanager).
Die BootloaderGUI versucht sich zu verbinden aber meldet im Log das der
Bootloader nicht gefunden wird.
Als nächstes habe ich versucht mit dem Programmers Notepad von WinAVR
mich direkt zu verbinden. Folgende Schritte hab ich gemacht: (Crumb644
ist auf COM5)
a) Öffnen des Makefiles der Firmware mit dem Programmers Notepad
b) Zeile AVRDUDE_HW für COM5 angepasst
1 | # Programmer hardware settings for avrdude
|
2 | # Linux: /dev/ttyUSB0 is the first virtual serial port
|
3 | # Windows: //./COM20 is the virtual port COM20
|
4 | AVRDUDE_HW = -c avr910 -P //./COM5 -b 115200 -v
|
5 | # AVRDUDE_HW = -c avrispmkII -Pusb -v
|
c) überprüft ob F_CPU = 20000000
1 | ifeq ($(LAYOUT),Crumb644)
|
2 | MCU = atmega644p
|
3 | F_CPU = 20000000
|
4 | LFUSE = 0xF7
|
5 | HFUSE = 0xD9
|
6 | # See additional settings in hw-layout.h !
|
7 | endif
|
d) Unter dem Programmreiter Tools die Befehle "Make Clean" & "Make all"
& "Programm" in dieser Reihenfolge ausgeführt.
Output von "Make Clean":
1 | > "make.exe" clean
|
2 | rm -rf *.o driver/*.o SERIAL-IO-Modul.hex SERIAL-IO-Modul.elf SERIAL-IO-Modul.lst SERIAL-IO-Modul.map SERIAL-IO-Modul_eeprom.hex
|
3 |
|
4 | > Process Exit Code: 0
|
5 | > Time Taken: 00:01
|
Output von "Make All":
1 | > "make.exe" all
|
2 | avr-gcc -std=c99 -Wall -Os -mmcu=atmega644p -DF_CPU=20000000 -DSERIAL_BITRATE=115200 -DCrumb644 -ffunction-sections -fdata-sections -c -o driver/serialconsole.o driver/serialconsole.c
|
3 | avr-gcc -std=c99 -Wall -Os -mmcu=atmega644p -DF_CPU=20000000 -DSERIAL_BITRATE=115200 -DCrumb644 -ffunction-sections -fdata-sections -c -o driver/ADC.o driver/ADC.c
|
4 | avr-gcc -std=c99 -Wall -Os -mmcu=atmega644p -DF_CPU=20000000 -DSERIAL_BITRATE=115200 -DCrumb644 -ffunction-sections -fdata-sections -c -o io-commands.o io-commands.c
|
5 | avr-gcc -std=c99 -Wall -Os -mmcu=atmega644p -DF_CPU=20000000 -DSERIAL_BITRATE=115200 -DCrumb644 -ffunction-sections -fdata-sections -c -o main.o main.c
|
6 | avr-gcc -std=c99 -Wall -Os -mmcu=atmega644p -DF_CPU=20000000 -DSERIAL_BITRATE=115200 -DCrumb644 -ffunction-sections -fdata-sections -Wl,-Map,SERIAL-IO-Modul.map -Wl,--gc-sections -o SERIAL-IO-Modul.elf driver/serialconsole.o driver/ADC.o io-commands.o main.o
|
7 | avr-objcopy -j .text -j .data -O ihex SERIAL-IO-Modul.elf SERIAL-IO-Modul.hex
|
8 |
|
9 | > Process Exit Code: 0
|
10 | > Time Taken: 00:01
|
Output von "Programm" (habe den Vorgang nach mehreren Minuten
abgebrochen):
1 | > "make.exe" program
|
2 | avrdude -p atmega644p -c avr910 -P //./COM2 -b 115200 -v -U flash:w:SERIAL-IO-Modul.hex:i
|
3 |
|
4 | avrdude: Version 5.10, compiled on Jan 19 2010 at 10:45:23
|
5 | Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
|
6 | Copyright (c) 2007-2009 Joerg Wunsch
|
7 |
|
8 | System wide configuration file is "C:\WinAVR-20100110\bin\avrdude.conf"
|
9 |
|
10 | Using Port : //./COM2
|
11 | Using Programmer : avr910
|
12 | avr910_devcode (avrdude.conf) : 0x74
|
13 | Overriding Baud Rate : 115200
|
14 | AVR Part : ATMEGA644P
|
15 | Chip Erase delay : 9000 us
|
16 | PAGEL : PD7
|
17 | BS2 : PA0
|
18 | RESET disposition : dedicated
|
19 | RETRY pulse : SCK
|
20 | serial program mode : yes
|
21 | parallel program mode : yes
|
22 | Timeout : 200
|
23 | StabDelay : 100
|
24 | CmdexeDelay : 25
|
25 | SyncLoops : 32
|
26 | ByteDelay : 0
|
27 | PollIndex : 3
|
28 | PollValue : 0x53
|
29 | Memory Detail :
|
30 |
|
31 | Block Poll Page Polled
|
32 | Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
|
33 | ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
|
34 | eeprom 65 10 128 0 no 2048 8 0 9000 9000 0xff 0xff
|
35 | flash 33 6 256 0 yes 65536 256 256 4500 4500 0xff 0xff
|
36 | lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
|
37 | lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
|
38 | hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
|
39 | efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
|
40 | signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
|
41 | calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00
|
42 |
|
43 | Programmer Type : avr910
|
44 | Description : Atmel Low Cost Serial Programmer
|
45 |
|
46 | Found programmer: Id = ""; type = ®
|
47 | Software Version = D.
|
48 |
|
49 | Programmer supports the following devices:
|
50 | Device code: 0xffffffcf = (unknown)
|
51 | Device code: 0xffffffcf = (unknown)
|
52 | Device code: 0xffffffcf = (unknown)
|
53 | Device code: 0xffffffcf = (unknown)
|
54 | Device code: 0xffffffcf = (unknown)
|
55 | Device code: 0xffffffcf = (unknown)
|
56 | Device code: 0xffffffcf = (unknown)
|
57 | Device code: 0xffffffcf = (unknown)
|
58 | Device code: 0xffffffcf = (unknown)
|
59 | Device code: 0xffffffcf = (unknown)
|
60 | Device code: 0xffffffcf = (unknown)
|
61 | Device code: 0xffffffcf = (unknown)
|
62 |
|
63 | > Forcefully terminating process...
|
64 |
|
65 | > Process Exit Code: 1
|
66 | > Time Taken: 03:44
|
Habe hier noch ein Screenshot von der Zeile "Found Programmer:", da es
Sonderzeichen enthält die nicht via Copy&Paste übertragen werden:
https://dl.dropboxusercontent.com/u/11379697/pics/programmer.png
Nun weiß ich nicht mehr was ich machen kann damit das noch funktioniert.
Ich hoffe ich habe den Crumb644 nicht zerflasht. Was kann ich tun?
Bitte um eure Mithilfe
Danke und grüße
toxsin