Modifications

Aller à : navigation, rechercher

FabISP

6 726 octets ajoutés, 24 septembre 2014 à 15:35
programmation
Une petite erreur provoquai un court circuit : un peu d'étain s'était glissé sous un condensateur. J'ai dut le dessouder pour nettoyer.
 
 
mise à jour 1 mai 2014 : j'ai refait le circuit qui ne foncionnait pas
 
Maintenant je sais bien souder les CMS :
 
[[image:Fabisp.soldered.jpg|600px]]
==programmation==
JPour programmer le programmateur, il faut utiliser [http://academy.cba.mit.edu/classes/embedded_programming/firmware.zip le firmware fournit en cours ] ===avec l'utiliseAVRISP V2=== C'est un programmateur tout fait pour qu'il soit reconnu sous linux , il faut faire quelques manipulations : créer une règle udev pour le programmateur : <code lang=bash>$ sudo gedit /etc/udev/rules.d/20-avrisp.rules</code> remplir le fichier avec la ligne suivante :<code lang=bash># Atmel Corp. AVRISP mkIISUBSYSTEM=="usb", ACTION=="add", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2104", MODE="660", GROUP="uucp",SYMLINK+="avrdev"</code> puis s'attribuer le groupe uucp <code lang=bash>$ sudo adduser <nom d'utilisateur> uucp</code> enfin, relancer la session pour que la modification fasse effet  [[image:Fabisp.programming.jpg|600px]] Lorsqu'on cable de circuit cible au programmateur, c'est déjà bon signe si la led s'allume en vert. ensuite, après avoir décompresser le dossier firmware, éditer le fichier makefile pour indiquer qu'on programme avec l'AVRISP : <code lang:bash>AVRDUDE = avrdude -c avrisp2 -P usb -p $(DEVICE)</code> ensuite on lance la compilation : <code lang:bash>make hex</code> le résultat de la compilation : <code lang:bash>avr-gcc -Wall -Os -DF_CPU=20000000 -Iusbdrv -I. -DDEBUG_LEVEL=0 -mmcu=attiny44 -c usbdrv/usbdrv.c -o usbdrv/usbdrv.oavr-gcc -Wall -Os -DF_CPU=20000000 -Iusbdrv -I. -DDEBUG_LEVEL=0 -mmcu=attiny44 -x assembler-with-cpp -c usbdrv/usbdrvasm.S -o usbdrv/usbdrvasm.oavr-gcc -Wall -Os -DF_CPU=20000000 -Iusbdrv -I. -DDEBUG_LEVEL=0 -mmcu=attiny44 -c usbdrv/oddebug.c -o usbdrv/oddebug.oavr-gcc -Wall -Os -DF_CPU=20000000 -Iusbdrv -I. -DDEBUG_LEVEL=0 -mmcu=attiny44 -c main.c -o main.oavr-gcc -Wall -Os -DF_CPU=20000000 -Iusbdrv -I. -DDEBUG_LEVEL=0 -mmcu=attiny44 -o main.elf usbdrv/usbdrv.o usbdrv/usbdrvasm.o usbdrv/oddebug.o main.orm -f main.hex main.eep.hexavr-objcopy -j .text -j .data -O ihex main.elf main.hexavr-size main.hex text data bss dec hex filename 0 2020 0 2020 7e4 main.hex</code> Puis on regle les fusibles :  <code lang:bash>make fuse</code> résultat : <code lang:bash>avrdude -c avrisp2 -P usb -p attiny44 -U hfuse:w:0xDF:m -U lfuse:w:0xFF:m avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.11s avrdude: Device signature = 0x1e9207avrdude: reading input file "0xDF"avrdude: writing hfuse (1 bytes): Writing | ################################################## | 100% 0.04s avrdude: 1 bytes of hfuse writtenavrdude: verifying hfuse memory against 0xDF:avrdude: load data hfuse data from input file 0xDF:avrdude: input file 0xDF contains 1 bytesavrdude: reading on-chip hfuse data: Reading | ################################################## | 100% 0.04s avrdude: verifying ...avrdude: 1 bytes of hfuse verifiedavrdude: reading input file "0xFF"avrdude: writing lfuse (1 bytes): Writing | ################################################## | 100% 0.11s avrdude: 1 bytes of lfuse writtenavrdude: verifying lfuse memory against 0xFF:avrdude: load data lfuse data from input file 0xFF:avrdude: input file 0xFF contains 1 bytesavrdude: reading on-chip lfuse data: Reading | ################################################## | 100% 0.04s avrdude: verifying ...avrdude: 1 bytes of lfuse verified avrdude: safemode: Fuses OK avrdude done. Thank you.</code> enfin, on upload le programme : <code lang:bash>make program</code> résultat : <code lang:bash>avrdude -c avrisp2 -P usb -p attiny44 -U flash:w:main.hex:i avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.11s avrdude: Device signature = 0x1e9207avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed To disable this feature, specify the -D option.avrdude: erasing chipavrdude: reading input file "main.hex"avrdude: writing flash (2020 bytes): Writing | ################################################## | 100% 73.70s avrdude: 2020 bytes of flash writtenavrdude: verifying flash memory against main.hex:avrdude: load data flash data from input file main.hex:avrdude: input file main.hex contains 2020 bytesavrdude: reading on-chip flash data: Reading | ################################################## | 100% 71.44s avrdude: verifying ...avrdude: 2020 bytes of flash verified avrdude: safemode: Fuses OK avrdude done. Thank you. avrdude -c avrisp2 -P usb -p attiny44 -U hfuse:w:0xDF:m -U lfuse:w:0xFF:m avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.11s avrdude: Device signature = 0x1e9207avrdude: reading input file "0xDF"avrdude: writing hfuse (1 bytes): Writing | ################################################## | 100% 0.04s avrdude: 1 bytes of hfuse writtenavrdude: verifying hfuse memory against 0xDF:avrdude: load data hfuse data from input file 0xDF:avrdude: input file 0xDF contains 1 bytesavrdude: reading on-chip hfuse data: Reading | ################################################## | 100% 0.04s avrdude: verifying ...avrdude: 1 bytes of hfuse verifiedavrdude: reading input file "0xFF"avrdude: writing lfuse (1 bytes): Writing | ################################################## | 100% 0.04s avrdude: 1 bytes of lfuse writtenavrdude: verifying lfuse memory against 0xFF:avrdude: load data lfuse data from input file 0xFF:avrdude: input file 0xFF contains 1 bytesavrdude: reading on-chip lfuse data: Reading | ################################################## | 100% 0.04s avrdude: verifying ...avrdude: 1 bytes of lfuse verified avrdude: safemode: Fuses OK avrdude done. Thank you.</code>   Le programmateur est maintenant prêt à fonctionner : il ne reste plus qu'à dessouder les juppers 1 et 2. Pour férifier qu'il réagit bien, je tape  <code lang:bash>lsusb</code> Lorsque j'ai branché le programmateur, il apparait dans la liste sosu cette forme : <code lang:bash>Bus 003 Device 013: ID 1781:0c9f Multiple Vendors USBtiny</code> ça y est, j'ai un FabISP qui fonctionne !  ==utilisation== Il faut faire une petite manip pour pouvoir utiliser le FabISP sans être root, sans quoi on a une erreur <code>avrdude: error: usbtiny_transmit: error sending control message: Operation not permitted</code> http://mightyohm.com/blog/2010/03/run-avrdude-without-root-privs-in-ubuntu/
[[Catégorie:FabAcademy]]
[[Catégorie:Electronique]]
0
6 691
modifications

Menu de navigation