Modifications

FabISP

6 617 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'AVRISP V2=== C'utilise est un [arduinoprogrammateur 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.ccrules</encode> 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"</Tutorialcode> puis s'attribuer le groupe uucp <code lang=bash>$ sudo adduser <nom d'utilisateur> uucp</ArduinoISP arduino comme code> enfin, relancer la session pour que la modification fasse effet  [[image:Fabisp.programming.jpg|600px]] Lorsqu'on cable de circuit cible au programmateur ISP] , 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 mettre 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 sur : <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 puceliste 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