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

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

Il y a quelques années, j'ai découvert les microcontrôleurs russes de la société Milandr. C'était en 2013, lorsque les ingénieurs discutaient avec enthousiasme des premiers résultats du programme fédéral "Développement de la base électronique et de la radioélectronique" pour la période 2008-2015. À cette époque, le contrôleur K1986ВЕ9x (cœur Cortex-M3) avait déjà été lancé, et le contrôleur 1986ВЕ1Т (cœur Cortex-M1) venait tout juste d'apparaître. Ce dernier, dans un boîtier plastique LQFP-144, était désigné dans la documentation comme K1986ВЕ1QI (aviation), tandis que sur la puce elle-même, il portait la désignation MDR32F1QI. Sur le site du fabricant, il porte le suffixe "aviation", car il dispose d'interfaces spécifiques à l'aéronautique (ARINC 429, MIL_STD_1553).

Étonnamment, au moment de la diffusion de ces contrôleurs, la société "Milandr" avait préparé des kits de développement et une bibliothèque de sous-programmes pour travailler avec les périphériques, "mais sans aucune garantie ou engagement quant à la correction de la bibliothèque". La bibliothèque ressemble à la Standard Peripheral Library de STMicroelectronics. En général, tous les microcontrôleurs ARM construits sur le cœur Cortex-M ont beaucoup de points communs. Pour cette raison, la prise en main des nouveaux microcontrôleurs russes s'est faite rapidement. Et pour ceux qui achetaient les kits de développement de marque, un support technique était fourni tout au long de leur utilisation.

Développement d'une carte de test pour le K1986BE1QI (aviation)
Kit de développement pour le microcontrôleur 1986ВЕ1Т, © Milandr

Cependant, avec le temps, des "maladies infantiles" des nouvelles puces et bibliothèques ont commencé à se manifester. Les exemples de tests de programmes fonctionnaient sans problèmes apparents, mais lors de modifications significatives, des pannes et des erreurs survenaient fréquemment. Le premier "signes avant-coureur" dans ma pratique étaient des pannes inexpliquées du contrôleur CAN. Un an plus tard, un problème a été découvert sur le contrôleur 1986ВЕ1Т (aviation) de première révision avec le module MKIO (canal multiplexé d'échange d'information). En général, toutes les révisions de ces microcontrôleurs jusqu'en 2016 étaient de qualité 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 les listes d'erreurs (Errata).

Une caractéristique désagréable était que travailler et résoudre les erreurs devait se faire non pas sur des cartes de test, mais sur des cartes prototypes d'appareils destinés à la fabrication en série. À part le connecteur JTAG, il n'y avait généralement rien. Se connecter avec un analyseur logique était difficile et incommode, 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 test m'est venue à l'esprit.

D'un côté, il existait sur le marché des kits de test de marque, ainsi que d'excellentes cartes de la société LDM-Systems de Zelenograd. D'un autre côté, les prix de ces produits sont sidérants, et la fonctionnalité de base sans cartes d'extension ne correspond pas aux attentes. Une carte avec un contrôleur soudé et un connecteur à broches ne m'intéresse pas. En revanche, des cartes plus intéressantes coûtent cher.

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

La politique de prix et le marketing de la société « Milandr » sont singuliers. Ainsi, il est possible d'obtenir gratuitement des échantillons de certaines puces, mais cela n'est accessible qu'aux personnes morales et est associé à un parcours bureaucratique. En général, les puces en boîtier céramique sont précieuses au sens propre et figuré. Par exemple, le contrôleur 1986ВЕ1Т coûte à Moscou entre 14 000 et 24 000 roubles. La puce de mémoire statique 1645РУ6У coûte à partir de 15 000 roubles. Et ce barème de prix s'applique à tous les produits. Au final, même les instituts de recherche d'État avec des commandes d'État économisent et se détournent de tels prix. Les puces en boîtier plastique pour une utilisation civile sont considérablement moins chères, mais elles ne sont pas disponibles chez les fournisseurs populaires. De plus, la qualité des puces en plastique, à mon avis, est inférieure à celle des « dorées ». Par exemple, je n'ai pas pu lancer le contrôleur K1986BE1QI à une fréquence de 128 MHz sans augmenter le paramètre de latence flash. Dans le même temps, la température de ce contrôleur a grimpé à 40-50°C. En revanche, le contrôleur 1986BE1T (« doré ») a démarré à 128 MHz sans réglages supplémentaires et est resté froid. Il est vraiment bon.

Développement d'une carte de test pour le K1986BE1QI (aviation)
Le microcontrôleur « doré » 1986BE1T, (c) Milandr

J'ai eu de la chance de pouvoir acheter le microcontrôleur dans un boîtier en plastique à la société LDM Systems, et tous les schémas de circuits sont disponibles. Le problème est que sur la photo du contrôleur sur le site, on voit une étiquette indiquant qu'il s'agit de la révision 4 de 2014, c'est-à-dire avec des défauts. J'ai longtemps réfléchi – acheter ou ne pas acheter. Cela a pris quelques années...

L'idée de créer une carte de développement n'a jamais disparu. J'ai progressivement défini toutes les exigences et pensé à comment tout intégrer sur une seule carte pour la rendre compacte et peu coûteuse. Parallèlement, j'ai commandé les composants manquants chez des fournisseurs chinois. Je ne me dépêchais pas – je faisais tout pour moi-même. Les fournisseurs chinois sont réputés pour leur désorganisation – j'ai dû commander la même chose à différents endroits pour obtenir tout ce dont j'avais besoin. De plus, certaines puces de mémoire se sont révélées usagées – visiblement extraites d'appareils cassés. Cela m'a joué des tours plus tard.

Acheter le microcontrôleur Milandr K1986BE1QI (aviation) n'est pas une tâche simple. Dans la même boutique « Chip and Dip », dans la section « Positions sur commande », je n'ai trouvé que le K1986BE92QI à 740 roubles, mais il ne me convenait pas. La seule option était d'acheter chez LDM-Systems une révision ancienne pour 2000 roubles. Ne trouvant pas d'alternative ailleurs, j'ai décidé d'acheter ce qui était disponible. À ma grande surprise, on m'a vendu un tout nouveau contrôleur, fabriqué en décembre 2018, révision 6+ (1820). Cependant, le site affichait toujours l'ancienne photo, et au moment de la rédaction de l'article, il n'y avait plus de contrôleur en stock...

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

Caractéristiques techniques principales de ma carte de développement MDB1986 les suivantes :

  • débogueur-programmateur intégré, compatible avec J-Link et CMSIS-DAP ;
  • mémoire statique 4Mbit (256k x 16, 10 ns) ;
  • puce mémoire flash 64Mbit, Winbond 25Q64FVSIG ;
  • émetteur-récepteur de l'interface RS-232 avec lignes RTS et CTS ;
  • interfaces et connecteurs pour Ethernet, USB, CAN ;
  • contrôleur d'écran 7 segments MAX7221 ;
  • connecteur à broches pour fonctionnement avec MKIO (MIL_STD_1553) et ARINC429 ;
  • phototransistor Everlight PT17-21C ;
  • cinq diodes électroluminescentes colorées, un bouton de réinitialisation et deux boutons personnalisés ;
  • alimentation via le port USB 5 volts ;
  • dimensions de la carte imprimée 100 x 80 mm

J'aimais les cartes de la série STM-Discovery car elles intègrent un programmateur-débogueur – ST-Link. Le ST-Link officiel fonctionne uniquement avec les contrôleurs de la société STMicroelectronics, mais il y a quelques années, il a été possible de mettre à jour le firmware du ST-Link et d'obtenir le débogueur SEGGER J-Link OB (sur carte). Il existe légalement une restriction sur l'utilisation de ce débogueur uniquement avec les cartes STMicroelectronics, mais en réalité, son potentiel n'est pas limité. Ainsi, avec le J-Link OB, on peut avoir un programmateur-débogueur intégré sur la carte de débogage. Je tiens à noter que dans les produits « LDM-Systems », un convertisseur CP2102 (Usb2Uart) est utilisé, qui ne peut que flasher.

Développement d'une carte de test pour le K1986BE1QI (aviation)
Les microcontrôleurs STM32F103C8T6, véritables ou non, (c) Photo de l'auteur

Ainsi, il était nécessaire d'acheter un STM32F103C8T6 original, car les firmwares officiels ne fonctionneront pas correctement avec un clone. J'avais des doutes à ce sujet et j'ai décidé d'essayer le contrôleur CS32F103C8T6 de la société chinoise CKS. Je n'ai pas de reproches à faire au contrôleur lui-même, mais le firmware officiel ST-Link n'a pas fonctionné. Le J-Link fonctionnait partiellement – le périphérique USB était reconnu, mais il ne remplissait pas ses fonctions de programmateur et rappelait constamment qu'il était « défectueux ».

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

Je ne me suis pas arrêté là et j'ai d'abord écrit un firmware pour faire clignoter une LED, puis j'ai implémenté une demande IDCODE selon le protocole JTAG. Le programmateur ST-Link, que j'avais sur ma carte Discovery, et le programme ST-Link Utility ont flasher sans problème le CS32F103C8T6. Finalement, je me suis rendu compte que ma carte fonctionnait. À ma grande joie, le contrôleur cible K1986ВЕ1QI (aviation) renvoyait avec entrain son IDCODE par la ligne TDO.

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

Développement d'une carte de test pour le K1986BE1QI (aviation)
Le port SWD a donc été utile pour déboguer le débogueur lui-même et vérifier l'IDCODE

Il restait l'option du débogueur CMSIS-DAP (Debug Access Port). Compiler un projet à partir des sources ARM n'est pas simple, j'ai pris le projet de X893, puis j'ai également essayé le DAP42. Malheureusement, Keil uVision plantait et ne voulait pas fonctionner avec eux. Au final, j'ai remplacé le microcontrôleur du débogueur par un STM32F103C8T6 officiel et je ne suis plus revenu à cette question.

Développement d'une carte de test pour le 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 me suis plongé dans Eagle CAD et j'ai découvert qu'ils n'étaient pas dans la bibliothèque d'éléments. Je n'avais pas d'autre choix – j'ai dû les dessiner moi-même. En même temps, j'ai conçu des emplacements pour la mémoire, un connecteur HanRun pour l'Ethernet, et j'ai ajouté des cadres pour les résistances et les condensateurs. Le fichier projet et la bibliothèque de composants peuvent être trouvés sur mon GitHub.

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

La carte est alimentée par une source de courant continu de 5 volts, obtenue à partir du port USB. Il y a au total deux ports USB Type-B sur la carte. Un – pour le programmateur, l'autre – pour le contrôleur K1986BE1QI. La carte peut fonctionner à partir de n'importe laquelle de ces sources ou des deux simultanément. Un réglage de charge simple et une protection des lignes d'alimentation sont réalisés à l'aide de diodes Schottky, sur le schéma D2 et D3 (SS24). On peut également voir sur le schéma des fusibles réinitialisables F1 et F2 de 500 mA. Les lignes de signal du port USB sont protégées par un assemblage de diodes USBLC6-2SC6.

Le schéma du débogueur-programmateur ST-Link est bien connu, et on peut le trouver dans la documentation des cartes STM32-Discovery et d'autres sources. Pour la première programmation du clone ST-Link/J-Link-OB/DAP (au choix), j'ai sorti les lignes SWDIO (PA13), SWCLK (PA14), GND. Beaucoup utilisent le serial UART pour la programmation et doivent manipuler les cavaliers BOOT. Mais je préfère le SWD, d'autant plus que ce protocole permet le débogage.

Presque tous les composants de la carte sont alimentés par 3,3 volts, qui proviennent du régulateur de tension AMS1117-3.3. Pour atténuer les interférences électromagnétiques et les pics de courant, des filtres LC constitués de condensateurs et de selfs de la série BLM31PG sont utilisés.

Il convient de mentionner séparément le pilote d'affichage à 7 segments MAX7221. Selon la spécification, la tension d'alimentation recommandée se situe entre 4 et 5,5 volts, et le niveau de signal haut (logique 1) est d'au moins 3,5V (0,7 x VCC), lorsque l'alimentation est de 5V. Pour le contrôleur K1986BE1QI (aéronautique), la sortie de logique 1 correspond à une tension de 2,8 à 3,3V. Il est donc clair qu'il y a un décalage de niveaux de signal, ce qui pourrait perturber son fonctionnement normal. J'ai décidé de alimenter le MAX7221 avec 4V et de réduire les niveaux de signal à 2,8V (0,7 x 4 = 2,8). Pour cela, une diode D4 (RS1A ou FR103) est installée en série dans le circuit d'alimentation du driver. Ainsi, la chute de tension est de 0,9V (diode Schottky 0,3V et diode 0,6V), et ça fonctionne tout bien.

La plupart des ports du microcontrôleur K1986ВЕ1QI (aéronautique) sont compatibles avec des signaux allant jusqu'à 5V. Ainsi, l'utilisation du CAN transceiver MCP2551, qui fonctionne également sous 5V, ne pose pas de problème. En tant que récepteur émetteur RS-232, le schéma indique le circuit intégré MAX3232, mais en réalité, j'ai utilisé le SN65C3232D de Texas Instruments, car il fonctionne sous 3,3V et offre une vitesse allant jusqu'à 1 Mbit/s.

La carte comporte 4 résonateurs à quartz : un pour le débogueur (8 MHz) et trois pour le microcontrôleur K1986ВЕ1QI (aéronautique) avec des fréquences de 32,768 kHz, 16 MHz, et 25 MHz. Ce sont des composants nécessaires, car les paramètres du générateur RC intégré varient beaucoup, allant de 6 à 10 MHz. La fréquence de 25 MHz est nécessaire pour le fonctionnement du contrôleur Ethernet intégré. Il est indiqué sur le site de Milandr (peut-être par erreur) que l'Ethernet est absent dans le boîtier en plastique. Mais nous nous baserons sur la spécification et les faits.

Un des principaux incitatifs pour créer ma propre carte de débogage était la possibilité de travailler avec le bus système externe EBC (contrôleur de bus externe), qui est en fait un port parallèle. Le microcontrôleur K1986ВЕ1QI (aéronautique) permet de connecter et de travailler avec des puces mémoire externes et des dispositifs périphériques, tels que des ADC, des FPGA, etc. Les capacités du bus système externe sont assez étendues – il est possible de travailler avec des RAM statiques 8 bits, 16 bits et 32 bits, des ROM et des NAND Flash. Pour la lecture/écriture de données 32 bits, le contrôleur peut automatiquement réaliser 2 opérations correspondantes pour des puces 16 bits, et pour des puces 8 bits – 4 opérations. Il est évident qu'une opération d'entrée/sortie 32 bits sera exécutée le plus rapidement avec un bus de données 32 bits. Parmi les inconvénients, on peut citer la nécessité d'utiliser des données 32 bits dans le programme, et la carte devra être conçue avec 32 pistes.

Développement d'une carte de test pour le K1986BE1QI (aviation)
Circuits intégrés RAM statiques, d'occasion (devine lequel a un défaut)

Une solution équilibrée est l'utilisation de puces mémoire 16 bits. J'ai en ma possession des puces d'Integrated Silicon Solutions Inc. (ISSI IS61LV25616AL, 16 x 256k, 10 ns, 3.3V). Bien sûr, la société « Milandr » a ses propres puces de mémoire statique. série 1645РУ, mais ils sont trop chers et inaccessibles. En alternative, il existe des modèles compatibles de Samsung K6R4016V1D. J'avais déjà mentionné que les puces étaient d'occasion et l'échantillon que j'ai installé initialement montrait des pannes et des valeurs erratiques sur la 15ème ligne de données. Cela a pris plusieurs jours pour identifier les erreurs matérielles, et plus le ressenti de satisfaction était grand lorsque j'ai remplacé la puce défectueuse par une fonctionnelle. Quoi qu'il en soit, la vitesse de travail avec la mémoire externe laisse à désirer.

Bus externe et mode StandAloneLe microcontrôleur К1986ВЕ1QI (aéronautique) possède un mode StandAlone unique, qui est conçu pour un accès direct externe aux contrôleurs Ethernet et aux interfaces MIL_STD_1553 (MKIO) via le bus externe, avec le cœur en mode réinitialisé, c'est-à-dire inutilisé. Ce mode est pratique pour les processeurs et FPGA sans Ethernet et/ou MKIO.
Le schéma de connexion est le suivant :

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

La ligne CE est tirée vers l'alimentation via une résistance, les broches de sélection de byte MCU(BE0-BE3) ne sont pas utilisées. Sous le spoiler, j'inclue 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);
	//--------------------------------------------//
	// DONNÉES 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);	
	//--------------------------------------------//
	// Adresse PF3-PF15 (A0..A12), A0 - pas utilisé. //
	//--------------------------------------------//
	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);	
	//--------------------------------------------//
	// Adresse 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);	
	//--------------------------------------------//
	// Adresse PE3, PE4 (A17, A18)                //
	//--------------------------------------------//
	initStruct.PORT_FUNC      = PORT_FUNC_ALTER;
	initStruct.PORT_Pin       = PORT_Pin_3 | PORT_Pin_4;
	PORT_Init (MDR_PORTE, &initStruct);	
	//--------------------------------------------//
	// Contrôle PC0,PC1 (nWE,nOE)                  //
	//--------------------------------------------//
	initStruct.PORT_FUNC      = PORT_FUNC_MAIN;
	initStruct.PORT_Pin       = PORT_Pin_0 | PORT_Pin_1;
	PORT_Init (MDR_PORTC, &initStruct);	
	//--------------------------------------------//
	// Contrôle 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);	

	//--------------------------------------------//
	// Initialiser le contrôleur EBC                   //
	//--------------------------------------------//
	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);

	// Activer RAM (nCE)
	PORT_ResetBits (MDR_PORTC, MDB_SRAM_CE);
}

Le microcontrôleur en boîtier LQFP-144 et la mémoire en boîtier TSOP-44 ont de nombreuses broches connectées et occupent beaucoup d'espace sur le circuit imprimé. Fort de mon expérience dans la résolution de problèmes d'optimisation en économie, il m'est apparu évident que ces circuits intégrés devaient être placés sur la carte en priorité. J'ai rencontré des avis élogieux dans diverses sources sur le logiciel de CAO TopoR (Topological Router). J'ai téléchargé la version d'essai et j'ai pu exporter mon projet depuis Eagle CAD seulement après avoir supprimé presque tous les composants. Malheureusement, même 10 éléments, le programme TopoR ne m'a pas aidé à les placer sur la carte. Au début, tous les composants étaient regroupés dans un coin, puis dispersés le long du bord. Cela ne m'a pas satisfait, et j'ai passé beaucoup de temps à effectuer le routage manuellement dans l'environnement habituel d'Eagle CAD.

Un élément important du circuit imprimé est la sérigraphie. Sur la carte de test, il doit y avoir non seulement les étiquettes des composants électroniques, mais également tous les connecteurs doivent être étiquetés. Au verso de la carte, j'ai placé des tableaux de rappel avec les fonctions des ports du contrôleur (principal, alternatif, redéfini, effectif). J'ai commandé la fabrication des cartes imprimées en Chine auprès de la célèbre entreprise PCBWay. Je ne vais pas faire de compliments, car la qualité est bonne. Ils peuvent faire mieux, avec des tolérances plus serrées, mais cela a un coût supplémentaire.

Développement d'une carte de test pour le K1986BE1QI (aviation)
Les circuits imprimés MDB1986 fabriqués, (c) Photo de l'auteur

J'ai dû souder les composants « à la main » avec un fer à souder de 40 watts et de l'étain POS-61, car je ne soude que rarement, 1-2 fois par an, et la pâte à souder avait durci. J'ai également dû remplacer le contrôleur chinois CS32F103 par l'original STM32F103, puis remplacer la mémoire. Dans l'ensemble, je suis complètement 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 test pour le K1986BE1QI (aviation)
La carte de test MDB1986 en fonctionnement — elle éclaire et chauffe, (c) Photo de l'auteur

Sur le site Web de « Milandra », on peut trouver suffisamment de matériaux de formation pour l'étude des contrôleurs série 1986BE9 (noyau Cortex-M3), mais pour le microcontrôleur K1986BE1QI (aviation), je ne vois rien de notable. En parcourant les documents publiés, les manuels et les travaux pratiques pour les universités, je me réjouis de voir que de nouvelles compétences sont développées à travers le pays pour travailler avec les contrôleurs russes. La plupart des matériaux pédagogiques se concentrent sur les ports d'entrée-sortie, les minuteries, les ADC, les DAC, SPI, UART. Différents environnements de développement IDEs (Keil, IAR, CodeMaster) sont utilisés. Parfois, la programmation se fait via les registres CMSIS, et d'autres fois, MDR Library est employé. Il convient de mentionner la ressource Start Milandr, qui contient de nombreux articles de programmeurs praticiens. Et, bien sûr, il ne faut pas oublier le forum Milandr.

Duma de MilandrLa microélectronique en Russie se développe, et dans ce processus, la société «Milandr» joue un rôle significatif. De nouveaux microcontrôleurs intéressants émergent, tels que le 1986BE81T et «Électrosila» avec des interfaces SpaceWire et MKIO (identique à celle du 1986BE1 et, peut-être, avec les mêmes problèmes), etc. Cependant, il est irréaliste pour les simples étudiants, enseignants et ingénieurs civils d'acheter de telles puces. Ainsi, la communauté des ingénieurs ne pourra pas rapidement identifier les erreurs et problèmes de cette puce. Il me semble que dans un premier temps, il serait nécessaire de produire des puces dans un boîtier en plastique, de les distribuer à toutes les parties intéressées, puis, après approbation par des spécialistes, de préparer une révision dans un boîtier en céramique métallique avec des protections contre tous les facteurs menaçants. J'espère qu'à l'avenir, nous serons TOUS ravis des nouveaux projets présentés lors des expositions.
La carte de développement que j'ai conçue peut être reproduite, modifiée et utilisée par n'importe qui dans le cadre du processus d'apprentissage. Au départ, j'ai réalisé cette carte pour moi, mais elle s'est avérée si bien faite que j'ai décidé de partager avec tout le monde.

K1986BE1QI (aviation) – c'est un contrôleur très intéressant avec des interfaces uniques, qui peut être utilisé dans les universités pour l'enseignement des étudiants. Je pense qu'après correction des erreurs identifiées dans le contrôleur et passage des essais de certification, le contrôleur décollera, au sens propre du terme !

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster