cabler uart sur pic24
Répondre à la discussion
Affichage des résultats 1 à 29 sur 29

cabler uart sur pic24



  1. #1
    invitead206e95

    cabler uart sur pic24


    ------

    Bonjour,
    Je débute complétement en électronique et j'ai besoin d'un peu d'aide pour cabler un appareil qui peut remonter des infos en uart. J'ai 3 fils qui sortent de l'appareil : RX, TX et GND. A priori TTL (j'ai 3v entre le GND et le TX)
    J'ai une carte de dev avec un PIC24FJ256GB110.

    J'ai lu pas mal de tuto et je devrais pouvoir m'en sortir pour le code mais je n'ai pas vraiment trouvé d'info sur le cablage.
    Pour les RX et TX, j'ai compris que je pouvais les connecter à n'importe lesquels des RPx du PIC24. A moi de configurer le port correctement derrière. Est ce que j'ai bien compris ?
    Par contre je ne sais pas du tout quoi faire du GND. Je le connecte au GND de ma carte ? Il faut peut être que je vérifie que les GND correspondent ?

    merci !

    -----

  2. #2
    DAUDET78

    Re : cabler uart sur pic24

    Ton appareil est en RS232 ? il faut mettre un MAX232 entre ta carte et l'appareil
    Je ne connais pas le PIC, mais normalement, le choix des broches Tx et Rx est fixé (voir la doc)
    Il faut 3 fils (blindé) de liaisons 0V Rx<-Tx et Tx->Rx
    J'aime pas le Grec

  3. #3
    invitead206e95

    Re : cabler uart sur pic24

    A priori non, ce n'est pas du RS232. Je n'ai que 3v au repos entre le TX et le GND.

  4. #4
    DAUDET78

    Re : cabler uart sur pic24

    Citation Envoyé par medmed42 Voir le message
    Je n'ai que 3v au repos entre le TX et le GND.
    C'est mesuré sur ta carte ou sur l'appareil?
    J'aime pas le Grec

  5. A voir en vidéo sur Futura
  6. #5
    invitead206e95

    Re : cabler uart sur pic24

    c'est mesuré sur l'appareil, entre son fil TX et son fil GND.

    Sinon j'ai pas vraiment de documentation mais mes recherches m'indiquent que ce n'est pas du RS232.

  7. #6
    DAUDET78

    Re : cabler uart sur pic24

    Citation Envoyé par medmed42 Voir le message
    c'est mesuré sur l'appareil, entre son fil TX et son fil GND.
    Donc, c'est du TTL
    Et en sortie de ta carte ?
    J'aime pas le Grec

  8. #7
    invitead206e95

    Re : cabler uart sur pic24

    en sortie, tu veux dire le TX de la carte avec le PIC24 qui sera relié au RX de l'appareil ? Ca sera du TTL aussi.

    Mon problème c'est que j'ai un seul GND (celui de l'appareil). Est ce que je peux le connecter au GND de ma carte ?

    Sinon pour la connexion des RX et TX, à priori n'importe lequel des pins RPx ?

  9. #8
    DAUDET78

    Re : cabler uart sur pic24

    Citation Envoyé par medmed42 Voir le message
    en sortie, tu veux dire le TX de la carte avec le PIC24 qui sera relié au RX de l'appareil ? Ca sera du TTL aussi.
    OK.
    Par contre, tu a intérêt à mettre un circuit logique entre le fil et la broche du µC. En cas de flash, c'est plus facile (et moins cher) de changer un boitier à 14 pattes plutôt qu'un 69 pattes
    Mon problème c'est que j'ai un seul GND (celui de l'appareil). Est ce que je peux le connecter au GND de ma carte ?
    ben oui ! évidemment
    Sinon pour la connexion des RX et TX, à priori n'importe lequel des pins RPx ?
    Regarde la doc de ton µC. Mais je ne penses pas que ce choix soit libre. Par contre, si il a plusieurs UART, tu prends celui que tu veux.
    Dernière modification par DAUDET78 ; 05/12/2012 à 16h32.
    J'aime pas le Grec

  10. #9
    invitead206e95

    Re : cabler uart sur pic24

    Merci !

    Citation Envoyé par DAUDET78 Voir le message
    Par contre, tu a intérêt à mettre un circuit logique entre le fil et la broche du µC. En cas de flash, c'est plus facile (et moins cher) de changer un boitier à 14 pattes plutôt qu'un 69 pattes
    Je n'ai pas compris ce point. Tu pourrais préciser ?

  11. #10
    DAUDET78

    Re : cabler uart sur pic24

    • Tu as un fil de 0V entre ton µC et ton appareil
    • Tu as le fil de Rx de ton µC relié au Tx de ton appareil

    Accidentellement, le fil de 0V se débranche . Ton µC , il fait quoi ? Il mourru !
    J'aime pas le Grec

  12. #11
    invitead206e95

    Re : cabler uart sur pic24

    Je dois avouer que je vois pas où serait le problème si le GND etait perdu mais en même temps je débute. C'est peut être pour ça.
    Du coup qu'est ce que tu me conseilles de mettre ?

  13. #12
    DAUDET78

    Re : cabler uart sur pic24

    On va prendre un exemple possible:
    • Ton appareil est relié au 230V sans terre
    • Ton appareil à un filtre secteur avec des condensateurs
    • Le 0V de ton appareil balade donc du 50Hz (et on peut mesurer facilement une centaine de volt)
    • Cette centaine de volt se retrouve aussi sur le Tx de ton appareil


    Tu vois la tête de ton µC qui reçoit ça sur son entrée Rx ?
    J'aime pas le Grec

  14. #13
    invitead206e95

    Re : cabler uart sur pic24

    Ok du coup je m'inquiéte moins. dans l'appareil en question, il y a une simple pile bouton 3v !

  15. #14
    DAUDET78

    Re : cabler uart sur pic24

    Citation Envoyé par medmed42 Voir le message
    Ok du coup je m'inquiéte moins.
    Ca ne change rien au problème ... je peux te faire un autre scénario aussi Kata avec une pile bouton !
    J'aime pas le Grec

  16. #15
    invitead206e95

    Re : cabler uart sur pic24

    Ah... Du coup qu'est ce qu'il faudrait que j'y mette ?

  17. #16
    DAUDET78

    Re : cabler uart sur pic24

    Par exemple, une résistance série de 4,7K et deux diodes de clamp au 0V et au 5V ... dans une version minima
    J'aime pas le Grec

  18. #17
    invitead206e95

    Re : cabler uart sur pic24

    ca marche !
    merci.

  19. #18
    jC_Omega

    Re : cabler uart sur pic24

    Salut,

    Je travaille tous les jours avec ces PIC24 voila ce que je te propose :
    - Oui les pin RPx sont programmable, tu peut brancher n'importe quel pattes dessus, il faudra juste les régler dans ton soft.
    - il y a des adaptateur "clé en main" de différente forme pour convertir ces signaux série en USB (l'autre solution et d'avoir un port COM sur le PC et une carte conversion à base de MAX232 ou équivalent, mais ce n'est pas le plus simple).

    je te conseil donc :
    http://radiospares-fr.rs-online.com/...faces/0429303/
    http://radiospares-fr.rs-online.com/...faces/0429307/

    https://www.sparkfun.com/products/9873
    etc...

    Branchement : la masse à la masse (GND)
    le TX en sortie du micro au RX de l'adaptateur
    le RX en sortie du micro au TX de l'adaptateur
    Dernière modification par jC_Omega ; 05/12/2012 à 20h51.

  20. #19
    invitead206e95

    Re : cabler uart sur pic24

    Cool ! Donc j'avais bien compris. Je connecte à n'importe quel RPx. A moi de le configurer correctement.

    Merci pour le conseil aussi mais mon but c'est de le connecter a un téléphone. Voici la carte :
    http://www.microchip.com/stellent/id...cName=en553673

  21. #20
    jC_Omega

    Re : cabler uart sur pic24

    Super, je viens de voir la vidéo. ça doit être simpa pour faire un oscillocope portable avec le téléphone qui sert d'écran.

    Je développe quelque chose de très similaire à ce que tu veux faire en communication bluetooth et en version low cost. :

    http://forums.futura-sciences.com/el...ml#post4147080
    --> je vais mettre très prochainement le topic, car il y a eu de nombreuse amélioration depuis (horloge temps réel, nouveau soft android, communication intelligente, etc)
    plan, code source en développement, etc... https://github.com/jcomega/BlueCom

  22. #21
    invitead206e95

    Re : cabler uart sur pic24

    finalement j'ai du mal à m'en sortir pour le code et j'arrive vraiment pas à voir ce que je fais mal. Je ne reçois rien en réponse mais possible que ce soit parce que rien ne part...

    J'ai essayé de laisser de côté mon appareil pour relier mes 2 pins RX et TX (RB14 et RB15) sur ma carte et voir si je pouvais me lire moi même mais ça ne marche pas mieux.
    J'ai mis le code ci-dessous. si quelqu'un voit un problème ?
    La première lecture renvoie "0" alors qu'elle devrait renvoyer 1. Je ne lis plus rien après...

    Code:
    int main(void) {
    	AD1PCFGL	 =	0xFFFF;//tout en digital
    	TRISBbits.TRISB14 = 1;//RB14 (RP14) en input
    	TRISBbits.TRISB15 = 0;//RB15 (RP29) en sortie
    	RPINR18bits.U1RXR = 14;	 //UART1 RX sur RP14
    	RPOR1bits.RP3R  = 29; //UART1 TX sur RP29
    	U1BRG = 207;//je crois qu'on est en 8MHz... je veux 9600bauds
    	U1MODE = 0x8000;//activer uart1
    	U1STA = 0x8400;//activation interruptions
    	IFS0bits.U1RXIF = 0;//reset flag RX
    
    
    	InitAllLEDs();
    
    	delayxxx(1000);
    	LED0_On();
    	UART1PutChar(0x01);
    	UART1PutChar(0x02);
    	UART1PutChar(0x03);
    	delayxxx(1000);
    	char* pxxx;
    	char xxx;
    	while(1) {
    		if((pxxx = UART1GetChar()) != NULL) {
    			xxx = *pxxx;
    			LED3_On();
    			UART1PutChar(0x04);
    		}
    	}
    }
    
    void UART1PutChar(char Ch) {
    	while(U1STAbits.UTXBF == 1);
    	   U1TXREG = Ch;
    }
    
    char UART_read;
    
    char* UART1GetChar() {
    	if(IFS0bits.U1RXIF == 0) {
    		return NULL;
    	}
    	UART_read = U1RXREG;
    	//reset interrupt
    	IFS0bits.U1RXIF = 0;
    	return &UART_read;
    }
    A noter mon commentaire sur le 8MHz. Je n'en suis pas sûr... c'est cette carte : http://www.microchip.com/stellent/id...cName=en553673
    Code:
    	#if defined(__PIC24FJ256GB110__)
    		_CONFIG2(FNOSC_PRIPLL & POSCMOD_HS & PLL_96MHZ_ON & PLLDIV_DIV2) // Primary HS OSC with PLL, USBPLL /2
    		_CONFIG1(JTAGEN_OFF & FWDTEN_OFF & ICS_PGx2)   // JTAG off, watchdog timer off
    	#endif

  23. #22
    invitead206e95

    Re : cabler uart sur pic24

    Citation Envoyé par jC_Omega;4289263
    Je développe quelque chose de très similaire à ce que tu veux faire en communication bluetooth et en version low cost. :

    [url
    http://forums.futura-sciences.com/electronique/552580-projet-cours-bluecom-telecommande-bluetooth-intelligente-a-bas-prix-3.html#post4147080[/url]
    J'ai jeté un coup d'oeil rapide. Ca a l'air sympa. A l'occasion ça peut servir. Par contre j'ai pas trouvé d'information sur la licence ?

  24. #23
    jC_Omega

    Re : cabler uart sur pic24

    Merci,je galère avec le java, mais je progresse.
    Tu parle de licence ? Bluetooth, projet?

    Pour ton code, j'ai regardé avec ce que j'avais fait sur du PIC24F (sans USB)

    Sur ta carte, il doit y avoir un quart de 8Mhz, mais d'après la doc le pic peut monter à 96Mhz via PLL. (plus de de détail dans la doc du PIC).
    Sur mon pic24f sans USB je réglé la vitesse via le registre OSCCON.

    je te conseil de regarder les exemple fournis avec le pack librairie.
    C:\Microchip Solutions v2012-10-15\Android Accessories

    Voici mon UART init (même chose sur les autre PIC 16bit) (attention j'active l'interruption sur RX, je n'utilise pas les lib microchip):

    Code:
    void UART1_Init(void)
    {	
    
     	TRISBbits.TRISB14 = 1; // entrée sur RX
    	TRISBbits.TRISB15 = 0; //sortie sur TX
    	__builtin_write_OSCCONL(OSCCON & 0xbf);
    	RPINR18bits.U1RXR = 14; //UART1 (RS232 DEBUG PIC) receive set to  (RP14 ) 
    	RPOR7bits.RP15R = 3; //UART1 (RS232 DEBUG PIC) transmit set to (RP15 ) 
    	__builtin_write_OSCCONL(OSCCON | 0x40); 
    
     	U1MODEbits.STSEL = 0;			// 1-stop bit
    	U1MODEbits.PDSEL = 0;			// No Parity, 8-data bits
    	U1MODEbits.ABAUD = 0;			// Autobaud Disabled
    
    	U1BRG = BRGVAL;					// BAUD Rate Setting a 38400
    		
    	U1MODEbits.UEN = 0b00;  //UxTX and UxRX pins are enabled and used; UxCTS, UxRTS and BCLKx pins are controlled by port latches
    
    	U1STAbits.UTXISEL0 = 0;			// Interrupt après un Tx character est transmit
    	U1STAbits.UTXISEL1 = 0;			                            
    	U1STAbits.URXISEL  = 0;			// Interrupt après un RX character est recus 
    
    	U1MODEbits.UARTEN   = 1;		// Enable UART
    	U1STAbits.UTXEN     = 1;		// Enable UART Tx
    
    	_U1TXIP=3;		//priority TX 
    	_U1RXIP=3;		//priority RX
     	IFS0bits.U1RXIF = 0;  // flag interruption
    	IEC0bits.U1RXIE = 1;// interruption UART1 RX
    }
    Code:
    #define BAUDRATE 38400ul             
    #define BRGVAL   ((GetPeripheralClock()/BAUDRATE)/16)-1

  25. #24
    invitead206e95

    Re : cabler uart sur pic24

    il fallait mettre :
    Code:
    	RPOR14bits.RP29R  = 3; //UART1 TX sur RP29
    Je peux maintenant me parler à moi même !

  26. #25
    invitead206e95

    Re : cabler uart sur pic24

    Citation Envoyé par jC_Omega Voir le message
    Merci,je galère avec le java, mais je progresse.
    Tu parle de licence ? Bluetooth, projet?
    Je parlais de la licence de ton code / de tess schemas. En gros, la licence indique ce que je peux en faire. Est ce que j'ai le droit de le modifier ? de m'en inspirer ? de le réutiliser code ? est ce que je dois rendre publique mes modifications ? ...

    Pour ton code, j'ai regardé avec ce que j'avais fait sur du PIC24F (sans USB)

    Sur ta carte, il doit y avoir un quart de 8Mhz, mais d'après la doc le pic peut monter à 96Mhz via PLL. (plus de de détail dans la doc du PIC).
    Sur mon pic24f sans USB je réglé la vitesse via le registre OSCCON.
    C'est justement ce qui me semble le moins clair tout ca. Et comme en plus je veux garder l'usb et que j'ai un peu peur de le casser si je touche à la config des fréquences... de toute façon je vais pas avoir le choix, je vais y toucher. J'arrive toujours pas à faire discuter la carte avec autre chose qu'elle même !

  27. #26
    invitead206e95

    Re : cabler uart sur pic24

    Citation Envoyé par jC_Omega Voir le message
    Code:
    #define BAUDRATE 38400ul             
    #define BRGVAL   ((GetPeripheralClock()/BAUDRATE)/16)-1
    c'est quoi GetPeripheralClock() ? Il y a un moyen de calculer la fréquence ?

  28. #27
    invitead206e95

    Re : cabler uart sur pic24

    Je m'en suis sorti !

    j'ai trouvé ça dans un des fichiers inclus (je suis parti de l'exemple de microchip) :
    Code:
        #define CLOCK_FREQ 32000000
    donc

    Code:
    	U1BRG = 103;//Fcy = 16MHz ! 9600 bauds requis
    le seul truc qui m'embête c'est que je m'explique pas les 32MHz...

  29. #28
    jC_Omega

    Re : cabler uart sur pic24

    quart à 8Mhz + activation du PLL sur le PIC (boucle à verrouillage de phase qui multiplie la fréquence par 4 du quartz) --> donc 32Mhz
    la fréquence des périphérique interne est donc de 16Mhz réel

  30. #29
    RISC

    Re : cabler uart sur pic24

    Salut,

    Dans les PIC24, la fréquence d'exécution des instructions (Fcycle) est égale = Fosc / 2 (Fosc = fréquence de l'horloge interne après la PLL si elle est activée)

    a+

Discussions similaires

  1. Deverouiller RPINR sur pic24
    Par touf26 dans le forum Électronique
    Réponses: 2
    Dernier message: 25/10/2012, 12h58
  2. UART sur PIC24 sous Mplab
    Par PtiBruno dans le forum Électronique
    Réponses: 1
    Dernier message: 17/05/2011, 22h40
  3. pic24 et UART, la reception ne marche pas ??
    Par nordiste dans le forum Électronique
    Réponses: 19
    Dernier message: 28/05/2010, 08h42
  4. Cabler un potentionmètre sur résistance de chauffe
    Par invite5acbf9f6 dans le forum Électronique
    Réponses: 9
    Dernier message: 13/05/2010, 14h02
  5. probleme uart pic24
    Par djwolf dans le forum Électronique
    Réponses: 3
    Dernier message: 02/06/2008, 23h07
Découvrez nos comparatifs produits sur l'informatique et les technologies.