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 ---
- 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 ---
Modérateur : mazertoc
Bizarrerie sur Usart
Bonjour tout le forum,
Voici un schéma tout simple, communication avec l'usart
Le seule problème, c'est quand je branche le microcontrôleur comme sur le plan ci-dessus, Le microcontrôleur se retrouve alimenté, pouvez vous m'expliquer le pourquoi
L'entrée de l'usart (RX) du microcontrôleur serait t'elle endommagé ?
Voici le code à tout hasard
A+
Voici un schéma tout simple, communication avec l'usart
Le seule problème, c'est quand je branche le microcontrôleur comme sur le plan ci-dessus, Le microcontrôleur se retrouve alimenté, pouvez vous m'expliquer le pourquoi
L'entrée de l'usart (RX) du microcontrôleur serait t'elle endommagé ?
Voici le code à tout hasard
Code : Tout sélectionner
;***********************************************************************************************
Errorlevel-302 ; Supprime le message "Ensure that bank bits are correct"
radix dec ; par defaut en mode décimal
list p=18f26K22 ; processeur utilisé
#include <p18f26K22.inc> ; Définitions des constantes
;***********************************************************************************************
; CONFIG11H
CONFIG FOSC = INTIO67
CONFIG FCMEN = OFF
CONFIG IESO = OFF
; CONFIG2L
CONFIG PWRTEN = OFF
CONFIG BOREN = OFF
CONFIG BORV = 190
; CONFIG2H
CONFIG WDTEN = OFF
CONFIG WDTPS = 1
; CONFIG3H
CONFIG CCP2MX = PORTC1
CONFIG PBADEN = OFF
CONFIG CCP3MX = PORTC6
CONFIG HFOFST = OFF
CONFIG T3CMX = PORTC0
CONFIG P2BMX = PORTC0
CONFIG MCLRE = INTMCLR
; CONFIG4L
CONFIG STVREN = ON
CONFIG LVP = OFF
CONFIG XINST = OFF
CONFIG DEBUG = OFF
; CONFIG5L
CONFIG CP0 = OFF
CONFIG CP1 = OFF
CONFIG CP2 = OFF
CONFIG CP3 = OFF
; CONFIG5H
CONFIG CPB = OFF
CONFIG CPD = OFF
; CONFIG6L
CONFIG EBTR0 = OFF
; CONFIG6H
CONFIG EBTR1 = OFF
; CONFIG7L
CONFIG EBTR2 = OFF
; CONFIG7H
CONFIG EBTR3 = OFF
;***********************************************************************************************
;------------------------------ information sur le brochage Usart ------------------------------
;------------------------------------- RC6 = TX, RC7 = RX --------------------------------------
;*************************************** assignations *****************************************
#DEFINE dc LATA,0 ; RA0 ==> sélection du mode : commande = 0 , donnée = 1
#DEFINE cs LATA,1 ; RA1 ==> activer ou désactiver la transmission
#DEFINE rst LATA,2 ; RA2 ==> reset de l'écran
#DEFINE sck LATC,3 ; RC3 ==> horloge de synchronisation
#DEFINE mosi LATC,4 ; RC4 ==> envoyer les données sur écran oled 128x64
#DEFINE led1 LATB,3 ; RB4 led verte, témoin de mise en fonction de l'appareil
#DEFINE seet LATA,0 ; pour emettre niveau haut
;********************************* "déclaration des variables" *********************************
CBLOCK H'20' ; bank0
loop0 :1
loop1 :1
loop2 :1
loop3 :1
loop4 :1
loop5 :1
loop6 :1
loop7 :1
loop8 :1
loop9 :1
indique :1
avance :1
buzzer :1
res16 :1
res8 :1
unité :1
dizaine :1
centaine :1
millième :1
dix_millième :1
afficheur :1
virgule :1
passage :1
reference :1
delay :1
dividende :1
diviseur :1
quotient :1
reste :1
temps :2
tmps :2
durée :1
adresse_hig :1
adresse_low :1
donner :1
bits :1
envoyer :1
ENDC
;********************************** "déclaration des macros" ***********************************
;************************* "Macro pour se positionner dans un tableau" *************************
tableau MACRO adresse
movlw UPPER(adresse) ;
movwf TBLPTRU ;
movlw HIGH(adresse) ;
movwf TBLPTRH ;
movlw LOW(adresse) ;
movwf TBLPTRL
ENDM
;** "Macro pour faire une durée de temps, qui peut aller de 10 ms minimum à 2550 ms maximum "**
delay_s MACRO valeur1
movlw valeur1 ;
movwf durée ; durée du temps défini par la valeur1
call _10ms
ENDM
;** "Macro pour faire une durée de temps, qui peut aller de 1 ms minimum à 255 ms maximum "**
delay_ms MACRO valeur1
movlw valeur1 ;
movwf durée ; durée du temps défini par la valeur1
call _1ms ;
ENDM
;** "Macro pour faire une durée de temps, qui peut aller de 1 µs minimum à 255 µs maximum "**
delay_µs MACRO valeur1
movlw valeur1 ;
movwf durée ; durée du temps défini par la valeur1
call _1µs ; 250 ns
ENDM
;******************************* "adresse de depart après reset" *******************************
ORG H'0'
bra debut
ORG H'8' ; interruption haute priorité
retfie FAST
ORG H'18' ; interruption base priorité
retfie FAST
debut
;***************** "configuration de la bank sélectionné du microcontrôleur" *******************
movlb 0x0F ; BSR pointe sur la banque 15
;******************** "configuration de l'oscillateur du microcontrôleur" **********************
movlw B'01110100' ; oscillateur à 16 Mhz, fréquence stable si PLL (16 * 4)= 64 Mhz
; movlw B'01100100' ; oscillateur à 8 Mhz, fréquence stable si PLL (8 * 4) = 32 Mhz
; movlw B'01010010' ; oscillateur à 4 Mhz, fréquence stable
; movlw B'01000010' ; oscillateur à 2 Mhz, fréquence stable
; movlw B'00110010' ; oscillateur à 1 Mhz, fréquence stable
movwf OSCCON
movlw B'00000000' ;
movwf OSCCON2 ;
;**************************** configuration du registre OSCTUNE ********************************
movlw B'01000000' ; bit 6 à 1 : PLL * 4
movwf OSCTUNE ; bit 6 à 0 : PLL désactivé
;*************************** configuration du registre ANSELA **********************************
movlw B'00100000' ; en mode numérique : 7(RA5)
movwf ANSELA ; en mode E/S : 2(RA0), 3(RA1), 4(RA2), 5(RA3)
;**************************** configuration du registre ANSELB *********************************
movlw B'00000000' ; en mode numérique :
movwf ANSELB ; en mode E/S : 21(RB0), 22(RB1) 23(RB2), 24(RB3), 25(RB4), 26(RB5)
;**************************** configuration du registre ANSELC *********************************
movlw B'00000000' ; en mode numérique :
movwf ANSELC ; en mode E/S : 13(RC2), 14(RC3), 15(RC4), 16(RC5), 17(RC6), 18(RC7)
;*************************** configuration du registre ADCON0 **********************************
movlw B'00000000' ; b0 = ADON mise en service le convertiseur 0 = arrêt : 1 = marche
movwf ADCON0 ; b1 = GO/DONE indique la fin de la conversion analogique, et permet de lancer la conversion
; b2 à b6 = réglage de la sélection du canal
;*************************** configuration du registre ADCON1 **********************************
movlw B'00000000' ; b2 à b3 = 00 : sélection de la tension de reférence, Vref+ = Vss
movwf ADCON1 ; b0 à b1 = 00 : sélection de la tension de reférence, Vref- = Vdd
;*************************** configuration du registre ADCON2 **********************************
movlw B'00001101' ; b0 à b2 = FOSC/64
movwf ADCON2 ; b3 à b5 = 16 TAG
;
; b7 = détermine si le résultat de la conversion
; sera justifié à droite = 1 ou à gauche = 0
;***********************************************************************************************
movlw B'00000000' ; comparateur 1 off
movwf CM1CON0
movlw B'00000000' ; comparateur 2 off
movwf CM2CON0
;***************** configuration des registres TRISA & TRISB & TRISC & TRISE *******************
movlw B'00100000' ; RA0(2), RA1(3), RA2(4), RA3(5), RA4(6), RA5(7), RA6(10), RA7(9)
movwf TRISA ;
movlw B'11110111' ; RB0(21), RB1(22), RB2(23), RB3(24), RB4(25), RB5(26), RB6(27), RB7(28)
movwf TRISB ;
movlw B'10000001' ; RC0(11), RC1(12), RC2(13), RC3(14), RC4(15), RC5(16), RC6(17), RC7(18)
movwf TRISC ;
movlw B'00001000' ; RE3(1)
movwf TRISE ;
; VSS(8), VSS(19), VDD(20)
;******************************* configuration du registre T1CON *******************************
movlw B'10000100' ; mode asynchrone, division par 0
movwf T1CON
;***********************************************************************************************
movlw D'103' ; 9615 bauds(103 décimal, holorge 64 Mhz)
movwf SPBRG1 ; 19230 bauds(51 décimal, horloge 64 Mhz)
; 8 bit, transmition activé, mode asynchronouse, basse vitesse
movlw B'00100000' ;
movwf TXSTA1 ; TXSTA1, TX1STA, TXSTA = H'0FAC'
movlw B'10010000' ; réception ouvert, 8 bits, mode asynchrone
movwf RCSTA1 ; RCSTA1, RC1STA, RCSTA = H'0FAB'
;******************************* configuration du registre T1CON *******************************
movlw B'10000100' ; mode asynchrone, division par 0
movwf T1CON ; comptage sur l'entrée RC0
;******************************* configuration du registre PIE1 ********************************
movlw B'00000000'
movwf PIE1 ; b0 = 0 désactivé le débordement du timer1
;**************************** configuration du registre INTCON2 ********************************
movlw B'00000000' ; B7 = 0 résistances en service
movwf INTCON2 ; interuption base priorité
;**************************** configuration du registre WPUB ***********************************
movlw B'11110111' ; tirage de résistance sur : RB0(21), RB1(22), RB2(23), RB3(24), RB4(25), RB5(26), RB6(27), RB7(28)
movwf WPUB ; pas de tirage de résistance sur :
;**************************** configuration du registre RCON ***********************************
movlw B'00000000' ;
movwf RCON ;
;**************************** configuration du registre INTCON *********************************
movlw B'00000000' ; hors service interruption
movwf INTCON ;
;************************************ départ du programme **************************************
movlb 0x00 ; BSR pointe sur la banque 0
;***********************************************************************************************
clrf PORTA
clrf PORTB
clrf PORTC
clrf LATA
clrf LATB
clrf LATC
movf RCREG,W ; lectures pour vider le tampon
movf RCREG,w ;
movf RCREG,w
;**************************** " témoin visuel de mise en fonction" *****************************
movlw D'4' ; pour 2 clignotements
movwf loop5
clignote
btg led1
delay_s 50 ; macro : 500 ms temps de visionnage
decfsz loop5,F ;
bra clignote
;***********************************************************************************************
;***********************************************************************************************
terminer
nop
bra terminer
;************************************** "reception Usart" **************************************
rx_rec
btfss PIR1,RCIF ; caractère reçu
bra rx_rec ;
movf RCREG,W ; transmettre le caractère reçu dans W
return
;************************************** "émission Usart" ***************************************
tx_emi
btfss TXSTA,TRMT ;
bra tx_emi ;
movwf TXREG1 ;
return
;********************** "pause de 10 millisecondes pour horloge de 64 Mhz" *********************
_10ms
movlw D'201' ;
movwf loop1 ;
movlw D'208' ;
movwf loop2 ;
decfsz loop1 ;
bra $-D'2' ;
decfsz loop2 ;
bra $-D'6' ;
decfsz durée,F ;
bra _10ms ;
return
;********************** "pause de 1 millisecondes pour horloge de 64 Mhz" **********************
_1ms
movlw D'198' ;
movwf loop1 ;
movlw D'21' ;
movwf loop2 ;
decfsz loop1,F ;
bra $-D'2' ;
decfsz loop2,F ;
bra $-D'6'
decfsz durée,F ;
bra _1ms ;
return
;********************** "pause de 1 microseconde pour horloge de 64 Mhz" ***********************
_1µs
movlw D'4' ;
movwf loop1 ;
decfsz loop1,F ;
bra $-D'2' ;
decfsz durée,F ;
bra _1µs ;
return
End
A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Bizarrerie sur Usart
-
francois77
Passionné- Messages : 307
- Enregistré en : avril 2022
Bizarrerie sur Usart
Bonsoir francois77, et tout le forum,
J'ai oublié de dire que mon pic est alimenté en 3.6 volts, le module CH340 renvoi du 5 volts sur la broche RX de mon Pic, je pense pas que cela pose problème (reste à voir avec les spécialistes de l'usart)
A+
J'ai oublié de dire que mon pic est alimenté en 3.6 volts, le module CH340 renvoi du 5 volts sur la broche RX de mon Pic, je pense pas que cela pose problème (reste à voir avec les spécialistes de l'usart)
A+
Bizarrerie sur Usart
-
francois77
Passionné- Messages : 307
- Enregistré en : avril 2022
Bizarrerie sur Usart
Re
Pour les essais j'utilise une pile li-ion 4.2 (au plus haut) et 3 volts (au plus bas), après faut recharger l’accu.
Bien sur que je peux utiliser le 5 volts pour les essais, mais est ce que ça peut endommager le pic si on envoi du 5 volts sur sa broche RX alors qu'il est alimenté en 3.6 volts ?
A+
Pour les essais j'utilise une pile li-ion 4.2 (au plus haut) et 3 volts (au plus bas), après faut recharger l’accu.
Bien sur que je peux utiliser le 5 volts pour les essais, mais est ce que ça peut endommager le pic si on envoi du 5 volts sur sa broche RX alors qu'il est alimenté en 3.6 volts ?
A+
Bizarrerie sur Usart
Bonsoir,
Ce n'est pas conseillé d'envoyer du 5V si le pic est alimenté en 3,6V. Dans le datasheet, chapitre "Electrical specifications", il est indiqué qu'il ne faut pas dépasser Vdd+0,3V sur les inputs. Heureusement il y a une diode de protection vers Vdd, elle devient passante et peut alimenter le pic s'il y a assez de courant.
Pic non alimenté Tu retrouves quelle tension sur le Vdd du pic ?
Ce n'est pas conseillé d'envoyer du 5V si le pic est alimenté en 3,6V. Dans le datasheet, chapitre "Electrical specifications", il est indiqué qu'il ne faut pas dépasser Vdd+0,3V sur les inputs. Heureusement il y a une diode de protection vers Vdd, elle devient passante et peut alimenter le pic s'il y a assez de courant.
Pic non alimenté Tu retrouves quelle tension sur le Vdd du pic ?
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Bizarrerie sur Usart
Bonsoir satinas, et tout le forum,
Je trouve 2.45 volts
En gros si j'ai compris, c'est des choses à ne pas faire.
Je comprends mieux avec le schéma que tu as mi, ça explique pas mal de chose, pour ta réponse.
A+
Je trouve 2.45 volts
En gros si j'ai compris, c'est des choses à ne pas faire.
Je comprends mieux avec le schéma que tu as mi, ça explique pas mal de chose, pour ta réponse.
A+
Modifié en dernier par Temps-x le sam. 25 févr. 2023 19:16, modifié 1 fois.
Bizarrerie sur Usart
Bizarrerie sur Usart
Bizarrerie sur Usart
Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 5 invités