Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur le langage C !

Modérateur : Jérémy

PIC16F84A + XC8 = écrire sur le port série
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#11 Message par satinas » ven. 16 déc. 2022 21:21

Bonsoir
Pour le pic à 4MHz, essayer les modes XT et HS, sur un 16F877 l'un démarrait et pas l'autre.
Difficile de faire un uart sofware en C car on ne maîtrise pas les timings.
Un exemple de debug 16F84 4MHz sur uart 14400 bauds, j'avais fait ça pour l'horloge 16F84.

Code : Tout sélectionner

#define PIN_DBG_UART PORTA,4  ; debug serial

        bsf     PIN_DBG_UART  ; debug tx high
        bsf     STATUS,RP0    ; bank 1
        bcf     PIN_DBG_UART  ; debug tx output
        bcf     STATUS,RP0    ; bank 0

;-----------------------------------------------------------------------------
; debug
;-----------------------------------------------------------------------------
; envoi uart debug W, 14400 bauds avec (Fosc=4MHz)
;
DbgW    bcf     PIN_DBG_UART  ; ! ! start bit
        movwf   dbg_byte      ; 1 1
        clrf    dbg_looph     ; 1 1
        bsf     dbg_looph,3   ; 1 1
        call    r85           ; T T
        nop                   ; 1 1
        nop                   ; 1 1
r81     rrf     dbg_byte,F    ; 1 1 1 1 1 1
        btfss   STATUS,C      ; 1 2 1 2 1 2
        goto    r82           ; 2   2   2
        goto    r83           ;   2   2   2
r82     nop                   ; 1   1   1
        bcf     PIN_DBG_UART  ;     ! !
        goto    r84           ;     2 2
r83     bsf     PIN_DBG_UART  ;         ! !
        goto    r84           ;         2 2
r84     call    r85           ;     T T T T
        decfsz  dbg_looph,F   ;     1 1 1 1
        goto    r81           ;     2 2 2 2
        bsf     PIN_DBG_UART  ; ! stop bit
        call    r85
r85     movlw   17            ; T = 2+2+51+2
        movwf   dbg_loopl
        nop                   ; 11+57+1 -> 69us
r86     decfsz  dbg_loopl,F
        goto    r86
        return

DbgWH   movwf   dbg_hexa      ; envoi uart debug W en hexa
        swapf   dbg_hexa,W
        andlw   0x0f
        addlw   6
        btfsc   STATUS,DC
        addlw   7             ; +32 pour minuscules
        addlw   42
        call    DbgW
        movf    dbg_hexa,W
        andlw   0x0f
        addlw   6
        btfsc   STATUS,DC
        addlw   7             ; +32 pour minuscules
        addlw   42
        call    DbgW
        return

PIC16F84A + XC8 = écrire sur le port série
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#12 Message par paulfjujo » sam. 17 déc. 2022 09:28

bonjour satinas

satinas a écrit :Bonsoir
Pour le pic à 4MHz, essayer les modes XT et HS, sur un 16F877 l'un démarrait et pas l'autre.
Difficile de faire un uart sofware en C car on ne maîtrise pas les timings.
Un exemple de debug 16F84 4MHz sur uart 14400 bauds, j'avais fait ça pour l'horloge 16F84.
[code]
...

btfss STATUS,C ; 1 2 1 2 1 2
....
/code]


:eek: Bizarre ! le C du status est bien reconnu ici !

Mon test 16F84 marche avec un filtre céramique 4MHZ au lieu d'un quartz, config en mode XT

Effectivement le Software UART ne fait pas bon ménage si on utilise par ailleurs les interruptions ,
,sinon les timings sont respectés.

Question:

:eek: La programmation de mon PIC prend plusieurs minutes !
ICPROG utilise Windows API au lieu de Direct I/O ..vu que Windows n'autorise plus les acces direct I/O
est-ce suffisant pour expliquer ce delai hors normes ?
je n'ai plus de PC Win98 pour recomparer le delai avec option Direct I/O
Aide toi, le ciel ou FantasPic t'aidera

PIC16F84A + XC8 = écrire sur le port série
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#13 Message par satinas » sam. 17 déc. 2022 09:36

Bonjour Paul
Pourquoi tu ne programmes pas le 16F84 avec un PicKit3 ?
La routine ci-dessus peut aller beaucoup plus vite en diminuant la tempo r85. Le simulateur permet de vérifier les timings en affichant le nombre de cycles consommés, je pense jamais à l'utiliser.
Pour ta question, non bien sûr les API sont aussi très rapides, il y a sans doute une différence mais peu significative. sI Le PC envoie 2ko en 1 minute cela fait du 300 bauds :) Sur le PicKit3 cela prend quelques secondes, mais souvent ça passe bas, message d"erreur, à en devenir fadoli.
 

PIC16F84A + XC8 = écrire sur le port série
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#14 Message par paulfjujo » sam. 17 déc. 2022 09:57

satinas a écrit :Bonjour Paul
....Pourquoi tu ne programmes pas le 16F84 avec un PicKit3 ?

 


parce que le 16F84 n'est pas dans la liste du pickit3 ...
et de mémoire il a toujours fallu que j'utilise mon POK58 pour ce vieux 16F84

Par contre; il y le 16F84A !
Aide toi, le ciel ou FantasPic t'aidera

PIC16F84A + XC8 = écrire sur le port série
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#15 Message par satinas » sam. 17 déc. 2022 10:02

J'ai aussi des 16F84, le projet est configuré en 16F84, il propose en programmateur PicKit3 (PicKit1 et PicKit2 en rouge) et rien en debugger hardware. Et il se programme en 5V, un coup sur deux.
Je parle de MPLAB avec projet ASM, mais pour MPLABX cela a l'air possible aussi.

PIC16F84A + XC8 = écrire sur le port série
Pikachu
Débutant
Débutant
Messages : 60
Enregistré en : septembre 2016

#16 Message par Pikachu » sam. 17 déc. 2022 11:41

Bonjour a tous,
paulfjujo a écrit :Par contre; il y le 16F84A !

A propos du 16F84 et 16F84A il y a eut une discussion avec maître Bigonoff, c’est vrai que cette codification fait débat
En réalité, je ne sais ce qu'il en est ?

Bonne journée

PIC16F84A + XC8 = écrire sur le port série
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#17 Message par paulfjujo » sam. 17 déc. 2022 16:09

suite à la remarque de Satinas, essais suivants réalisés :
avec Hardware :
PIC1684 (tout seul sur breaboard)
uniquement les connections ICSP RB6,RB7 + MCLR ,Vcc et Gnd relié au Pickit3 (ou 4)

essai avec Pickit3 stand alone
ne connait pas 16F84 , seulement le 16F84A

essai avec MPLABX IPE 6.00 .. reconnait Pickit3
propose bien le 16F84
click sur CONNECT => Connection Failed.
mais impossible de connecter ... (meme avec alim externe!)

Test avec MPLABX IPE 6.00 . et Pickit4
Connecting to MPLAB PICkit 4
POWER : Pickit4 alimente le PIC1684 (tout seul sur breaboard)
uniquement les connections ICSP + MCLR ,Vcc et Gnd (100nF entre +Vcc et Gnd)

Currently loaded versions:
Application version...........00.07.28
Boot version..................01.00.00
Script version................00.04.97
Script build number...........76c444c118
Tool pack version ............1.12.1384
PICkit 4 is supplying power to the target (5,00 volts).

Loading code from C:\MPLABX_Projects\16F84_Tests.X\dist\default\production\16F84_Tests.X.production.hex...
2022-12-17 14:29:33 +0100 - Hex file loaded successfully.

2022-12-17 14:30:44 +0100 - Programming...
*****************************************************
Reception on endpoint 129 failed (err = -10031)
A communication error with the debug tool has occurred.
The tool will attempt to recover momentarily.
Connection Failed.
Reception on endpoint 129 failed (err = -10121)
====================

recommence avec cette fois, alim externe 5V
Connecting to MPLAB PICkit 4

Currently loaded versions:
Application version...........00.07.28
Boot version..................01.00.00
Script version................00.04.97
Script build number...........76c444c118
Tool pack version ............1.12.1384
Target voltage detected
2022-12-17 14:56:20 +0100 - Programming...
*****************************************************
Erasing...
The following memory area(s) will be programmed:
program memory: start address = 0x0, end address = 0x3ff
configuration memory
EEData memory
User Id Memory
Programming/Verify complete
2022-12-17 14:56:44 +0100 - Programming complete

:sifflotte: programmation en 20 sec! au lieu de plusieurs minutes avec ICProgr!!!
..ouf !
:-D ..OK

j'en ai profité pour rajouter un quartz de 8Mhz, recompiler ,recharger ..OK 9600 bds
16F84_Tests_9600.zip



MPLABX_IDE_600_XC8_Test_16F84_9600bds.jpg
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par paulfjujo le sam. 17 déc. 2022 16:35, modifié 2 fois.
Aide toi, le ciel ou FantasPic t'aidera

PIC16F84A + XC8 = écrire sur le port série
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#18 Message par paulfjujo » sam. 17 déc. 2022 16:32

gwion a écrit :Par contre je trouve du 4MHz qui se balade un peu partout sur les pin's, et je me demande si la breadboard est judicieuse avec un oscillateur à quartz...


OUI, voir post precedent ... test sur breadboard au lieu d ema carte Bluebird ..
par contre il ne faut pas oublier de tirer la Pin MCLR au +VCC via une R 10K
sinon le demarrage du PIC ( oscillateur) est aleatoire...
ainsi qu'un 100nf entre les pin +Vcc et Gnd 0V
Aide toi, le ciel ou FantasPic t'aidera

PIC16F84A + XC8 = écrire sur le port série
gwion
Amateur
Amateur
Messages : 192
Enregistré en : février 2022

#19 Message par gwion » dim. 18 déc. 2022 11:04

Bonjour Paul, bonjour tout le monde,

Merci encore et toujours pour ta fort sympathique implication :-D

Pour lever tous les doute, je suis en train de terminer une petite carte de test. Elle permettra au moins d'exclure des problèmes de connexion fréquents avec les breadboards.

Bon dimanche !

IMG_4163.jpg
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

PIC16F84A + XC8 = écrire sur le port série
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#20 Message par paulfjujo » dim. 18 déc. 2022 14:36

bonjour,

il fut un temps ou il y avait aussi ce type de carte bien adaptée au prototypage
magasins Tandy aujourd'hui disparus !

Tandy_RadioShack_276-1688.jpg
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Aide toi, le ciel ou FantasPic t'aidera


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 47 invités