• 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

    images/t_StartUSB_18F2550_Test_ADC_UART_Schem.gif images/t_StatUSB_UART_ADC_Test.gif
    Test StarUSB schema in Run

    Attention à la config des bits , pour l'Horloge FOSC
    assez compliqué sur les PICs avec USB !

    images/t_StartUSB_18F2550_Test_ADC_UART_Config.gif

    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

    mages/t_Proto_StartUSB_link_HID_150510.gif
    in Run



    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..

    images/t_StartUSB_Rechargement_Bootloader_150510.gi

    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.

    images/t_HID_Terminal_terminal.gif
    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

    recuperation config Qui marche recopie config dans le fichier de test HID terminal
    images/Config_AVEC_bootloader_et_test_terminal_HID_Ok.jpg *
    reconfig bits
    via Edit Project
    et usage de la table 25-1 (datasheet 18F2550 Config bit register)
    to get the same values as on Pickit3

    CONFIG1L : $300000 : 0x0021
    CONFIG1H : $300001 : 0x004E
    CONFIG2L : $300002 : 0x002E
    CONFIG2H : $300003 : 0x001E
    CONFIG3H : $300005 : 0x0081
    CONFIG4L : $300006 : 0x0081
    CONFIG5L : $300008 : 0x000F
    CONFIG5H : $300009 : 0x00C0
    CONFIG6L : $30000A : 0x000F
    CONFIG6H : $30000B : 0x00E0
    CONFIG7L : $30000C : 0x000F
    CONFIG7H : $30000D : 0x0040
    */


    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.

    images/t_StartUSB_ADC_LCD_I2C_USB_terminal.gif images/t_18F2550_ADC_I2C_LCD_HID_terminal_150513.gi

    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

    paulfjujo@free.fr


    Retour à l'index general