communication USB avec pic32MX
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

communication USB avec pic32MX



  1. #1
    davidif

    communication USB avec pic32MX


    ------

    Bonjour,

    Dans le but de comprendre le fonctionnement pour en finalité communiquer en USB avec un PIC32MX795, j'ai épluché de multiples docs sur le sujet que j'ai pu trouver sur le net et compris dans l'ensemble comment fonctionne le protocole (je dis bien dans l'ensemble "notion").

    J'ai donc réussi à communiquer et envoyer des valeurs relatif à l'ADC du micro vers mon pc en ASCII pour le moment, et l'envoi ce fait par octet au vu des fonction que me fourni mplab

    Code:
    void ProcessIO1(void)
    {   
      
    
        if((USBDeviceState < CONFIGURED_STATE)||(USBSuspendControl==1)) return;
    
        // If switch pressed, print a message
        if((BP.SW1)&&(!BP_OLD.SW1))
        {
    	BP_OLD.SW1=1;
    
    			if(USBUSARTIsTxTrfReady())
    		   	{
    			//putsUSBUSART(adresse_ana);
    		       //numBytesRead = getsUSBUSART(USB_Out_Buffer,64);
    			
    			numBytesRead = 1;
    		
    				     if(numBytesRead != 0)
    				     {
    				         BYTE i;
    				
    						
    				         
    					         for(i=0;i<numBytesRead;i++)
    					         {
    					             
    					                 
    								 		USB_In_Buffer[i] = ANA[0];
    									
    					 
    					         }
    					         putUSBUSART(USB_In_Buffer,numBytesRead);
    				
    				     }
    		   	}
        	
        }
    
      CDCTxService();
    } // End ProcessIO
    dans cette fonction avec putUSBUSART(USB_In_Buffer,numB ytesRead); m'envoit que 1 octet, si j'envoi une valeur de plus d'un octet je reçois que l'octet de poids faible de cette même valeur et seulement ça

    d'autre fonction existes permettant d'envoyer les données sur le buffer d'entré de l'hôte mais elle limite toujours a 1 octet.

    La question : est ce que je dois faire la fonction qui mettra une valeur de taille quelconque dans le buffer avec la boucle qui va bien tout en décalant octet par octet ou d'autre moyen existe ?

    Merci d'avance de votre aide

    -----

  2. #2
    davidif

    Re : communication USB avec pic32MX

    D'après mes différentes lectures sur l'usb, celui-ci balence différent packet de données :

    packet jeton
    packet données
    packet Handshake
    packet SOF

    avec pour chaque packet :

    info SINC pour la sinchronisation de l'horloge
    un PID qui identifie le type de packet
    l'ADR pour indentifier l'appareil parmis 127
    ENDP qui est la terminaison représente une sorte de canal (in, out)
    CRC , controle l'information
    EOP, pas encore trop compris

    Tous ne sont pas forcement utilisé selon le type de packet utilisé.

    J'envoi une seule info qui est réceptionnée par l'hôte(PC) et affiché en ascii pour l'instant avec l'application microchip " Dynamic CDC Demo.exe" programmé sous visual c++ logiciel jamais utilisé(utilise delphi pour les interface) .

    cette donnée est pour l'instant envoyée dans une textbox et j'aimerai comprendre comment distinguer une données parmis d'autres pour les afficher dans le bonnes emplacement d'une interface, est-ce le endpoint (ENDP) qui fait cette distinction ou quelque choses d'autre m'échappe.

    Comme je l'indiquais sur mon précédent poste, les fonctions utilisés, me permette pas d'envoyer les données entière, suis-je obligé de faire une fonction pour prendre la données entière ou exist-il une fonction :


    void putrsUSBUSART(const ROM char *data);
    void putUSBUSART(char *data, BYTE Length);
    void putsUSBUSART(char *data);


    void CDCTxService(void);

    si un pro de l'USB passait par là , qu'il m'éclaire par ce que là je fais du surplace , Merci d'avance

  3. #3
    RISC

    Re : communication USB avec pic32MX

    Salut,

    si tu utilises une classe USB, actuellement tu utilises la classe CDC, il faut uniquement se servir des API pour cette classe qui sont documentées dans le manuel de la pile de protocole USB. C'est justement fait pour ne pas à avoir à se préoccuper des endpoints et du protocole que ces API doivent être utilisées.

    a+

  4. #4
    davidif

    Re : communication USB avec pic32MX

    Excuse pour ma question, mais j'ai lu pas mal de documentations sur le protocole USB mais ou je récupère le manuel dont tu me parle, je l'es peut être eu en ma possession ou l'es peut être croisé sans savoir qu'il s'agit de ce manuel dont tu parle ?

  5. A voir en vidéo sur Futura

Discussions similaires

  1. Débogage/Programmation PIC32MX et CPLD avec JTAG
    Par invitef9ccb542 dans le forum Électronique
    Réponses: 2
    Dernier message: 30/03/2012, 13h01
  2. Problème avec EthDescriptorsAdd() sur le PIC32MX
    Par invite3bb6cfa9 dans le forum Électronique
    Réponses: 4
    Dernier message: 23/02/2012, 22h10
  3. Communication avec un serveur tcp/ip avec Matlab
    Par invite98cd00fc dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 03/11/2011, 12h31
  4. communication avec iss
    Par invite6162525d dans le forum Astronautique
    Réponses: 5
    Dernier message: 23/11/2007, 11h24
  5. HID communication avec un pc
    Par inviteca539e75 dans le forum Électronique
    Réponses: 2
    Dernier message: 04/07/2007, 23h23
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...