version 1.0
12 Mai 2015
StartUSB MikroE Card 18F2550
Test UART
en mode interruption et ADC
Test liaison USB
Terminal et ADC (avec bootloader inclus)
La Suite .. SANS le
bootloader inclus.
Terminal
HID USB + ADC + LCD I2C 4x20
Rajout
Timer1
Lien sur StartUSB 18F2250 DDS AD9835
Test
UART en mode interrupt & ADC
usage d'un PIC18F2550 installé sur une carte d'evaluation
StartUSB et du Pickit3 Microchip pour charger l'executable
Environnement: MikroC Pro 6.50
Testé avec oscillateur interne
Fosc=8Mhz
Attention à la config des bits , pour l'Horloge FOSC
assez compliqué sur les PICs avec USB !
le fichier de config idoine : P18F2550_Fosc_Interne_8MHz_19200bds.cfgsch
Si la config est OK, FOSC (interne) =8MHZ, et la COM est bien à 19200 bauds
Hardware & Software :
L'oscillateur à quartz 8Mhz , n'est pas utilisé
RA1 est utilisée comme entrée ANA , reçoit le curseur du Potar lineaire de 22K, alimenté en 5V
Malgré l'Init ADC via la bibliotheque, celle ci est reprise via les registre MCU (aspect didactique)
et la mesure est faite aussi via les registre MCU.
On utilise les leds sur RA1 et RB1 pour visualiser la position de la mesure ADC,par rapport à la valeur ceutrale ADC = 512 points pour 2,5V.
Si ADC mesure < 502 .. led verte allumée
si ADC mesure > 522 .. led rouge allumée
sinon les 2 leds sont eteintes
La valeur de l'ADC est envoyée sur le terminal, en decimal, hexadecimal et en Volts.
L'UART est initailisé à 19200,8,1,N
Les Pins RC6 TX et RC7 Rx sont reliée à l'interface 2Tr ,pour adaptation aux niveaux RS232 +-12V sur mon PC .
NE PAS OUBLIER L'INTERFACE, sous peine de MCU mouru..
L'interruption RX UART est définie et activee. Reception dans Buffer1 ..
si on rencontre un <CR> ou buffer1 full , on arme un drapeau (Flag_Buffer1)
qui doit donc etre testé dans le main programme, pour en déduire une action à faire.
Ici ,on attent une chaine de caractere representant un entier long 32 bits sous la forme Hexadecimale soit 8 digist de 0 à F
En retour on donne : le contenu du Buffer1 et la valeur decimale correspondante.
Le timer 1 est pret, mais non utilisé ici..
RB7 et RB6 restent libres pour l' ICSP via le Pickit3
car le bootloader MikroE original est effacé.(volontairement)
Resultat sur terminal RS232 : <--- C'est la derniere fois..la prochaine , via USB
Projet complet eMikroC Pro
Source : 18F2550_test_UART_IT_ADC.html
Zip du projet : 18F2550_test_UART_IT_ADC.zip avec source documenté !
Datasheet :PIC18F2550_USB_39632e.pdf
Test ADC et liaison USB avec HID Terminal SANS UART !
usage d'un PIC18F2550 installé sur une carte d'evaluation StartUSB
Environnement: MikroC Pro 6.50
Testé avec Q=8MHz Fosc=48Mhz
Rechargement du MikroBootloader dans le PIC18F2550
Condition necessaire pour utiliser le HID terminal :
il faut que le bootloader soit INSTALLE !
re-installation du bootloader
C:\_MikroC\_MesProjets_MikroC\_USB\mikroBootloader USB HID\Firmware\
PIC18F2550 USB HID Bootloader v1.30.hex (dispo sur le site MikroE)
Le fichier Hex est chargé dans le 18F2550 StartUSB via la liaison classique connecteur ICPS et Pickit3
aucun probleme..
Une fois le bootloader reinstallé, on peut passer au Test suivant
TEST Liaison USB avec HID Terminal
Attention à la config Horloge .
Usage du quartz 8Mhz et FOSC=48Mhz
fichier de config P18F2550_Q8MHZ_48Mhz.cfgsch
Le Pickit3 n'est plus necessaire.
L'application est chargée via le microbootloader inclus dans les outils MikroC, via la liaison USB
Projet MikroC:
18F2550_Test_ADC_USB_terminal.c.zip
Liste files du zip
Ce petit programme , derivé de l'exemple mikroC, ne fait que l' Acquisition ADC RA0
sur reception de la commande "ADC" , et affiche la valeur en decimal,Hexa et equivalent Volts sur le terminal HID USB MikroE
fichier IMPORTANT : USB descriptor 18F2550_Test_ADC_USB_terminal.c
Lorsqu'on lance le HID Terminal, APRES un reset sur la carte StarUSB
on doit retrouver le nom du Descriptor dans la liste USB HID Library
Avec l'Outil USBVIEW.exe ,on retrouve les differents peripheriques USB associés.
Terminal connecté via USB HID libray Decripteur HID terminal Usage de USBVIEW/exe Le resultat sur le HID terminal:
lien tres interessant sur ce meme sujet:
Tutorial HID terminal
12/05/2015
LA SUITE ! sans le bootloader installé
Question posée sur le forum MikroC Pro
sujet: Re: USB HID problem with EASYPIC7
réponse de Aleksandar.Mitrovic
Donc retour à la case départ, POURQUOI , Le HID terminal est reconnu AVEC bootloader et non SANS bootloader ?
Avec le bootloader chargé + l"Aplli de test HID terminal
Je relis le contenu du PIC18F2550 avec le Pickit3 , pour recuperer l'etat des bits de config..
ETAT DIFFERENT de celui imposé par l'appli de test !
La config Bootloader prend donc le pas sur celle de l'appli chargée apres.!
Je refais donc un fichier de config, via Edit Projet, similaire à celui vu par Picki3
J'obtiens le nouveau fichier de config tres clairement renomé : P18F2550_Q8MHZ_48Mhz_Terminal_HDI.cfgsch
Je RAZ completement le contenu du PIC , avec Pickit3 , pour effacer le bootloader
et je recharge , via Pickit3 ICSP (puisque'il n'y a plus le bootloader!) l'appli de test HID terminal
flanquée de cette nouvelle config bits...
Source C : 18F2550_Test_ADC_USB_terminal_150512.c
Chargeur: 18F2550_ADC_USB_Terminal_150512.hex
Je relance le tout, avec Le HID Terminal connecté sur l'USB du 18F2550
Miracle .. tout fonctionne OK
Rajout d'un LCD I2C 4x20 .
Le bus I2C se retrouve sur les pins RB0 et RB1 .
Le LCD I2C est raccordé via un connecteur 4 pins : Gnd,+5V,SDA,SCL
sur la carte StartUSB ..
Test LCD -> BAD !
Apres maintes recherche, je raccorde en exterieur de la carte , 2 R de 2,7K pour tirer
les lignes du bus I2C (SDA et SCL) au + 5V
Là , c'est OK, le LCD reagit aux commandes.
prototype
schema
Schema ISIS : 18F2550_ADC_I2C_LCD_HID_terminal_150513.DSN
projet mikroC :
18F2550_Test_ADC_I2C_LCD_USB_terminal_150513.zip
Version avec Timer1
utilisé en interruption (Low level) pour afficher le resultat sur le LCD
sans demande emanant du HID terminal , raffraichissement à 1 seconde
Config Timer1 :
init timer1 à 3035 et prescaler=1/8 at 48MHz
comptage 24 * 41.666mS = 1 seconde
Le Timer1 sert aussi à ne pas rester bloqué dans une phase d'attente recepetion HID terminal.
Chargeur : 18F2550_ADC_USB_LCD_I2C_HID_with_Bootloader_150514.hex
Recuperation du contenu 18F2550 via relecture par Pickit3
donc contient le bootloader + l'application :
Relecture_18F2550_ADC_USB_LCD_I2C_HID_with_Bootloader.hex
Test de ce fichier : Pickit3 branché sur connecteur ICSP StartUSB
Effacement complet du PIC FFF de partout
Chargement du fichier ...OK.....Debranchement du Pickit
Remis la liaison USB du StartUSB
et test .. LCD OK, HID terminal OK