Existe-t-il un connecteur de programmation In Circuit standard pour les puces LPC?


8

Les différentes puces de microcontrôleur LPC ont un mode de démarrage qui accepte la communication série et écrit le programme reçu dans Flash. Je veux faire un PCB avec et LPC1114 qui doit être programmé dans le circuit, avec seulement un minimum de circuits d'interface sur le PCB. Existe-t-il un connecteur standard pour fournir les signaux requis (GND, RxD, TxD, Reset, BootModeEnable)?


2
Il existe des connecteurs standard pour JTAG et SWD, mais il n'y a pas de connecteur standard pour le chargement de programme via une connexion série.
Leon Heller

Faute de standard, existe-t-il des connecteurs souvent utilisés? Ou même une seule carte qui a un tel connecteur ??
Wouter van Ooijen

Utilisez simplement un en-tête avec trois broches - Gnd, Tx et Rx.
Leon Heller

Pour les mains libres, une ou deux broches supplémentaires sont nécessaires: réinitialisation et BootModeEnable (peuvent être combinés au prix de circuits supplémentaires).
Wouter van Ooijen

Réponses:


3

J'utilise la carte USB vers UART de Sparkfun. Je mets UART0, reset et isp aux en-têtes. Je connecte reset et isp à la terre avec des cavaliers, puis utilise FlashMagic. Cela ne semble fonctionner que si j'alimente également l'appareil à partir d'USB, les motifs sont donc courants.

Tableau de Sparkfun:

https://www.sparkfun.com/products/718


Vous n'avez pas besoin de prendre le pouvoir de l'USB pour établir un terrain d'entente, il suffit de lier les terrains ensemble.
Chris Stratton

1

Si vous configurez un connecteur pour être compatible avec la version d'en-tête d'un câble série USB FTDI basse tension, vous avez la possibilité de ne pas avoir besoin de passer un contrat pour la fabrication de câbles personnalisés.

Vous pouvez piloter le mode de démarrage sur une ligne d'état et coupler la réinitialisation à celle-ci avec un capuchon (pensez que j'aurais peut-être utilisé un transistor comme onduleur lorsque je l'ai fait avec une partie ST). Désélectionner et resélectionner le mode de démarrage réinitialisera la puce et la préparera pour le téléchargement.


J'ai envisagé cette approche, mais je préfère m'en tenir à l'approche plus ou moins standard à deux poignées de main. Cela laisse l'option ouverte pour commander une réinitialisation sans bootload et enregistre quelques composants sur la carte cible.
Wouter van Ooijen

1

Puisqu'aucune norme ne semblait exister, j'ai fait mon propre choix: un en-tête de broche à angle droit 2x4 pour la carte cible et un connecteur femelle idem pour la carte `` programmeur ''. Le programmateur a un FT232RL ou similaire, un régulateur 5V-> 3,3V et un interrupteur pour désactiver l'alimentation de la carte cible (requis pour forcer la puce cible en mode de programmation lorsque la broche de réinitialisation a été réutilisée comme GPIO).

entrez la description de l'image ici brochage du connecteur

entrez la description de l'image ici

entrez la description de l'image ici schéma de circuit du programmateur («dongle») entrez la description de l'image ici

Programmeur avec une carte cible LPC1114 peu peuplée.

J'utilise lpc21isp comme outil de programmation sur le PC (open source, facilement compilé pour Windows ou Linux), mais j'ai dû ajouter une ligne au code car la façon dont il démarre l'application après un téléchargement (aller au début du code) ne fonctionne pas pour un Cortex.


0

Je n'ai pas travaillé avec LPC1114 auparavant, mais jetez un œil à l'adresse ci-dessous. Sur la gauche, vous verrez un lien vers un fichier schématique ...

http://www.keil.com/mcb1000/


Cette carte a le matériel d'interface série (dans ce cas: puce max232, mais pourrait être un FT232RL ou autre) sur le PCB, donc il n'y a pas de connecteur qui transporte les signaux que je veux interfacer.
Wouter van Ooijen

Sur la deuxième page, il y a l'interface JTAG. Vous devez utiliser un adaptateur JTAG du côté PC, mais sur le PCB, il n'y a pas de matériel supplémentaire comme RS232 ...
Malkocoglu

Je veux utiliser l'interface série, pas JTAG. Trop compliqué, trop de lignes de signal.
Wouter van Ooijen

SWD ne nécessite que deux ou trois signaux. Vous obtenez le débogage, ce qui est très utile.
Leon Heller

2
C'est vrai, mais au prix d'une interface plus complexe côté PC. (Et j'utilise rarement un débogueur, même si j'en ai un de disponible)
Wouter van Ooijen

0

Je suis en train de construire quelque chose avec le même micro. Je viens d'en prendre un: http://ics.nxp.com/lpcxpresso/ pour ~ 20 $ chez digikey, couper le côté "cible" de la carte et brancher un connecteur personnalisé du côté "LPC link" de travailler avec mon en-tête de programmation. L'environnement créé par CodeRed est ennuyeux depuis sa base Eclipse (je déteste Eclipse) mais il fonctionne sous Windows, Linux et peut-être Mac. Ils ont des instructions pour que tous les programmes de ligne de commande fonctionnent avec l'interface LPC Link.

J'ai un environnement configuré sous Linux pour qu'il s'exécute make dlet il initialisera le lien, le programmera et activera les bits de sécurité, le tout via USB et les connexions SWD au LCP1114. Peut même être utilisé pour le débogage à condition de ne pas réutiliser l'un des signaux SWD.

Ce n'est pas une série comme vous le recherchez, mais cela fonctionne comme un charme.


1
Je connais les lpcexpresso, j'ai 1114, 1343, 1769 et la plinthe. Joli truc (même si j'ai abandonné à la fois l'IDE et le lien LPC avec dégoût), mais pas adapté à ce que je veux. Mon PCB sera de 20 x 50 mm max.
Wouter van Ooijen

@WoutervanOoijen, j'utilise vim et tous les outils sont configurés pour fonctionner via la ligne de commande. Ma planche est un peu plus grosse mais elle devrait fonctionner tout de même. Dans le passé, quand j'ai fait de petits projets comme celui-ci, j'ai fait sortir les broches de programmation sur des pads plus larges, puis j'ai monté un gabarit personnalisé pour les connecter via des broches à ressort et le maintenir en place. Je ne connais pas vraiment de solutions standard pour un connecteur "commun / standard" à connecter à votre PCB.
Kris Bahnsen

0

Si vous voulez une programmation en série avec le connecteur standard (c'est-à-dire RS232), pourquoi ne pas implémenter UART normal (MAX3232 ou quelque chose) avec une connexion mâle DB9 standard du côté LPC? Ensuite, vous utilisez simplement le câble DB9 d'extension (mâle à femelle) vers le PC (ou utilisez le câble série vers USB si votre PC n'a pas de port série). Dans tous les cas, mettez une DB9 femelle sur votre carte PLC, et vous n'aurez jamais à fabriquer votre câble série :-). N'oubliez pas de câbler correctement les broches, les câbles d'extension sont droits (1-1, 2-2, ... 9-9).

Si l'espace sur la carte était problématique (pas assez de place pour DB9), vous pouvez fournir uniquement un en-tête 2 x 5 broches.

Bien sûr, vous pouvez également utiliser des commutateurs de niveau MAX3232 de rechange pour forcer votre carte en mode de réinitialisation / démarrage comme je l'ai fait sur ma carte basée sur NXP / AT89C51Rx2 en utilisant également Flashmagic. Même principe, Falshmagic prend le contrôle de l'entrée de démarrage via une ligne série.

Cela dit, j'irais avec SWD / JTAG et j'aurais un débogage à ma disposition.


(commentaire environ 6 ans plus tard ...) Je ne veux pas utiliser le connecteur RS232 standard, ce serait un gaspillage de circuits (des deux côtés). Je veux un minimum de circuits côté cible (essentiellement 0).
Wouter van Ooijen
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.