Christophe Jacquet
This page is also available in English.
Flux RSS

2006-02-09 | Server Spy

Ma première extension pour Firefox (1.5 et plus) est disponible. Elle s’appelle Server Spy, et affiche le nom des serveurs web (Apache, IIS, etc.) qui propulsent les sites web visités. Pour un onglet donné, le nom du serveur est indiqué en bas à droite, dans la barre d’état de Firefox. Bref, un truc de geek :-)

Si vous l’essayez, n’hésitez pas à m’envoyer vos rapports de bugs et vos demandes de fonctionnalités.

Mise à jour (9 février, 19h45) : Server Spy est désormais distribué sur Mozilla Update. En quelques heures, plein de téléchargements, des commentaires sympas, des suggestions, un rapport de bug, que demande le peuple ? Ce qui m’embête par contre, c’est que je n’arrive pas à reproduire le bug qui m’a été signalé…

2006-01-29 | PIC18F, deuxième

Après quelques essais, j’ai résolu les problèmes évoqués dans un premier billet sur les PIC !

Les problèmes électriques

Ces problèmes étaient à l’origine d’un certain non-déterminisme dans le fonctionnement du PIC. En vrac, voici les améliorations que j’ai apportées :

Après avoir apporté ces modifications, le fonctionnement est devenu entièrement déterministe et reproductible, mais ça ne fonctionnait toujours pas comme je le voulais…

La programmation

On ne le dira jamais assez, RTFM !

Je me suis rendu compte du problème en visualisant les sorties RB0..7 sur le débugueur de MPLAB. Il est très bien fait, avec un mode « oscillo ». Hé bien lorsque j’envoyais un signal carré sur RB0..7, RB2 et RB3 restaient obstinément à 0, alors que les autres fonctionnaient !

Après lecture du datasheet, j’ai fini par localiser le problème : RB0..3 sont sur les mêmes pattes que les ports analogiques AN8..12, ce qui pose souci… Il faut donc indiquer que l’on veut utiliser les ports RBi sur ces pattes, et non les ANi. Cela se fait à l’aide du registre ADCON1 (décrit p. 254). Au passage, j’en ai profité pour reprendre la procédure d’initialisation de PORTB de la page 114.

Au final, le programme suivant fonctionne de façon très satisfaisante :

#include <p18f2455.h>

#pragma config WDT = OFF
#pragma config FOSC = INTOSC_XT
#pragma config LVP = OFF

void tempo(unsigned char val) {
	int j;

	for(j=0; j<700; j++) {
		PORTB = val;
	}
}

void main(void) {
	// PORTB initialization, from p. 114
	LATB = 0;		// clear data latches
	ADCON1 = 0x0E;	// RB0:RB4 are multiplexed with AN8:AN12
					// select digital outputs, see p. 254
	TRISB = 0;		// direction: output pins

    while(1) {
		tempo(0b00010000);
		tempo(0b00001000);
	}
}

Si je ne fais qu’une seule itération dans la boucle (au lieu de 700), je génère un signal de fréquence 384 Hz (merci l’oscillo…)

Je pense qu’avant d’initialiser correctement PORTB, certaines pattes prenaient des valeurs « instables », et donc le fonctionnement réel pouvait dépendre de pas mal de facteurs… Comme la déclaration d’une variable inutile, par je ne sais quelle chaîne cause-conséquence complètement tordue.

Bilan

Je sais donc écrire un programme de base pour le PIC 18F2455. Prochaine étape : l’USB !

2006-01-22 | Ferrite or not ferrite

Du fond de ma lointaine banlieue, les ondes de l’émetteur de la Tour Eiffel parviennent bien atténuées. Et quand dans un rayon de 5 mètres autour du récepteur se trouvent une Freebox, un switch, un point d’accès WiFi et trois ordinateurs, la voix de Paris s’éteint à peu près complètement…

Remarquant que le phénomène se fait sentir de façon bien plus aiguë lorsque le récepteur est raccordé au secteur, j’ai donc fait l’acquisition[1] d’un tore de ferrite de déparasitage, que j’ai installé sur le cordon secteur du récepteur radio. Il faut bien avouer que les résultats sont très décevants ; on ne peut vraiment pas dire que la situation se soit améliorée.

Par contre, un déplacement du récepteur a permis d’améliorer la réception de certaines stations. Pour les autres, il reste Freebox TV…

Notes

[1] Chez ECE rue de Montreuil.

2006-01-22 | PIC18F, première

J’ai enfin pu essayer un PIC 18F2455, équipé de tout ce qu’il faut pour construire des périphériques USB. La première séance a été consacrée à la découverte du chip, sans essayer l’USB pour le moment.

I — Connexion de la bête

J’ai voulu tester la programmation du PIC à l’aide du programmateur PICkit 2, qui permet par ailleurs de l’alimenter. A priori, la connexion est très simple : le PICkit 2 est équipé d’un connecteur à cinq broches ; il suffit connecter chacune d’entre elles à la patte correspondante du PIC. Si les broches Vpp, Vdd et Vss ne posent pas de problème (même nomenclature des deux côtés), j’ai en revanche eu un peu de mal à trouver la correspondance des broches « ISCP Data » et « ICSP Clock ». Je l’ai finalement trouvée dans le manuel du PIC :

Pour faire les tests, j’ai connecté des LEDs sur RB3 et RB4.

II — Programmation

Je me suis décidé à essayer de programmer le PIC en C avec C18 Student Edition. L’installation se passe sans problème et il s’intègre bien à MPLAB.

Pour programmer en C, il faut commencer par créer un projet. On crée un fichier .c ; on l’ajoute au projet, et on compile le projet avec Ctrl+F10 (lorsqu’on a juste un fichier .asm, on l’assemble avec Alt+F10).

Premier problème : MPLAB se plaint car il n’arrive pas à trouver le fichier p18f2455.h. Si cela se produit, il faut aller dans Project > Build Options > Project et mettre le bon répertoire dans ‘‘include path" (le sous-répertoire h du répertoire d’installation de C18).

Une fois ce souci réglé, la compilation se passe sans problème. Mais on obtient un module objet, pas de fichier HEX. C’est logique, il faut linker le fichier objet issu de la compilation du fichier .c avec les bibliothèques de C18. Pour cela, il faut un linker script, fourni avec C18. Faire Project > Add files to project, et aller chercher le script 18f2455.lkr dans le sous-répertoire lkr de C18. On obtient alors un fichier HEX qu’il est possible d’envoyer sur le PIC.

III — Débogage

On commence par sélectionner le simulateur : Debugger > Select Tool > MPSIM

Ensuite, c’est un jeu d’enfant : Debugger > Run, puis Halt, et ensuite il suffit de survoler les variables pour voir s’afficher leur valeur…

IV — Tests grandeur nature

Après connexion du programmateur PICkit 2 sur la plaque à bidouille, la programmation s’est effectuée sans problème. Cependant, je n’ai pas réussi à obtenir des résultats vraiment fiables et reproductibles dès la première fois en raison de quelques bourdes.

La suite dans un second billet !

2005-12-13 | Vic-time de la mode

Tel est mon nom de code.

Voilà, j’ouvre moi aussi un blog… Pas de surprise, j’ai choisi du logiciel libre, Dotclear, qui a l’air très bien. Par contre, il va falloir que je tune la feuille de style pour l’adapter à mes goûts. Et j’aimerais pouvoir publier une « photo de la semaine, » un peu comme Karl Dubost a ses photos du jour. Bref, cette chose étrange va changer — si je trouve le temps.

HTML5 valide ? © . ✍ Contact. Mentions légales.