RoadTest: NXP LPC1500 Motion Control Kit
Author: manlong
Creation date:
Evaluation Type: Evaluation Boards
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: null
What were the biggest problems encountered?: Programme d'exemple non fonctionnel. librairie stdio.h non fonctionnel
Detailed Review:
Bonjour,
En premier lieux je tiens à vous remercier en me choisissant comme road tester.
1ère partie: Test du kit
Câble Micro USB type B vers USB type A
Câble Mini USB type B vers USB type A
Alimentation 24V 2.5A sans la terre
La carte OM13068 LPCXPRESSO motor control
La carte d’évaluation OM13056 LPCXPRESSO1549
Un moteur brushless
C’est une grande carte qui contient beaucoup de cavaliers de configuration, un écran OLED, un joystick, et plusieurs connecteurs
La sérigraphie décrit les fonctionnalités de certains cavaliers et connecteurs mais pas tous ce qui nous oblige à aller voir la documentation. Mais malheureusement il n’y a pas de manuel d’utilisation digne de ce nom. Il y a en a un qui résume les grosses fonctionnalités mais qui ne décrit pas du tout la signification de tous les cavaliers et connecteurs.
Un manuel d’utilisation décrivant la fonctionnalité de tous les cavaliers et connecteurs est pour moi essentiel. Actuellement nous sommes obligé de regarder la schématique pour comprendre et pouvoir utiliser la carte.
La carte en elle-même contient deux grosses fonctionnalités bien distinctes. La partie commande et la partie puissance.
Dans la partie contrôle, nous trouvons 2 connecteurs mini USB, un pour la liaison série (USB vers UART) et l’autre pour le microcontrôleur cible (uniquement LPC1343, LPC1768), 1 connecteur 8 voies (connexion CAN (pour le LPC1768) et R422 ou R485) et enfin un connecteur Ethernet uniquement pour le LPC1768.
Cette carte contient aussi une mémoire EEPROM, un joystick incluant 5 boutons ainsi qu’un bouton reset sont présent pour pouvoir interagir avec un programme, Un écran OLED permet faire de l’affichage directement sur la carte et un capteur de température placé dans la partie puissance.
Un point important, tous les signaux allant de la partie contrôle vers la partie puissance sont sur un connecteur. Cela permet à la fois de visualiser tous les signaux et d’injecter des signaux venant d’une autre carte car ils sont déconnectable de la partie contrôle.
Dans la partie puissance, nous avons des drivers de mosfet, et des transistors mosfet pour commander 4 phases.
Il est possible de mesuré pour chaque phase sa tension et le courant.
Il est aussi possible de mesurer la consommation totale de carte.
A partir du 12V, cette carte généré du 11V, du 5V et du 3.3V avec une led pour chaque alimentation.
Et bien sur des connecteurs permettant de brancher un moteur et des capteurs a effet hall ou des encodeurs à quadrature.
Dans cette carte, il manque cruellement un interrupteur ON/OFF qui permettrai d’allumer ou d’éteindre la carte. Actuellement, nous sommes obligé de débrancher le connecteur jack ou la prise murale. J’aurais aussi préférer que l’alimentation fournit ait une connexion à la terre. Car dans mon cas la masse de ma carte connecté à mon ordinateur via USB est différente du – de l’alimentation.
Il y a une différence de potentiel de 80V qui créer à chaque fois que je connecte le jack un arc électrique.
Cette carte n’a pas de manuel d’utilisateur. Nous sommes obligés de lire et comprendre le schéma pour connaître la définition des cavaliers et des connecteurs.
Heureusement la sérigraphie contient les éléments essentiels qui nous permettent de comprendre les connecteurs essentiels.
Cette carte à 3 boutons et 1 bouton reset.
Cette carte a 1 led RGB et 3 led rouge.
Il intègre le LPC-LINK2 qui permet la programmation et le debug du LPC1549.
Un autre connecteur USB sert quant à lui au LPC1549.
Quasiment toutes les pattes du microcontrôleur vont vers des connecteurs.
Lorsque l’on met la carte LPC1549 sur la carte de contrôle moteur, on s’aperçoit de plusieurs inconvénients.
La première, c’est que quelques cavaliers de configuration deviennent inaccessibles et nous ne pouvons plus changer la configuration. Il s’agit des cavaliers JP1, JP2, JP4 et JP5.
Les points de tests en forme de connecteur non monté JP6 est caché à moitié par la carte d’évaluation LPC1549. Les premiers signaux sont difficilement accessibles.
Comme la carte est relativement grande, il aurait été préférable que ces cavalier soit accessible même après insertion de la carte d’évaluation LPC1549.
Cela est dérangeant car avec tous les connecteurs à enfoncer, il est difficile de retirer la carte LPC1549.
En rouge dans l'image ci dessus les cavaliers de configurations inaccessible et les signaux de contrôle vers la puissance difficilement accesible.
Pour utiliser ces cartes, nous avons besoin de connecter 2 câbles USB, je connecteur JACK d’alimentation et bien sur le moteur brushless
Le logiciel utilise s’appelle LPCXpresso v7.2.0 et il est très facile à configurer et à utiliser.
En effet, il suffit d’installer le logiciel et tout est déjà configurer. Il n’est pas nécessaire d’ajouter des librairies ou autre chose. C’est extrêmement plaisant de pouvoir commencer à programmer, rapidement sans passer du temps à chercher à se demander s’il ne manque pas quelque chose.
Ensuite, nous pouvons télécharger les exemples fournit par NXP en version lpcopen_2_08b_lpcxpresso_nxp_lpcxpresso_1549.
L’avantage de ces exemples, c’est qu’ils sont directement utilisables comme dit plus haut, on importe, on compile et on exécute dès le début.
Ce sont des exemples pour montrer comment utiliser les divers périphériques.
Il y a aussi un exemple montrant comment commander un moteur continu a aimant permanent et un exemple montrant comment commander un moteur brushless, ce qui nous intéresse plus particulièrement.
Malheureusement lors des tests des périphériques avec les programmes d’exemples, il y en a eu beaucoup dans lequel lors de l’exécution du code, je suis directement arrivé en erreur hardware.
Il s’agit des programmes utilisant les périphériques suivant :
FreeRTOS, ADC, EEPROM, FlashIAP, freqmeas, I2C, pmu (power management unit), RTC, SPI_slave and temp (temperature).
Je trouve cela décevant puisqu’il s’agit en temps normal de prendre ces programmes comme référence pour pouvoir créer nos propres programmes.
Le programme de test de commande du moteur brushless qui fonctionne correctement.
Ce programme affiche dans l’écran OLED des indications pour arrêter ou augmenter la vitesse du moteur. Ces indications sont transmises via I2C. L’I2C qui ne fonctionne pas dans les programmes de test fournit par NXP. Il s’agit donc d’une erreur de code de configuration et non Hardware. C'est donc un point très négatif car le code d'exemple est faux ce qui nous oblige a passer plus de temps sur la configuration des périphérique et ainsi perdre du temps dans le développement de l'application finale.
C’est une carte prometteuse ayant toutes les capacités pour pouvoir évaluer plusieurs technologies de moteur. Que ce soit brushless comme dans mon cas ou moteur pas à pas ou moteur continue à aimant permanent. En plus en ajoutant les capacités d’interaction et de debug fournit par la carte, cela en fait une carte bien destiné à l’évaluation du code de commande et à l’estimation de la consommation du moteur quel qu’il soit pour bien dimensionner les composants dans la carte finale.
Malheureusement, le fait que l’on soit obligé de débrancher le connecteur jack pour éteindre la carte, l’absence de manuel d’utilisateur digne de ce nom et la description non complète sur la carte des fonctions en font une carte utilisable uniquement en développement, avec des compétences nécessaire en hardware pour lire un schéma et le comprendre et en plus des compétence firmware pour pouvoir élaborer le code. Ce qui est un peu embêtant à la fois pour les professionnels qui doivent mobiliser ces deux compétences et à la fois du particulier qui peut se sentir dérouter et avoir l’impression de ne pas exploiter toute la carte.
Mais ce sont des défauts qui peuvent être corrigés dans le futur et qui ne sont pas bloquant. Je pense donc que c’est une carte qui a vraiment un bon potentiel qui me permettra de bien évaluer la commande de mes moteurs.
2ème partie:Utilisation du kit
Certains programmes d'exemples ne fonctionne pas. En regardant plus en détail, il me semble que c'est la librairie stdio.h qui poe problème. A chaque fois que l'on veut uiliser pritf, sscanf,... le programme va directement dans HardFault_Handler.
J'ai commencer a remonter le point sur le forum LPCware dans la rubrique LPC15xx mais je n'ai pas encore de nouvelle.
J'ai mis à jour le logiciel LPCXpresso. Je suis passé de la version V7.2.0 à la version V7.3.0.
Sur cette dernière version, en utilisant le même workspace contenant les divers programme je n'ai plus de problème.
Tout fonctionne correctement.