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

USB MSD avec PIC24FJ
pucpood
Débutant
Débutant
Messages : 30
Âge : 52
Enregistré en : septembre 2023
Localisation : 01960

#1 Message par pucpood » mer. 29 oct. 2025 14:44

Bonjour,

Je traîne un problème de liaison USB depuis plusieurs années et là j'arrive au pied du mur.

Mon but :
Que ma plateforme PIC soit vue comme un device USB de type MSD (mass storage device).

Matériellement :
Plateforme PIC24FJ1024GB610 accueillant aussi une carte SD qui communique avec le PIC via SPI. Programmateur PICKit5.

Logiciellement :
XC16 sous Windows et librairie MLA, environnement MPLabX.

Ce qui fonctionne : ma plateforme tire correctement parti de la carte SD, formatée en FAT. Je peux créer, lire, effacer des fichiers, tout va bien de ce côté. Donc c'est OK du point de vue carte SD et SPI.

Ce qui ne va pas : Windows ne parvient pas à prendre en compte ma plateforme. Au mieux, il voit qu'un périphérique tente de se connecter mais signale que celui n'est pas configuré correctement. Et je pense qu'à ce moment, Windows est encore loin de vouloir accéder au système de fichier de ma plateforme.

Le problème est sans doute en amont, purement USB, mais j'ai essayé tellement de réglages et la librairie est tellement fournie que je ne sais plus par où prendre le problème. Et personne d'autre que moi ne maîtrise le sujet au boulot, je suis seul en bas niveau :cry: .

Le process de connexion s'arrête lors du tests if( USBDeviceState < DEFAULT_STATE) (usb_device.c, fonction USBDeviceTasks()). Il faudrait avoir atteint ce DEFAULT_STATE pour aller plus loin, mais ce n'est jamais mon cas.
J'ai essayé en polling et par interruptions : les 2 cas échouent.

Voilà, si l'un ou l'une d'entre vous avait une expérience à partager ça pourrait m'ouvrir des horizons.

À bientôt :-) !

USB MSD avec PIC24FJ
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2871
Enregistré en : juillet 2016
Localisation : Terre

#2 Message par Temps-x » dim. 9 nov. 2025 21:02

Bonjour,

Normalement c'est une USB Hid ou Microchip fourni gratuitement un fichier à installer dans le gestionnaire de périphériques mais à faible vitesse

Je me rapelle plus du non du fichier, surement dû à l'age :-D

Si tu veux une USB plus rapide il faut payer :sad: c'est bien pour ça qu'il serait judicieux de se rabatre sur des circuits qui gére l'usb comme un circuit FT232RL ou tu peux communiquer USB (PC) ===> USART (Pic)

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité