« FabISP » : différence entre les versions

De fablabo
Aller à :navigation, rechercher
Cedric (discussion | contributions)
Cedric (discussion | contributions)
 
(3 versions intermédiaires par le même utilisateur non affichées)
Ligne 111 : Ligne 111 :
==programmation==
==programmation==


J'utilise un [arduino.cc/en/Tutorial/ArduinoISP arduino comme programmateur ISP] pour mettre le programme sur la puce.
Pour programmer le programmateur, il faut utiliser [http://academy.cba.mit.edu/classes/embedded_programming/firmware.zip le firmware fournit en cours ]
 
une erreur semble vouloir dire que lisp est mal cablée
<code>
avrdude -c arduino -P /dev/ttyACM0 -C /home/cedric/fabacademy/electronicProduction/fabISP_mac.0.8.2_firmware/avrdude.conf  -p attiny44  -U hfuse:w:0xDF:m -U lfuse:w:0xFF:m
 
avrdude: please define PAGEL and BS2 signals in the configuration file for part ATtiny44
avrdude: AVR device initialized and ready to accept instructions
 
Reading | ################################################## | 100% 0.00s
 
avrdude: Device signature = 0x1e950f
avrdude: Expected signature for ATtiny44 is 1E 92 07
        Double check chip, or use -F to override this check.
 
avrdude done.  Thank you.
 
make: *** [fuse] Erreur 1
</code>


===avec l'AVRISP V2===
===avec l'AVRISP V2===
Ligne 152 : Ligne 134 :




[[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.o
avr-gcc -Wall -Os -DF_CPU=20000000 -Iusbdrv -I. -DDEBUG_LEVEL=0 -mmcu=attiny44 -x assembler-with-cpp -c usbdrv/usbdrvasm.S -o usbdrv/usbdrvasm.o
avr-gcc -Wall -Os -DF_CPU=20000000 -Iusbdrv -I. -DDEBUG_LEVEL=0 -mmcu=attiny44 -c usbdrv/oddebug.c -o usbdrv/oddebug.o
avr-gcc -Wall -Os -DF_CPU=20000000 -Iusbdrv -I. -DDEBUG_LEVEL=0 -mmcu=attiny44 -c main.c -o main.o
avr-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.o
rm -f main.hex main.eep.hex
avr-objcopy -j .text -j .data -O ihex main.elf main.hex
avr-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 = 0x1e9207
avrdude: reading input file "0xDF"
avrdude: writing hfuse (1 bytes):
Writing | ################################################## | 100% 0.04s
avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xDF:
avrdude: load data hfuse data from input file 0xDF:
avrdude: input file 0xDF contains 1 bytes
avrdude: reading on-chip hfuse data:
Reading | ################################################## | 100% 0.04s
avrdude: verifying ...
avrdude: 1 bytes of hfuse verified
avrdude: reading input file "0xFF"
avrdude: writing lfuse (1 bytes):
Writing | ################################################## | 100% 0.11s
avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xFF:
avrdude: load data lfuse data from input file 0xFF:
avrdude: input file 0xFF contains 1 bytes
avrdude: 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 = 0x1e9207
avrdude: NOTE: FLASH memory has been specified, an erase cycle will be performed
        To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "main.hex"
avrdude: writing flash (2020 bytes):
Writing | ################################################## | 100% 73.70s
avrdude: 2020 bytes of flash written
avrdude: verifying flash memory against main.hex:
avrdude: load data flash data from input file main.hex:
avrdude: input file main.hex contains 2020 bytes
avrdude: 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 = 0x1e9207
avrdude: reading input file "0xDF"
avrdude: writing hfuse (1 bytes):
Writing | ################################################## | 100% 0.04s
avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xDF:
avrdude: load data hfuse data from input file 0xDF:
avrdude: input file 0xDF contains 1 bytes
avrdude: reading on-chip hfuse data:
Reading | ################################################## | 100% 0.04s
avrdude: verifying ...
avrdude: 1 bytes of hfuse verified
avrdude: reading input file "0xFF"
avrdude: writing lfuse (1 bytes):
Writing | ################################################## | 100% 0.04s
avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xFF:
avrdude: load data lfuse data from input file 0xFF:
avrdude: input file 0xFF contains 1 bytes
avrdude: 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:FabAcademy]]
[[Catégorie:Electronique]]
[[Catégorie:Electronique]]
Récupérée de « https://fablabo.net/index.php/FabISP »