A A A

Electronicfr.com

Home arrow Microcontrollers and USB 21.11.2008

Main Menu

Home
Robotic
Microcontrollers and Ethernet
Microcontrollers and USB
Embedded computing
Submit a circuit

Search

Google
Web
electronicfr


Part 1 : How to build a USB device with a PIC 18F4550 or 18F

Go back to the article

Comment in question
Posted by Alain, on 17-02-2008 11:49, IP 82.241.45.83
1. PIC18F4550
Bonjour monsieur, 
 
Votre article sur le PIC18F4550 est formidable , car il résume clairement tout ce qui est nécesssaire à la réalisation d'une interface équipéé d'un pic 18F4550 , mais malgré cela mon montage ne fonctionne pas. 
 
Pouvez vous m'aider ou me donner des conseils sur cette réalisation. 
 
J'ai réalisé une carte pour programmer des PIC's (PC com1 RS232 vers ICSP) et une carte d'interface avec un 18F4550 ( connecteur ICSP pour la programmation , quartz 20MHZ ). 
 
Le programmeur de PIC et cette carte d'interface fonctionnent correctement avec des fichiers HEX pour la classe HID que j'ai trouvé sur internet ( exemples : je peux allumer les leds et relire 
des entrées logiques , tout fonctionne normalement. 
 
Mais je voudrais par moi-même développer des applications en me basant sur votre article. 
 
Voilà ce que j'ai réalisé pour tester mon montage: 
 
j'ai enlevé les barres commentaires dans le fichier usbcfg.h : 
#define USE_SELF_POWER_SENSE_IO 
#define USE_USB_BUS_SENSE_IO 
 
Dans le fichier _cfg.h j'ai bien modifié les defines suivants : 
#define mLED_1 LATBbits.LATB0 
#define mLED_2 LATBbits.LATB1 
#define mLED_3 LATBbits.LATB2 
#define mLED_4 LATBbits.LATB3 
 
Dans le fichier user.c j'ai placé l'exemple 3 
void Exercise_03(void){ 
if(getsUSBUSART(input_buffer,1 )) 

if(input_buffer[0] == '1') 
mLED_4_Toggle(); 

 
Comme je n'utilise pas de bootloader mais le technique ICSP 
 
J'ai remplacé rm18f4550.lkr par le 18f4550.lkr. 
J'ai supprimé dans le main.c le Vector Remapping.  
 
Je n'ai pas d'erreur de compilation et je retrouve bien le fichier MCHPUSB.hex 
dans le répertoire MCHPFSUSB/fw/Cdc/_output. 
 
J'ai téléchargé ce fichier MCHPUSB.hex via le connecteur ICSP avec WinPic800 
avec la configuration COM1 pour le JDM Programmer. 
 
Quand je branche le connecteur USB au PC pour la première fois , il me demande 
le driver correspondant , j'ai fourni le driver MCHPUSB.inf qui se trouve dans le répertoire 
MCHPFSUSB/Pc/MCHPFSUSB Driver/Release , Windows est satisfait de ce driver!. 
 
Ensuite j'ai essayé les logiciels Hyperterminal et REC232.EXE , j'ai testé la transmission 
RS232 et j'ai bien le caractère '1' = 31H transmis sur la ligne , mais aucunes led's ne répondent 
à cette commande. 
 
Pouvez m'aider! En vous remerçiant d'avance.
 
» Report this comment to administrator
» Reply to this comment...
» See all 1 replie(s)

1 replies
Posted by Sylvain, on 18-02-2008 17:04, IP 129.104.38.5
1. PIC18F4550
Bonjour, 
 
Merci pour vos encouragements. 
Je pense que vous êtes sur la bonne voie. Le problème de ces montage c'est que c'est très difficile à debugger et qu'il faut être patient... 
 
 
 
> j'ai enlevé les barres commentaires dans le fichier usbcfg.h : 
#define USE_SELF_POWER_SENSE_IO 
#define USE_USB_BUS_SENSE_IO 
 
Je pense qu'il faut au contraire laisser ces commentaires (je n'ai pas mon code sous les yeux, mais de mémoire avec le montage que je décris il les faut). 
 
 
 
> Dans le fichier user.c j'ai placé l'exemple 3 
void Exercise_03(void){ 
if(getsUSBUSART(input_buffer,1 )) 

if(input_buffer[0] == '1') 
mLED_4_Toggle(); 

 
 
Ok, vous pouvez aussi essayer d'envoyer des caractères en continue 
 
> Comme je n'utilise pas de bootloader mais le technique ICSP 
 
> J'ai remplacé rm18f4550.lkr par le 18f4550.lkr. 
> J'ai supprimé dans le main.c le Vector Remapping.  
 
 
Ça c'est très bien 
 
> Quand je branche le connecteur USB au PC pour la première fois , il me demande 
> le driver correspondant , j'ai fourni le driver MCHPUSB.inf qui se trouve dans le répertoire 
> MCHPFSUSB/Pc/MCHPFSUSB Driver/Release , Windows est satisfait de ce driver!. 
 
 
Est-ce qu'un nouveau port COM apparaît? Il faut aller dans le gestionnaire de périphériques de windows et voir si le nouveau port apparaît? Y a t-il un point d'exclamation devant l'USB ou autre chose? 
 
 
D'abord vérifier si le port COM apparait. S'il apparaît (c'est très bon signe) il faut alors configurer l'hyperterminal pour ce port avec les bon paramètres de communication. Si ça n'apparaît pas c'est soit un problème de mont
 
» Report this comment to administrator
» Reply to this comment...



mXcomment 1.0.5 © 2007-2008 - visualclinic.fr
License Creative Commons - Some rights reserved
 
TOP