Ontwikkeling van een debug board voor K1986BE1QI (luchtvaart)

Ontwikkeling van een debug board voor K1986BE1QI (luchtvaart)

Een paar jaar geleden maakte ik kennis met de Russische microcontrollers van Milandr. Het was 2013, toen ingenieurs krachtig de eerste resultaten bespraken van het Federal Target Program "Ontwikkeling van elektronische componentenbasis en radio-elektronica" voor 2008-2015. Op dat moment was de K1986BE9x-controller (Cortex-M3-kern) al uitgebracht en was de 1986BE1T-controller (Cortex-M1-kern) net verschenen. Hij, in de plastic LQFP-144-behuizing, had de aanduiding K1986BE1QI (luchtvaart) in de documentatie en de aanduiding MDR32F1QI op de chip zelf. Op de website van de fabrikant staat het achtervoegsel "air", omdat het interfaces heeft die specifiek zijn voor de vliegtuigindustrie (ARINC 429, MIL_STD_1553).

Verrassend genoeg maakte het bedrijf Milander ten tijde van de distributie van deze controllers debugkits en een bibliotheek met subroutines voor het werken met randapparatuur, "maar zonder enige aanvullende garanties en verplichtingen met betrekking tot de juistheid van de bibliotheek." De bibliotheek is vergelijkbaar met de Standard Peripheral Library van STMicroelectronics. Over het algemeen hebben alle ARM-controllers die op de Cortex-M-kern zijn gebouwd veel gemeen. Om deze reden ging de kennismaking met de nieuwe Russische controllers snel. En voor degenen die eigen foutopsporingskits kochten, werd technische ondersteuning geboden tijdens het gebruik.

Ontwikkeling van een debug board voor K1986BE1QI (luchtvaart)
Foutopsporingskit voor microcontroller 1986BE1T, © Milandr

Na verloop van tijd begonnen echter "kinderziektes" van nieuwe chips en bibliotheken te verschijnen. Testvoorbeelden van firmware werkten zonder zichtbare problemen, maar met aanzienlijke aanpassingen regenden crashes en fouten. De eerste "slik" in mijn praktijk waren onverklaarbare storingen in de CAN-controller. Een jaar later werd een probleem met de module ontdekt op de 1986BE1T (lucht) controller van een vroege revisie MCIO (multiplex informatie-uitwisselingskanaal). Over het algemeen waren alle revisies van deze microcontrollers tot 2016 van beperkt nut. Er is veel tijd en moeite gestoken in het identificeren van deze problemen, waarvan de bevestiging nu te vinden is in foutenlijsten (Errata).

Een onaangenaam kenmerk was dat het nodig was om niet op debug-borden te werken en fouten op te lossen, maar op borden van prototype-apparaten die gepland waren voor serieproductie in de fabriek. Naast de JTAG-connector was er meestal niets. Het was moeilijk en onhandig om verbinding te maken met een logische analysator en er waren meestal geen LED's en schermen. Om deze reden kwam het idee om mijn eigen debug board te maken in mijn hoofd op.

Aan de ene kant waren er debug-kits van het merk op de markt, evenals prachtige boards van LDM-Systems uit Zelenograd. Aan de andere kant drijven de prijzen voor deze producten iemand tot verdoving en voldoet de basisfunctionaliteit zonder uitbreidingskaarten niet aan de verwachtingen. Een bord met een gesoldeerde controller en een pin-header interesseert me niet. En interessantere boards zijn duur.

Ontwikkeling van een debug board voor K1986BE1QI (luchtvaart)
Ontwikkelbord MILANDR LDM-HELPER-K1986BE1QI-FULL, © LDM Systems

Het bedrijf "Milandr" heeft een uniek prijsbeleid en marketing. Het is dus mogelijk om gratis monsters van sommige microschakelingen te krijgen, maar dit is alleen beschikbaar voor rechtspersonen en gaat gepaard met een bureaucratische zoektocht. Over het algemeen zijn microschakelingen in een pakket van keramisch metaal goud in letterlijke en figuurlijke zin. De 1986BE1T-controller kost bijvoorbeeld in Moskou 14 tot 24 duizend roebel. De 1645RU6U statische geheugenchip kost vanaf 15000 roebel. En dit is de volgorde van prijzen voor alle producten. Als gevolg hiervan besparen zelfs gespecialiseerde onderzoeksinstituten met staatsorders geld en schrikken ze terug voor dergelijke prijzen. Chips in een plastic doosje voor civiel gebruik zijn beduidend goedkoper, maar zijn niet verkrijgbaar bij populaire aanbieders. Bovendien is de kwaliteit van chips in een plastic omhulsel, lijkt mij, slechter dan "goud". Ik was bijvoorbeeld niet in staat om de K1986BE1QI-controller op 128 MHz te laten werken zonder de flash-latentie-instelling te verhogen. Tegelijkertijd steeg de temperatuur van deze controller tot 40-50C. Maar de 1986BE1T ("gouden") controller startte op 128 MHz zonder extra instellingen en bleef koud. Hij is echt goed.

Ontwikkeling van een debug board voor K1986BE1QI (luchtvaart)
"Gouden" microcontroller 1986BE1T, (c) Milandr

Ik had het geluk dat de microcontroller in een plastic behuizing nog steeds in de winkel verkrijgbaar is bij LDM Systems, en dat alle printplaten vrij verkrijgbaar zijn. Het vervelende is dat op de site op de foto van de controller een markering zichtbaar is die zegt dat dit de 4e revisie van 2014 is, d.w.z. met gebreken. Ik heb lang nagedacht - kopen of niet kopen. Zo gingen er jaren voorbij...

Het idee om een ​​debugboard te maken is nog nergens verdwenen. Gaandeweg vormde ik alle eisen en bedacht hoe ik dit allemaal op één bord kon plaatsen, zodat het compact en niet duur zou zijn. Tegelijkertijd bestelde ik de ontbrekende componenten bij de Chinezen. Ik had geen haast - ik deed alles voor mezelf. Chinese leveranciers zijn berucht om hun slordigheid - ik moest hetzelfde op verschillende plaatsen bestellen om alles te krijgen wat ik nodig had. Bovendien bleken sommige geheugenchips tweedehands te zijn - duidelijk gesoldeerd van kapotte apparaten. Dit raakte me later.

Een microcontroller Milandr K1986BE1QI (luchtvaart) kopen is geen gemakkelijke taak. In dezelfde Chip and Dip-winkel vond ik in het gedeelte "Te bestellen posities" alleen K1986BE92QI voor 740 roebel, maar het paste niet bij mij. De enige optie is om een ​​niet-nieuwe revisie van LDM-Systems te kopen voor 2000 roebel. Omdat ik nergens anders een vervanging kon vinden, besloot ik te kopen wat er was. Tot mijn aangename verrassing verkochten ze me een gloednieuwe releasecontroller van december 2018, revisie 6+ (1820). En de site heeft nog steeds een oude foto, en op het moment van schrijven is de controller niet beschikbaar ...

Ontwikkeling van een debug board voor K1986BE1QI (luchtvaart)
Microcontroller K1986BE1QI (luchtvaart) in technologische verpakking, (c) Foto door de auteur

Belangrijkste technische specificaties van mijn ontwikkelbord MDB1986 volgende:

  • ingebouwde debugger-programmeur compatibel met J-Link en CMSIS-DAP;
  • 4Mbit statisch geheugen (256k x 16, 10 ns);
  • flash-geheugenchip 64Mbit, Winbond 25Q64FVSIG;
  • RS-232-interfacezendontvanger met RTS- en CTS-lijnen;
  • interfaces en connectoren voor Ethernet, USB, CAN;
  • 7-segment displaycontroller MAX7221;
  • pinconnector voor het werken met MCIO (MIL_STD_1553) en ARINC429;
  • fototransistor Everlight PT17-21C;
  • vijf gekleurde LED's, een resetknop en twee gebruikersknoppen;
  • hij wordt gevoed door een USB-poort van 5 volt;
  • afmetingen printplaat 100 x 80 mm

Ik vond de boards van de STM-Discovery-serie leuk omdat ze een ingebouwde programmer-debugger hebben - ST-Link. Branded ST-Link werkt alleen met STMicroelectronics-controllers, maar een paar jaar geleden werd het mogelijk om de firmware in ST-Link bij te werken en de SEGGER J-Link OB (on-board) Debugger te krijgen. Wettelijk is er een beperking om zo'n debugger alleen te gebruiken met STMicroelectronics-kaarten, maar in feite is het potentieel niet beperkt. Met J-Link OB kunt u dus een ingebouwde programmer-debugger op het debug-bord hebben. Ik merk op dat de producten van LDM-Systems de CP2102 (Usb2Uart) converter gebruiken, die alleen kan flitsen.

Ontwikkeling van een debug board voor K1986BE1QI (luchtvaart)
STM32F103C8T6-microcontrollers, echt en niet, (c) Foto door de auteur

Het was dus nodig om de originele STM32F103C8T6 te kopen, aangezien merkfirmware niet correct zal werken met de kloon. Ik twijfelde aan dit proefschrift en besloot de CS32F103C8T6-controller van het Chinese bedrijf CKS te proberen. Ik heb geen klachten over de controller zelf, maar de eigen ST-Link-firmware werkte er niet in. J-Link werkte gedeeltelijk - het USB-apparaat werd gedetecteerd, maar de programmeur voerde zijn functies niet uit en herinnerde er constant aan dat het "defect" was.

Ontwikkeling van een debug board voor K1986BE1QI (luchtvaart)
Fout bij het uitvoeren van de debugger op een niet-originele controller

Ik kalmeerde hier niet over en schreef eerst de firmware voor het knipperen van de LED en implementeerde vervolgens het IDCODE-verzoek met behulp van het JTAG-protocol. De ST-Link-programmer die ik op het Discovery-bord had en het ST-Link Utility-programma flitsten CS32F103C8T6 zonder problemen, waardoor ik zeker wist dat mijn bord werkte. Tot mijn grote vreugde gaf de doelcontroller K1986BE1QI (luchtvaart) opgewekt zijn IDCODE uit over de TDO-lijn.

Ontwikkeling van een debug board voor K1986BE1QI (luchtvaart)
Oscillogram van de TDO-signaallijn met IDCODE-gecodeerde respons, (c) Foto door de auteur

Ontwikkeling van een debug board voor K1986BE1QI (luchtvaart)
Dus de SWD-poort kwam goed van pas voor het debuggen van de debugger zelf en het controleren van IDCODE

Er was een optie met een debugger CMSIS-DAP (Debug-toegangspoort). Een project bouwen vanuit ARM-bronnen is geen gemakkelijke taak, ik heb het project overgenomen X893, en toen probeerde ik ook DAP42. Helaas liep Keil uVision vast en wilde niet met ze werken. Als gevolg hiervan heb ik de debugger-chip vervangen door een eigen STM32F103C8T6 en ben ik nooit meer op dit probleem teruggekomen.

Ontwikkeling van een debug board voor K1986BE1QI (luchtvaart)
Succesvolle werking van de ingebouwde debugger J-Link STLink V2

Toen alle belangrijke componenten van het toekomstige foutopsporingsbord beschikbaar waren, stapte ik in Eagle CAD en ontdekte dat ze niet in de bibliotheek met elementen zaten. Ik kan nergens heen - ik moest ze zelf tekenen. Tegelijkertijd maakte ik stoelen voor het geheugen, de HanRun-connector voor Ethernet en voegde ik frames toe voor de weerstanden en condensatoren. Het projectbestand en de componentenbibliotheek zijn te vinden Ik heb het op GitHub.

Schematisch diagram van het MDB1986-foutopsporingsbordOntwikkeling van een debug board voor K1986BE1QI (luchtvaart)

Het bord wordt gevoed door een 5 volt DC-bron van de USB-poort. Er zijn twee USB Type-B-poorten op het bord. Een is voor de programmeur, de tweede is voor de K1986BE1QI-controller. Het bord kan werken vanuit elk van deze bronnen of beide tegelijk. De eenvoudigste aanpassing van de belasting en bescherming van hoogspanningslijnen worden geïmplementeerd op Schottky-diodes, in de circuits D2 en D3 (SS24). Ook op het schema ziet u zelfherstellende zekeringen F1 en F2 bij 500mA. De signaallijnen van de USB-poort worden beschermd door de USBLC6-2SC6-diodeconstructie.

Het ST-Link debugger-programmeercircuit is bij velen bekend, het is te vinden in de documentatie voor de STM32-Discovery-borden en andere bronnen. Voor de primaire firmware van de ST-Link / J-Link-OB / DAP-kloon (optioneel), bracht ik de SWDIO (PA13), SWCLK (PA14), GND-lijnen naar voren. Velen gebruiken UART voor firmware en worden gedwongen om de BOOT-jumpers te trekken. Maar SWD is handiger voor mij, bovendien staat dit protocol debugging toe.

Vrijwel alle componenten van het bord worden gevoed door 3.3 volt, afkomstig van de AMS1117-3.3 spanningsregelaar. Om elektromagnetische interferentie en stroompieken te onderdrukken, worden LC-filters van condensatoren en smoorspoelen van de BLM31PG-serie gebruikt.

Afzonderlijk is het vermelden waard de MAX7 7221-segment display driver. Volgens de specificatie is de aanbevolen voeding van 4 tot 5.5 volt en is het hoge signaalniveau (logische één) niet minder dan 3.5 V (0.7 x VCC), indien gevoed door 5 V. Voor de controller K1986BE1QI (luchtvaart) komt de uitvoer van een logische eenheid overeen met een spanning van 2.8 tot 3.3 V. Het is duidelijk dat er een mismatch is in signaalniveaus die de normale werking kunnen verstoren. Ik besloot om de MAX7221 van 4V te voorzien en de signaalniveaus te verlagen naar 2.8V (0.7 x 4 = 2.8). Hiervoor wordt een diode D4 (RS1A of FR103) in serie geïnstalleerd in het voedingscircuit van de driver. De totale spanningsval is 0.9V (0.3V Schottky-diode en 0.6V-diode), en alles werkt.

De meeste poorten op de K1986BE1QI microcontroller (luchtvaart) zijn compatibel met signalen tot 5V. Daarom levert het gebruik van de MCP2551 CAN-transceiver, die ook op 5V werkt, geen problemen op. Het diagram toont de MAX232-chip als de RS-3232-transceiver, maar in feite heb ik SN65C3232D van Texas Instruments gebruikt, omdat hij werkt vanaf 3.3V en levert snelheden tot 1Mbit/s.

Er zijn 4 kwartsresonatoren op het bord - een voor de debugger (8 MHz) en drie voor de doelmicrocontroller K1986BE1QI (luchtvaart) met nominale waarden van 32.768 kHz, 16 MHz, 25 MHz. Dit zijn noodzakelijke componenten, omdat. de parameters van de ingebouwde RC-generator liggen in een breed bereik van 6 tot 10 MHz. De frequentie van 25 MHz is vereist voor de werking van de ingebouwde Ethernet-controller. Om de een of andere reden vermeldt de website van Milandra (misschien per ongeluk) dat er geen Ethernet in de plastic behuizing zit. Maar we zullen vertrouwen op de specificatie en feiten.

Een belangrijke stimulans voor het maken van je eigen debug-bord was de mogelijkheid om te werken met een externe EBC-systeembus (externe buscontroller), die in wezen een parallelle poort is. Met de microcontroller K1986BE1QI (luchtvaart) kunt u externe geheugenchips en randapparatuur aansluiten en ermee werken, zoals ADC, FPGA, enz. De mogelijkheden van de externe systeembus zijn vrij groot - je kunt werken met 8-bit, 16-bit en 32-bit statische RAM, ROM en NAND Flash. Voor het lezen / schrijven van 32-bits gegevens kan de controller automatisch 2 overeenkomstige bewerkingen uitvoeren voor 16-bits microschakelingen en 8 bewerkingen voor 4-bits microschakelingen. Vanzelfsprekend zal een 32-bits I/O-bewerking het snelst zijn met een 32-bits databus. De nadelen zijn onder meer dat het programma moet werken met 32-bits gegevens en dat het bord 32 sporen moet leggen.

Ontwikkeling van een debug board voor K1986BE1QI (luchtvaart)
SRAM-chips, gebruikt (raad eens welke defect is)

Een evenwichtige oplossing is het gebruik van 16-bits geheugenchips. Ik eindigde met chips van Integrated Silicon Solutions Inc. (ISSI IS61LV25616AL, 16x256k, 10ns, 3.3V). Natuurlijk heeft het bedrijf "Milandr" zijn eigen statische geheugenchips serie 1645RUmaar die zijn te duur en niet verkrijgbaar. Als alternatief zijn er pin-compatibele Samsung K6R4016V1D. Ik heb eerder vermeld dat de IC's tweedehands waren en dat het exemplaar dat ik had geïnstalleerd aanvankelijk haperde en onregelmatig was op de 15e datalijn. Het duurde enkele dagen om hardwarefouten te vinden, en des te groter het gevoel van voldoening toen ik de beschadigde chip verving door een werkende. Hoe het ook zij, de snelheid van het werken met extern geheugen laat veel te wensen over.

Externe bus en stand-alone modusDe K1986BE1QI-microcontroller (luchtvaart) heeft een unieke StandAlone-modus, die is ontworpen voor directe externe toegang tot Ethernet- en MCIO-controllers (MIL_STD_1553) via een externe bus, terwijl de kern zich in de reset-status bevindt, d.w.z. niet gebruikt. Deze modus is handig voor processors en FPGA's die geen Ethernet en/of MCIO hebben.
Het aansluitschema is als volgt:

  • databus MCU(D0-D15) => SRAM(I/O0-I/O15),
  • adresbus MCU(A1-A18) => SRAM(A0-A17),
  • MCU-besturing (nWR,nRD,PortC2) => SRAM (WE,OE,CE),
  • SRAM(UB,LB) zijn via een weerstand met aarde verbonden of getrokken.

De CE-lijn wordt via een weerstand omhoog getrokken, de MCU byte-ophaalpennen (BE0-BE3) worden niet gebruikt. Onder de spoiler geef ik de code voor het initialiseren van de poorten en de externe buscontroller.

Initialisatie van poorten en EBC-controller (externe buscontroller)

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);
}

De microcontroller in het LQFP-144-pakket en het geheugen in het TSOP-44-pakket hebben veel aangesloten pinnen en nemen veel PCB-ruimte in beslag. Ervaring hebbend met het oplossen van optimalisatieproblemen op het gebied van economie, was het voor mij duidelijk dat deze microschakelingen in de eerste plaats op het bord moesten worden geplaatst. In verschillende bronnen kwam ik lovende recensies tegen over CAD TopoR (topologische router). Ik heb de proefversie gedownload en kon mijn project vanuit Eagle CAD daar alleen exporteren toen ik bijna alle componenten had verwijderd. Helaas heeft het TopoR-programma me niet geholpen om zelfs maar 10 elementen op het bord te plaatsen. Eerst werden alle componenten in een hoek geplaatst en vervolgens langs de rand gerangschikt. Deze optie bevredigde me niet, en ik heb lange tijd besteed aan het handmatig traceren van het bord in de vertrouwde Eagle CAD-omgeving.

Zeefdruk is een belangrijk onderdeel van de printplaat. Op het foutopsporingsbord moeten niet alleen handtekeningen voor elektronische componenten staan, maar moeten alle connectoren zijn ondertekend. Aan de achterkant van het bord plaatste ik de tabellen-herinneringen met de functies van de controllerpoorten (hoofd, alternatief, overschreven, actueel). Ik bestelde de fabricage van printplaten in China in het bekende PCBWay-kantoor. Ik zal niet loven, omdat de kwaliteit goed is. Ze kunnen het beter doen met kleinere toleranties, maar voor een bedrag.

Ontwikkeling van een debug board voor K1986BE1QI (luchtvaart)
Vervaardigde printplaten MDB1986, (c) Foto door de auteur

Ik moest de componenten "op de knie" lossolderen met een soldeerbout van 40 watt en POS-61-soldeer, omdat ik zelden soldeer, 1-2 keer per jaar, en de soldeerpasta droogde op. Ik moest ook de Chinese CS32F103-controller vervangen door de originele STM32F103 en daarna ook het geheugen vervangen. Over het algemeen ben ik nu helemaal tevreden met het resultaat, hoewel ik de werking van RS-232 en CAN nog niet heb gecontroleerd.

Ontwikkeling van een debug board voor K1986BE1QI (luchtvaart)
Foutopsporingsbord MDB1986 in werking — schijnt en verwarmt, (с) Foto door de auteur

Op de site "Milandra" kun je genoeg vinden leermateriaal voor lerende controllers 1986BE9-serie (Cortex-M3-kern), maar voor de K1986BE1QI (luchtvaart) microcontroller zie ik daar niets. Na het bestuderen van de daar gepubliceerde materialen, handleidingen en laboratoriumwerk voor universiteiten, ben ik blij dat er in het hele land personeel wordt opgeleid om met Russische controleurs te werken. De meeste trainingsmaterialen zijn voorbereid om te werken met I / O-poorten, timers, ADC, DAC, SPI, UART. Er worden verschillende IDE's gebruikt (Keil, IAR, CodeMaster). Ergens programmeren ze met CMSIS-registers en ergens gebruiken ze de MDR-bibliotheek. Bron moet worden vermeld Begin Milandr, dat veel artikelen bevat van praktiserende programmeurs. En die mogen we natuurlijk niet vergeten Forum Milaan.

Ik denk aan MilandraMicro-elektronica in Rusland ontwikkelt zich en het bedrijf "Milandr" speelt een belangrijke rol in dit proces. Er verschijnen nieuwe interessante microcontrollers, bijvoorbeeld 1986BE81T en Elektrosila met SpaceWire- en MKIO-interfaces (dezelfde als in 1986BE1 en mogelijk met dezelfde problemen), enz. Maar voor gewone studenten, leraren en civiel ingenieurs is het niet realistisch om dergelijke microschakelingen te kopen. Dit betekent dat de technische gemeenschap de fouten en problemen van deze chip niet snel kan identificeren. Het lijkt mij dat het eerst nodig is om microschakelingen in een plastic behuizing te produceren, deze te verspreiden onder alle geïnteresseerde partijen, en pas na goedkeuring (Latijnse approbatio - goedkeuring, erkenning) kunnen specialisten een revisie voorbereiden in een keramisch-metalen behuizing met bescherming tegen allemaal verschrikkelijke factoren. Ik hoop dat we in de nabije toekomst ALLEMAAL blij zullen zijn met de nieuwe projecten die op de tentoonstellingen worden aangekondigd.
Iedereen kan het debug-bord herhalen, wijzigen en gebruiken dat ik in het onderwijsproces heb ontwikkeld. Allereerst heb ik een bord voor mezelf gemaakt, maar dat is zo goed gelukt Ik besloot het met iedereen te delen.

K1986BE1QI (lucht) is een zeer interessante controller met unieke interfaces die op universiteiten kan worden gebruikt om studenten les te geven. Ik denk dat na het corrigeren van de geconstateerde fouten in de controller en het doorstaan ​​van certificeringstests, de controller in de ware zin van het woord zal vliegen!

Bron: www.habr.com

Voeg een reactie