Développement d'une carte de debug pour K1986BE1QI (aviation)

Développement d'une carte de debug pour K1986BE1QI (aviation)

Il y a quelques années, j'ai découvert les microcontrôleurs russes de Milandr. C'était en 2013, lorsque les ingénieurs ont discuté avec vigueur des premiers résultats du programme cible fédéral "Développement de la base de composants électroniques et de l'électronique radio" pour 2008-2015. A cette époque, le contrôleur K1986BE9x (cœur Cortex-M3) était déjà sorti, et le contrôleur 1986BE1T (cœur Cortex-M1) venait d'apparaître. Lui, dans le boîtier en plastique LQFP-144, portait la désignation K1986BE1QI (aviation) dans la documentation et la désignation MDR32F1QI sur la puce elle-même. Sur le site du constructeur, il porte le suffixe "air", car il possède des interfaces spécifiques à l'industrie aéronautique (ARINC 429, MIL_STD_1553).

Étonnamment, au moment de la distribution de ces contrôleurs, la société Milander a préparé des kits de débogage et une bibliothèque de sous-programmes pour travailler avec des périphériques, "mais sans aucune garantie ni obligation supplémentaire concernant l'exactitude de la bibliothèque". La bibliothèque est similaire à la bibliothèque de périphériques standard de STMicroelectronics. En général, tous les contrôleurs ARM construits sur le noyau Cortex-M ont beaucoup en commun. Pour cette raison, la connaissance des nouveaux contrôleurs russes s'est faite rapidement. Et pour ceux qui ont acheté des kits de débogage propriétaires, un support technique a été fourni pendant l'utilisation.

Développement d'une carte de debug pour K1986BE1QI (aviation)
Kit de débogage pour microcontrôleur 1986BE1T, © Milandr

Cependant, au fil du temps, des «maladies infantiles» de nouvelles puces et bibliothèques ont commencé à apparaître. Des exemples de test de firmware ont fonctionné sans problèmes visibles, mais avec des plantages et des erreurs de modification importants. La première « hirondelle » dans ma pratique a été des pannes inexplicables dans le contrôleur CAN. Un an plus tard, un problème avec le module a été découvert sur le contrôleur 1986BE1T (air) d'une première révision MCIO (canal d'échange d'informations multiplex). En général, toutes les révisions de ces microcontrôleurs jusqu'en 2016 étaient d'une utilité limitée. Beaucoup de temps et de nerfs ont été consacrés à l'identification de ces problèmes, dont la confirmation peut maintenant être trouvée dans listes d'erreurs (Errata).

Une caractéristique désagréable était qu'il était nécessaire de travailler et de traiter les erreurs non pas sur des cartes de débogage, mais sur des cartes d'appareils prototypes qui étaient prévues pour la production en usine en série. En plus du connecteur JTAG, il n'y avait généralement rien là-bas. Il était difficile et peu pratique de se connecter à un analyseur logique, et il n'y avait généralement pas de LED ni d'écrans. Pour cette raison, l'idée de créer ma propre carte de débogage m'est venue à l'esprit.

D'une part, il y avait des kits de débogage de marque sur le marché, ainsi que de merveilleuses cartes de LDM-Systems de Zelenograd. D'autre part, les prix de ces produits conduisent à la stupeur et les fonctionnalités de base sans cartes d'extension ne répondent pas aux attentes. Une carte avec un contrôleur soudé et un en-tête de broche ne m'intéresse pas. Et les planches plus intéressantes coûtent cher.

Développement d'une carte de debug pour K1986BE1QI (aviation)
Carte de développement MILANDR LDM-HELPER-K1986BE1QI-FULL, © LDM Systems

La société "Milandr" a une politique tarifaire et marketing unique. Ainsi, il est possible d'obtenir gratuitement des échantillons de certains microcircuits, mais cela n'est disponible que pour les personnes morales et est associé à une quête bureaucratique. En général, les microcircuits dans un boîtier céramique-métal sont dorés au sens littéral et figuré. Par exemple, le contrôleur 1986BE1T coûte à Moscou de 14 à 24 mille roubles. La puce de mémoire statique 1645RU6U coûte à partir de 15000 1986 roubles. Et c'est l'ordre des prix pour tous les produits. En conséquence, même les instituts de recherche spécialisés sous commande de l'État économisent de l'argent et évitent de tels prix. Les puces dans un boîtier en plastique à usage civil sont nettement moins chères, mais elles ne sont pas disponibles auprès de fournisseurs populaires. De plus, la qualité des puces dans un boîtier en plastique, me semble-t-il, est pire que "l'or". Par exemple, je n'ai pas pu exécuter le contrôleur K1BE128QI à 40 MHz sans augmenter le paramètre de latence du flash. Dans le même temps, la température de ce contrôleur est passée à 50-1986C. Mais le contrôleur 1BE128T ("or") a démarré à XNUMX MHz sans réglages supplémentaires et est resté froid. Il est vraiment bon.

Développement d'une carte de debug pour K1986BE1QI (aviation)
Microcontrôleur "Gold" 1986BE1T, (c) Milandr

J'ai eu la chance que le microcontrôleur dans un boîtier en plastique puisse encore être acheté au détail chez LDM Systems, et toutes les cartes de circuits imprimés sont disponibles gratuitement. Le mauvais côté c'est que sur le site sur la photo du contrôleur, un marquage est visible qui dit qu'il s'agit de la 4ème révision de 2014, c'est à dire avec des défauts. J'ai longtemps pensé - acheter ou ne pas acheter. Alors plusieurs années passèrent...

L'idée de créer une carte de débogage n'a disparu nulle part. Peu à peu, j'ai formé toutes les exigences et réfléchi à la façon de placer tout cela sur une seule carte, afin qu'elle soit compacte et pas chère. En parallèle, j'ai commandé les composants manquants au chinois. Je n'étais pas pressé - j'ai tout fait pour moi. Les fournisseurs chinois sont réputés pour leur négligence - j'ai dû commander la même chose à différents endroits pour obtenir tout ce dont j'avais besoin. De plus, certaines des puces de mémoire se sont avérées être d'occasion - évidemment soudées à partir d'appareils cassés. Cela m'a frappé plus tard.

L'achat d'un microcontrôleur Milandr K1986BE1QI (aviation) n'est pas une tâche facile. Dans le même magasin Chip and Dip, dans la rubrique "Positions à commander", je n'ai trouvé que K1986BE92QI pour 740 roubles, mais cela ne me convenait pas. La seule option est d'acheter une révision non fraîche de LDM-Systems pour 2000 roubles. Comme je ne pouvais pas trouver de remplaçant ailleurs, j'ai décidé d'acheter ce qui était. À mon agréable surprise, ils m'ont vendu un tout nouveau contrôleur de décembre 2018, révision 6+ (1820). Et le site a toujours une vieille photo, et au moment de la rédaction, le contrôleur n'est pas disponible ...

Développement d'une carte de debug pour K1986BE1QI (aviation)
Microcontrôleur K1986BE1QI (aviation) en packaging technologique, (c) Photo de l'auteur

Principales spécifications techniques de ma carte de développement MDB1986 suivant:

  • débogueur-programmeur intégré compatible avec J-Link et CMSIS-DAP ;
  • Mémoire statique de 4 Mbits (256k x 16, 10 ns) ;
  • puce mémoire flash 64Mbit, Winbond 25Q64FVSIG;
  • Émetteur-récepteur d'interface RS-232 avec lignes RTS et CTS ;
  • interfaces et connecteurs pour Ethernet, USB, CAN ;
  • Contrôleur d'affichage à 7 segments MAX7221 ;
  • connecteur à broches pour travailler avec MCIO (MIL_STD_1553) et ARINC429 ;
  • phototransistor Everlight PT17-21C;
  • cinq LED colorées, un bouton de réinitialisation et deux boutons utilisateur ;
  • il est alimenté par un port USB de 5 volts ;
  • dimensions du circuit imprimé 100 x 80, mm

J'ai aimé les cartes de la série STM-Discovery car elles ont un programmeur-débogueur intégré - ST-Link. Le ST-Link propriétaire ne fonctionne qu'avec les contrôleurs STMicroelectronics, mais il y a quelques années, il est devenu possible de mettre à jour le firmware dans ST-Link et d'obtenir le débogueur SEGGER J-Link OB (embarqué). Légalement, il existe une restriction à l'utilisation d'un tel débogueur uniquement avec les cartes STMicroelectronics, mais en fait le potentiel n'est pas limité. Ainsi, avec J-Link OB, vous pouvez avoir un programmeur-débogueur intégré sur la carte de débogage. Je note que les produits LDM-Systems utilisent le convertisseur CP2102 (Usb2Uart), qui ne peut que flasher.

Développement d'une carte de debug pour K1986BE1QI (aviation)
Microcontrôleurs STM32F103C8T6, vrais et pas si, (c) Photo de l'auteur

Il était donc nécessaire d'acheter le STM32F103C8T6 d'origine, car le micrologiciel de marque ne fonctionnera pas correctement avec le clone. J'ai douté de cette thèse et j'ai décidé d'essayer le contrôleur CS32F103C8T6 de la société chinoise CKS. Je n'ai rien à redire sur le contrôleur lui-même, mais le micrologiciel propriétaire ST-Link ne fonctionnait pas. J-Link a fonctionné partiellement - le périphérique USB a été détecté, mais le programmeur n'a pas exécuté ses fonctions et a constamment rappelé qu'il était «défectueux».

Développement d'une carte de debug pour K1986BE1QI (aviation)
Erreur lors de l'exécution du débogueur sur un contrôleur non original

Je ne me suis pas calmé à ce sujet et j'ai d'abord écrit le firmware pour faire clignoter la LED, puis j'ai implémenté la demande IDCODE en utilisant le protocole JTAG. Le programmeur ST-Link que j'avais sur la carte Discovery et le programme ST-Link Utility ont flashé CS32F103C8T6 sans problème, ce qui m'a permis de vérifier que ma carte fonctionnait. À mon plus grand plaisir, le contrôleur cible K1986BE1QI (aviation) a joyeusement émis son IDCODE sur la ligne TDO.

Développement d'une carte de debug pour K1986BE1QI (aviation)
Oscillogramme de la ligne de signal TDO avec réponse codée IDCODE, (c) Photo de l'auteur

Développement d'une carte de debug pour K1986BE1QI (aviation)
Ainsi, le port SWD s'est avéré utile pour déboguer le débogueur lui-même et vérifier IDCODE

Il y avait une option avec un débogueur CMSIS-DAP (port d'accès de débogage). Construire un projet à partir de sources ARM n'est pas une tâche facile, j'ai pris le projet de X893, puis j'ai aussi essayé DAP42. Malheureusement, Keil uVision est resté bloqué et n'a pas voulu travailler avec eux. En conséquence, j'ai remplacé la puce du débogueur par un STM32F103C8T6 propriétaire et je ne suis jamais revenu sur ce problème.

Développement d'une carte de debug pour K1986BE1QI (aviation)
Fonctionnement réussi du débogueur intégré J-Link STLink V2

Lorsque tous les composants clés de la future carte de débogage étaient disponibles, je suis entré dans Eagle CAD et j'ai constaté qu'ils n'étaient pas dans la bibliothèque d'éléments. Il n'y a nulle part où aller - j'ai dû les dessiner moi-même. En même temps, j'ai fabriqué des sièges pour la mémoire, le connecteur HanRun pour Ethernet et ajouté des cadres pour les résistances et les condensateurs. Le fichier de projet et la bibliothèque de composants peuvent être trouvés je l'ai sur GitHub.

Schéma de principe de la carte de débogage MDB1986Développement d'une carte de debug pour K1986BE1QI (aviation)

La carte est alimentée par une source de 5 volts CC à partir du port USB. Il y a deux ports USB Type-B sur la carte. L'un est pour le programmeur, le second est pour le contrôleur K1986BE1QI. Le conseil peut travailler à partir de n'importe laquelle de ces sources ou des deux en même temps. Le réglage de charge et la protection des lignes électriques les plus simples sont mis en œuvre sur des diodes Schottky, dans les circuits D2 et D3 (SS24). Également sur le schéma, vous pouvez voir les fusibles à rétablissement automatique F1 et F2 à 500 mA. Les lignes de signal du port USB sont protégées par l'ensemble de diodes USBLC6-2SC6.

Le circuit débogueur-programmeur ST-Link est connu de beaucoup, il peut être trouvé dans la documentation des cartes STM32-Discovery et d'autres sources. Pour le firmware principal du clone ST-Link / J-Link-OB / DAP (optionnel), j'ai ressorti les lignes SWDIO (PA13), SWCLK (PA14), GND. Beaucoup utilisent UART pour le firmware et sont obligés de retirer les cavaliers BOOT. Mais SWD est plus pratique pour moi, en plus ce protocole permet le débogage.

Presque tous les composants de la carte sont alimentés en 3.3 volts, qui proviennent du régulateur de tension AMS1117-3.3. Pour supprimer les interférences électromagnétiques et les surtensions, des filtres LC des condensateurs et des selfs de la série BLM31PG sont utilisés.

Séparément, il convient de mentionner le pilote d'affichage à 7 segments MAX7221. Selon les spécifications, l'alimentation recommandée est de 4 à 5.5 volts, et le niveau de signal haut (un logique) est d'au moins 3.5 V (0.7 x VCC), lorsqu'il est alimenté par 5 V. Pour le contrôleur K1986BE1QI (aviation), la sortie d'une unité logique correspond à une tension de 2.8 à 3.3V. De toute évidence, il existe une inadéquation des niveaux de signal qui peut perturber le fonctionnement normal. J'ai décidé d'alimenter le MAX7221 à partir de 4V et d'abaisser les niveaux de signal à 2.8V (0.7 x 4 = 2.8). Pour ce faire, une diode D4 (RS1A ou FR103) est installée en série dans le circuit d'alimentation du driver. La chute de tension totale est de 0.9 V (diode Schottky 0.3 V et diode 0.6 V), et tout fonctionne.

La plupart des ports du microcontrôleur K1986BE1QI (aviation) sont compatibles avec des signaux jusqu'à 5V. Par conséquent, l'utilisation de l'émetteur-récepteur CAN MCP2551, qui fonctionne également à partir de 5V, ne pose pas de problèmes. Le schéma montre la puce MAX232 comme émetteur-récepteur RS-3232, mais en fait j'ai utilisé SN65C3232D de Texas Instruments, car il fonctionne à partir de 3.3 V et offre une vitesse allant jusqu'à 1 Mbit/s.

Il y a 4 résonateurs à quartz sur la carte - un pour le débogueur (8 MHz) et trois pour le microcontrôleur cible K1986BE1QI (aviation) avec des valeurs nominales de 32.768 kHz, 16 MHz, 25 MHz. Ce sont des composants nécessaires, car. les paramètres du générateur RC intégré sont dans une large gamme de 6 à 10 MHz. La fréquence de 25 MHz est requise pour le fonctionnement du contrôleur Ethernet intégré. Pour une raison quelconque, le site Web de Milandra (peut-être par erreur) indique qu'il n'y a pas d'Ethernet dans le boîtier en plastique. Mais nous nous appuierons sur les spécifications et les faits.

Une incitation importante à créer votre propre carte de débogage était la possibilité de travailler avec un bus système externe EBC (contrôleur de bus externe), qui est essentiellement un port parallèle. Le microcontrôleur K1986BE1QI (aviation) vous permet de vous connecter et de travailler avec des puces de mémoire externes et des périphériques, tels que ADC, FPGA, etc. Les possibilités du bus système externe sont assez grandes - vous pouvez travailler avec une RAM statique 8 bits, 16 bits et 32 ​​bits, une ROM et une Flash NAND. Pour lire / écrire des données 32 bits, le contrôleur peut effectuer automatiquement 2 opérations correspondantes pour les microcircuits 16 bits et 8 opérations pour ceux 4 bits. De toute évidence, une opération d'E/S 32 bits sera la plus rapide avec un bus de données 32 bits. Les inconvénients incluent la nécessité pour le programme de fonctionner avec des données 32 bits et la carte devra poser 32 pistes.

Développement d'une carte de debug pour K1986BE1QI (aviation)
Puces SRAM, usagées (devinez laquelle est défectueuse)

Une solution équilibrée consiste à utiliser des puces de mémoire 16 bits. Je me suis retrouvé avec les puces Integrated Silicon Solutions Inc. (ISSI IS61LV25616AL, 16x256k, 10ns, 3.3V). Bien sûr, la société "Milandr" a ses propres puces de mémoire statique série 1645RUmais ils sont trop chers et indisponibles. Alternativement, il existe des Samsung K6R4016V1D compatibles avec les broches. J'ai mentionné plus tôt que les circuits intégrés étaient d'occasion et que la copie que j'avais installée était initialement défaillante et erratique sur la 15e ligne de données. Il a fallu plusieurs jours pour trouver des erreurs matérielles, et plus le sentiment de satisfaction était grand lorsque j'ai remplacé la puce endommagée par une puce fonctionnelle. Quoi qu'il en soit, la vitesse de travail avec la mémoire externe laisse beaucoup à désirer.

Bus externe et mode autonomeLe microcontrôleur K1986BE1QI (aviation) dispose d'un mode autonome unique, conçu pour un accès externe direct aux contrôleurs Ethernet et MCIO (MIL_STD_1553) via un bus externe, tandis que le cœur est dans un état de réinitialisation, c'est-à-dire. non utilisé. Ce mode est utile pour les processeurs et les FPGA qui n'ont pas Ethernet et/ou MCIO.
Le schéma de connexion est le suivant :

  • bus de données MCU(D0-D15) => SRAM(I/O0-I/O15),
  • adresse bus MCU(A1-A18) => SRAM(A0-A17),
  • Contrôle MCU (nWR, nRD, PortC2) => SRAM (WE, OE, CE),
  • SRAM (UB, LB) sont connectés ou tirés à la terre via une résistance.

La ligne CE est alimentée par une résistance, les broches de récupération d'octets MCU (BE0-BE3) ne sont pas utilisées. Sous le spoiler, je donne le code d'initialisation des ports et du contrôleur de bus externe.

Initialisation des ports et du contrôleur EBC (contrôleur de bus externe)

void SRAM_Init (void)
{
	EBC_InitTypeDef          EBC_InitStruct = { 0 };
	EBC_MemRegionInitTypeDef EBC_MemRegionInitStruct = { 0 };
	PORT_InitTypeDef         initStruct = { 0 };

	RST_CLK_PCLKcmd (RST_CLK_PCLK_EBC, ENABLE);

	PORT_StructInit (&initStruct);
	//--------------------------------------------//
	// DATA PA0..PA15 (D0..D15)                   //
	//--------------------------------------------//
	initStruct.PORT_MODE      = PORT_MODE_DIGITAL;
	initStruct.PORT_PD_SHM    = PORT_PD_SHM_ON;
	initStruct.PORT_SPEED     = PORT_SPEED_FAST;
	initStruct.PORT_FUNC      = PORT_FUNC_MAIN;
	initStruct.PORT_Pin       = PORT_Pin_All;
	PORT_Init (MDR_PORTA, &initStruct);	
	//--------------------------------------------//
	// Address PF3-PF15 (A0..A12), A0 - not used. //
	//--------------------------------------------//
	initStruct.PORT_FUNC      = PORT_FUNC_ALTER;
	initStruct.PORT_Pin       = PORT_Pin_4  | PORT_Pin_5  |
	                            PORT_Pin_6  | PORT_Pin_7  |
	                            PORT_Pin_8  | PORT_Pin_9  |
								PORT_Pin_10 | PORT_Pin_11 |
	                            PORT_Pin_12 | PORT_Pin_13 |
								PORT_Pin_14 | PORT_Pin_15;
	PORT_Init (MDR_PORTF, &initStruct);	
	//--------------------------------------------//
	// Address PD3..PD0 (A13..A16)                //
	//--------------------------------------------//
	initStruct.PORT_FUNC      = PORT_FUNC_OVERRID;
	initStruct.PORT_Pin       = PORT_Pin_0 | PORT_Pin_1 |
	                            PORT_Pin_2 | PORT_Pin_3;
	PORT_Init (MDR_PORTD, &initStruct);	
	//--------------------------------------------//
	// Address PE3, PE4 (A17, A18)                //
	//--------------------------------------------//
	initStruct.PORT_FUNC      = PORT_FUNC_ALTER;
	initStruct.PORT_Pin       = PORT_Pin_3 | PORT_Pin_4;
	PORT_Init (MDR_PORTE, &initStruct);	
	//--------------------------------------------//
	// Control PC0,PC1 (nWE,nOE)                  //
	//--------------------------------------------//
	initStruct.PORT_FUNC      = PORT_FUNC_MAIN;
	initStruct.PORT_Pin       = PORT_Pin_0 | PORT_Pin_1;
	PORT_Init (MDR_PORTC, &initStruct);	
	//--------------------------------------------//
	// Control PC2 (nCE)                          //
	//--------------------------------------------//
	initStruct.PORT_PD        = PORT_PD_DRIVER;
	initStruct.PORT_OE        = PORT_OE_OUT;
	initStruct.PORT_FUNC      = PORT_FUNC_PORT;
	initStruct.PORT_Pin       = MDB_SRAM_CE;
	PORT_Init (MDR_PORTC, &initStruct);	

	//--------------------------------------------//
	// Initialize EBC controler                   //
	//--------------------------------------------//
	EBC_DeInit();
	EBC_StructInit(&EBC_InitStruct);
	EBC_InitStruct.EBC_Mode             = EBC_MODE_RAM;
	EBC_InitStruct.EBC_WaitState        = EBC_WAIT_STATE_3HCLK;
	EBC_InitStruct.EBC_DataAlignment    = EBC_EBC_DATA_ALIGNMENT_16;
	EBC_Init(&EBC_InitStruct);
	
	EBC_MemRegionStructInit(&EBC_MemRegionInitStruct);
	EBC_MemRegionInitStruct.WS_Active   = 2;
	EBC_MemRegionInitStruct.WS_Setup    = EBC_WS_SETUP_CYCLE_1HCLK;
	EBC_MemRegionInitStruct.WS_Hold     = EBC_WS_HOLD_CYCLE_1HCLK;
	EBC_MemRegionInitStruct.Enable_Tune = ENABLE;
	EBC_MemRegionInit (&EBC_MemRegionInitStruct, EBC_MEM_REGION_60000000);
	EBC_MemRegionCMD(EBC_MEM_REGION_60000000, ENABLE);

	// Turn ON RAM (nCE)
	PORT_ResetBits (MDR_PORTC, MDB_SRAM_CE);
}

Le microcontrôleur du boîtier LQFP-144 et la mémoire du boîtier TSOP-44 ont de nombreuses broches connectées et occupent beaucoup d'espace sur le circuit imprimé. Ayant de l'expérience dans la résolution de problèmes d'optimisation dans le domaine de l'économie, il était évident pour moi que ces microcircuits devaient être placés sur la carte en premier lieu. Dans diverses sources, je suis tombé sur des critiques élogieuses à propos de CAD TopoR (Routeur Topologique). J'ai téléchargé la version d'essai et j'ai pu y exporter mon projet depuis Eagle CAD uniquement lorsque j'ai supprimé presque tous les composants. Malheureusement, le programme TopoR ne m'a pas aidé à placer ne serait-ce que 10 éléments sur le tableau. Tout d'abord, tous les composants ont été placés dans un coin, puis disposés le long du bord. Cette option ne me satisfaisait pas et j'ai passé beaucoup de temps à tracer manuellement la carte dans l'environnement familier d'Eagle CAD.

La sérigraphie est un élément important du circuit imprimé. Sur la carte de débogage, non seulement il doit y avoir des signatures pour les composants électroniques, mais tous les connecteurs doivent être signés. Au verso du tableau, j'ai placé les tableaux-rappels avec les fonctions des ports du contrôleur (principal, alternatif, surchargé, actuel). J'ai commandé la fabrication de cartes de circuits imprimés en Chine dans le bureau bien connu de PCBWay. Je ne ferai pas l'éloge, car la qualité est bonne. Ils peuvent faire mieux avec des tolérances plus petites, mais pour un coût supplémentaire.

Développement d'une carte de debug pour K1986BE1QI (aviation)
Cartes de circuits imprimés manufacturés MDB1986, (c) Photo de l'auteur

J'ai dû dessouder les composants «sur le genou» avec un fer à souder de 40 watts et une soudure POS-61, car je soude rarement, 1 à 2 fois par an, et la pâte à souder s'est tarie. J'ai également dû remplacer le contrôleur chinois CS32F103 par le STM32F103 d'origine, puis remplacer également la mémoire. En général, je suis maintenant entièrement satisfait du résultat, même si je n'ai pas encore vérifié le fonctionnement de RS-232 et CAN.

Développement d'une carte de debug pour K1986BE1QI (aviation)
Carte de débogage MDB1986 en fonctionnement - brille et se réchauffe, (с) Photo de l'auteur

Sur le site "Milandra" vous pouvez trouver assez matériel d'apprentissage pour l'apprentissage des contrôleurs Série 1986BE9 (noyau Cortex-M3), mais pour le microcontrôleur K1986BE1QI (aviation), je n'y vois rien. Après avoir examiné les documents publiés là-bas, les manuels et les travaux de laboratoire pour les universités, je suis heureux que du personnel soit formé dans tout le pays pour travailler avec des contrôleurs russes. La plupart des supports de formation sont préparés pour fonctionner avec des ports d'E / S, des minuteries, ADC, DAC, SPI, UART. Différents IDE sont utilisés (Keil, IAR, CodeMaster). Quelque part ils programment en utilisant les registres CMSIS, et quelque part ils utilisent la bibliothèque MDR. La ressource doit être mentionnée Démarrer Milandr, qui contient de nombreux articles rédigés par des programmeurs en exercice. Et bien sûr, il ne faut pas oublier Forum Milandra.

Penser à MilandraLa microélectronique en Russie se développe et la société "Milandr" joue un rôle important dans ce processus. De nouveaux microcontrôleurs intéressants apparaissent, par exemple, 1986BE81T et Elektrosila avec des interfaces SpaceWire et MKIO (les mêmes que dans 1986BE1 et, éventuellement, avec les mêmes problèmes), etc. Mais pour les étudiants ordinaires, les enseignants et les ingénieurs civils, il n'est pas réaliste d'acheter de tels microcircuits. Cela signifie que la communauté des ingénieurs ne sera pas en mesure d'identifier rapidement les erreurs et les problèmes de cette puce. Il me semble qu'il faut d'abord produire des microcircuits dans un boîtier en plastique, les distribuer à toutes les parties intéressées, et ce n'est qu'après approbation (latin approbatio - approbation, reconnaissance) que les spécialistes peuvent préparer une révision dans un boîtier céramique-métal avec protection contre tous des facteurs terribles. J'espère que dans un futur proche nous serons TOUS satisfaits des nouveaux projets annoncés sur les salons.
N'importe qui peut répéter, modifier et utiliser le tableau de débogage que j'ai développé dans le processus éducatif. Tout d'abord, je me suis fait une planche, mais ça s'est tellement bien passé que J'ai décidé de partager avec tout le monde.

K1986BE1QI (air) est un contrôleur très intéressant avec des interfaces uniques qui peuvent être utilisées dans les universités pour enseigner aux étudiants. Je pense qu'après avoir corrigé les erreurs identifiées dans la manette et passé les tests de certification, la manette volera dans le vrai sens du terme !

Source: habr.com

Ajouter un commentaire