J'essaie de communiquer avec mon LaunchPad MSP430F5529 que je viens d'apprendre à propos des microcontrôleurs et qui présente de sérieux problèmes.Communication msp430 avec l'ordinateur
J'ai téléchargé le paquet développeur MSP430 USB avec des exemples de Texas Instruments et j'utilise IAR comme IDE.
À l'intérieur du dossier exemples, il existe les mêmes exemples pour différents protocoles: HID, CDC, Composite, MSC et SYSBIOS.
J'ai décidé de cliquer sur HID et, à l'intérieur de ce dossier, j'ai exploré le dossier DataPipe et je suis allé à H0_SimpleSend, qui semble être le premier et le plus simple exemple de projet. A l'intérieur, il semble avoir de nombreux dossiers et fichiers pour le projet tels que USB_Config, USB_app, IAR, GCC, CCS_GCC, CSS, et les fichiers system_pre_init.c, main.c, hal.h, et hal.c . A l'intérieur du dossier IAR se trouvait un projet et un fichier d'espace de travail. J'ai donc chargé le projet en espérant qu'il était aussi simple que de construire le projet sur ma carte et d'exécuter le débogage avec Termite pour communiquer avec un port COM. Lorsque je branche, mes fenêtres MSP430F5529LP ont deux ports COM utilisés, l'un dit MSP Application UART1, et l'autre dit MSP Debug Interface et ils sont toujours des ports COM consécutifs (respectivement COM11 et COM10, ou COM12 et COM13, respectivement .). Je suppose que je veux l'UART, donc j'ai mis Termite à communiquer avec l'application UART1 avec 8 bits de données et 1 bit d'arrêt, pas de bits de parité.
Ensuite, j'ai construit le programme, qui a bien construit, et l'a chargé sur ma carte. En passant par le programme, cela ne semble jamais fonctionner. il obtient toujours bloqué sur ce bloc:
// This function begins the USB send operation, and immediately
// returns, while the sending happens in the background.
// Send timeStr, 9 bytes, to intf #0 (which is enumerated as a
// COM port). 1000 retries. (Retries will be attempted if the
// previous send hasn't completed yet). If the bus isn't present,
// it simply returns and does nothing.
if (USBCDC_sendDataInBackground(timeStr, 9, CDC0_INTFNUM, 1000))
{
_NOP(); // If it fails, it'll end up here. Could happen if
// the cable was detached after the connectionState()
} // check, or if somehow the retries failed
Et parfois, pendant les fenêtres de la session de débogage dire que mon appareil a été disconected.
Qu'est-ce que je fais de mal?
Je ne suis pas sûr que tous ces protocoles sont, ce qui est CDC ou HID et pourquoi devrais-je utiliser l'un sur l'autre. On dirait que la communication USB est très complexe ... Energia et Arduino la rendent si facile avec Begin.Serial (9600) mais je veux apprendre le "vrai" chemin avec IAR puisque je suis débutant une carrière dans les systèmes embarqués.
Devrais-je essayer de continuer et de faire fonctionner cela? ou y a-t-il du matériel que je dois comprendre avant de pouvoir faire fonctionner la communication USB? Je ne veux rien faire de trop élevé avec l'USB, je veux juste utiliser l'ADC12 pour lire un signal d'un capteur de force résistif, puis tirer sur l'ordinateur.
Pour voir tout le code im parler, vous pouvez télécharger Texas Instruments par exemple le dossier here [Attention: Link commence télécharger, voir la page où je suis venu d'aller here).
HID est un périphérique d'interface humaine, un type de périphérique USB. Peut-être que l'exemple de projet met en œuvre un périphérique USB HID réel plutôt que l'interface de port série que vous attendez. – kkrambo
Wikipedia a une belle introduction à l'USB et à ses sous-protocoles. En outre, les spécifications sont téléchargeables gratuitement. Si vous voulez jouer avec un MCU, vous devriez apprendre à le faire. Comme indiqué, je dirais que la question est trop large ou manque de plus d'informations et un problème spécifique. Et, non, nous n'allons pas charger des tonnes de boules de vendeur. Plase fournit un [mcve]. – Olaf
@Olaf pour fournir un MCVE nécessiterait toutes les bibliothèques liées à l'exemple de programme. – Aaron