dimanche 28 novembre 2010

Lecteurs MP3



Le Xiron MP950 ressemble très fort au Sweex MP470. 4GB tous les deux. Le Sweex joue aussi les fichiers FLAC et ogg. Le Xiron a un comportement un peu curieux quant à la navigation (je dirais franchement buggé), il faut chipoter pour aller là où l'on veut. Le Sweex ne semble pas passer automatiquement au répertoire suivant. (Dans les versions que j'ai).

Le soft est différent. Le hardware est différent :

Le Xiron :


Le Sweex :


Tous deux utilisent un microContrôleur AK2027C de Artek avec un core Z80 (simple datasheet.pdf) et une flash de 4 GB.

jeudi 28 janvier 2010

PicKit2...

Quelques expériences sous Linux (Ubuntu - 9.10 - Karmic Koala) avec le PICkit 2 Debug Express de Microchip. L'ensemble qui coûte moins de 50.00 € se compose du PICkit 2 avec son interface USB qui permet de programmer la carte d'expérimentation avec un PIC16F887, huit LEDs, un bouton poussoir, un potentiomètre,... Côté logiciel, j'utiliserai uniquement des logiciels libres : pk2cmd, sdcc et gputils.


En chantier. (c'est rien de le dire...)

Premiers tests. (voir aussi)

sudo ./pk2cmd -PPIC16F887 -R -T # start the pre-installed program
# program the device
sudo ./pk2cmd -PPIC16F887 -M -F/media/cdrom0/Install/Lessons/44-Pin\ Demo\ Board/02\ Blink/Blink.HEX
#
sudo ./pk2cmd -PPIC16F887 -M -F../PicKit/Install/Lessons/44-Pin\ Demo\ Board/02\ Blink/Blink.HEX
sudo ./pk2cmd -PPIC16F887 -R -T



Curieusement, le lendemain la LED 'busy' clignote lentement (slow busy blink) et le PicKit2 ne semble plus rien vouloir entendre... Le firmware semble être corrompu, la version n'est plus bonne... Heureusement, il suffit de le recharger (le fichier 'PK2V023200.hex' vient avec pk2cmd).

# ./pk2cmd -?V
Executable Version: 1.20.00
Device File Version: 1.55.00
OS Firmware Version: 118.90.90


Operation Succeeded
# ./pk2cmd /DPK2V023200.hex
Downloading OS...
Verifying new OS...
Resetting PICkit 2...
OS Update Successful.

Operation Succeeded
# ./pk2cmd -?V

Executable Version: 1.20.00
Device File Version: 1.55.00
OS Firmware Version: 2.32.00


Operation Succeeded
# ./pk2cmd -R -T -PPIC16F887

Operation Succeeded



En m'inspirant de ce blog, un petit programme...

#include <pic16f887.h>

/* inspired by http://jsmerritt.blogspot.com/2009/06/getting-started-with-pic.html */
/* ------------------ */
/* Configuration bits */
typedef unsigned int word;
word at _CONFIG1 CONFIG1 = _LVP_OFF & _FCMEN_OFF & _IESO_OFF &
_BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF &
_PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT;
word at _CONFIG2 CONFIG2 = _WRT_OFF & _BOR21V;

void isr() interrupt 0
{
/* interrupt service routine */
}

void foo()
{
int i;

for (i = 0; i < 40; i++)
;
}
void main()
{
long i;
unsigned char state;

RP0 = 1;
TRISD = 0; // set PORTD as all outputs
RP0 = 0;

// counter leds
state = 1;
while (1)
{
for (i = 0; i < 2000; ++i)
foo();
state += 1;
PORTD = state;
}
}

Il n'y a plus qu'à...

$ sdcc -mpic14 -p16f887 count.c
$ sudo pk2cmd -PPIC16F887 -M -F count.hex
$ sudo pk2cmd -PPIC16F887 -R -T



Pour programmer la PIC18F4550 USB Development Board de Futurlec, il faut un adaptateur RJ12 (RJ11 à 6 fils) - ICSP (pdf). Il existe un kit à ~7.00 euros chez Microchip, mais si on ajoute les frais (port et taxes), cela devient hors de prix... Fabriquer l'adaptateur est facile ...si on a le matériel (notamment la pince à servir, le bout de câble et un connecteur (type 'header' en ligne pour jumpers).



On remarquera l'inversion 1<->6 (le câble est 'twisté').