Ontwikkeling van een debugbord voor K1986BE1QI (luchvaart)

Ontwikkeling van een debugbord voor K1986BE1QI (luchvaart)

Een paar jaar geleden maakte ik kennis met de Russische microcontrollers van het bedrijf Milandr. Het was in 2013, toen ingenieurs de eerste resultaten van het Federale Doelprogramma "Ontwikkeling van de elektronische componentenbasis en radio-elektronica" voor de jaren 2008-2015 druk bespraken. Op dat moment was de controller K1986ВЕ9x (Cortex-M3 kern) al uitgebracht en er was net de controller 1986ВЕ1Т (Cortex-M1 kern) verschenen. Deze had in de kunststof behuizing LQFP-144 de officiële aanduiding K1986ВЕ1QI (luchtvaart) in de documentatie, terwijl op de chip zelf de aanduiding MDR32F1QI stond. Op de website van de fabrikant staat de suffix "luchtvaart", omdat het specifieke interfaces voor de luchtvaartindustrie heeft (ARINC 429, MIL_STD_1553).

Het is verrassend, maar op het moment dat deze controllers door "Milandr" werden verspreid, waren er al ontwikkelingskits en een bibliotheek met subprogramma's voorbereid voor het werken met de periferie, "maar zonder enige extra garanties en verplichtingen met betrekking tot de correctheid van de bibliotheek". De bibliotheek lijkt op de Standard Peripheral Library van STMicroelectronics. Over het algemeen hebben alle ARM-controllers die zijn gebouwd op de Cortex-M kern veel gemeen. Om deze reden ging de kennismaking met de nieuwe Russische controllers snel. Voor degenen die de merkontwikkelingskits kochten, was er technische ondersteuning beschikbaar tijdens het gebruik.

Ontwikkeling van een debugbord voor K1986BE1QI (luchvaart)
Ontwikkelingskit voor de microcontroller 1986ВЕ1Т, © Milandr

Echter, na verloop van tijd begonnen de "kinderziekten" van de nieuwe chips en bibliotheken zich te uiten. De testvoorbeelden van de firmware werkten zonder zichtbare problemen, maar bij aanzienlijke modificaties traden falen en fouten op. Het eerste "signaal" in mijn praktijk waren onverklaarbare storingen in de werking van de CAN-controller. Een jaar later werd er een probleem ontdekt met de module op de vroege revisie van de controller 1986ВЕ1Т (luchtvaart). MKIO (multiplex kanaal voor informatie-uitwisseling). Over het algemeen waren alle revisies van deze microcontrollers tot 2016 beperkt bruikbaar. Er is veel tijd en moeite gestoken in het identificeren van deze problemen, waarvan de bevestigingen nu te vinden zijn in foutenlijsten (Errata).

Een onaangenaam kenmerk was dat het werken en omgaan met fouten niet op testborden, maar op prototypeborden van apparaten plaatsvond die voor seriematige productie waren gepland. Behalve de JTAG-aansluiting was er meestal niets aanwezig. Het was moeilijk en ongemakkelijk om verbinding te maken met een logic analyzer, en er waren meestal geen LED's of schermen. Om deze reden kwam ik op het idee om mijn eigen testbord te creëren.

Aan de ene kant waren er merkgebonden testkits op de markt, evenals uitstekende borden van LDM-Systems uit Zelenograd. Aan de andere kant brengen de prijzen voor deze producten je in verwarring, en de basisfunctionaliteit zonder uitbreidingsborden voldoet niet aan de verwachtingen. Een bord met een soldeercontroller en een pinheader heeft voor mij geen interesse. Interessantere borden zijn duur.

Ontwikkeling van een debugbord voor K1986BE1QI (luchvaart)
Testbord MILANDR LDM-HELPER-K1986BE1QI-FULL, © LDM Systems

Het prijsbeleid en de marketing van het bedrijf 'Milandr' zijn eigenaardig. Zo is er de mogelijkheid om gratis monsters van bepaalde chips te krijgen, maar dit is alleen beschikbaar voor rechtspersonen en is verbonden met een bureaucratische zoektocht. Over het algemeen zijn chips in een metaal-keramische behuizing letterlijk goud in de letterlijke en figuurlijke zin. Bijvoorbeeld, de controller 1986ВЕ1Т kost in Moskou tussen de 14 en 24 duizend roebel. De chip voor statisch geheugen 1645РУ6У kost vanaf 15.000 roebel. Dit prijsniveau geldt voor het gehele productassortiment. Uiteindelijk besparen zelfs gespecialiseerde onderzoeksinstituten met overheidsopdrachten en schrikken ze terug voor zulke prijzen. Chips in een plastic behuizing voor civiel gebruik zijn aanzienlijk goedkoper, maar deze zijn niet beschikbaar bij populaire leveranciers. Bovendien is de kwaliteit van chips in een plastic behuizing, naar mijn mening, slechter dan die van 'gouden' chips. Bijvoorbeeld, ik kon de controller K1986BE1QI niet laten werken op een frequentie van 128 MHz zonder de parameter flash latency te verhogen. Tegelijkertijd steeg de temperatuur van deze controller tot 40-50°C. Maar de controller 1986BE1T ('gouden') startte op 128 MHz zonder extra instellingen en bleef koud. Hij is echt goed.

Ontwikkeling van een debugbord voor K1986BE1QI (luchvaart)
De 'gouden' microcontroller 1986BE1T, (c) Milandr

Ik had geluk dat de microcontroller in een plastic behuizing toch in de detailhandel te koop is bij LDM Systems, en dat alle schemas gratis beschikbaar zijn. Het slechte is dat de markering op de foto van de controller op de website aangeeft dat dit revisie 4 uit 2014 is, dat wil zeggen met defecten. Ik heb lang nagedacht – kopen of niet kopen. Zo gingen er enkele jaren voorbij…

De gedachte aan het creëren van een debugbord is nooit verdwenen. Geleidelijk heb ik alle vereisten geformuleerd en nagedacht over hoe ik alles op één bord kon plaatsen, zodat het compact en niet duur zou zijn. Tegelijkertijd bestelde ik de ontbrekende onderdelen bij Chinese leveranciers. Ik had geen haast – alles deed ik voor mezelf. Chinese leveranciers staan bekend om hun slordigheid – ik moest hetzelfde op verschillende plekken bestellen om alles te krijgen wat ik nodig had. Bovendien bleken sommige geheugenchips gebruikt te zijn – duidelijk afgebroken van kapotte apparaten. Dit kwam later terug om me te bijten.

Een microcontroller van Milandr K1986BE1QI (vliegtuig) kopen is geen eenvoudige taak. In dezelfde winkel 'Chip en Dip' vond ik in de sectie 'Posities op aanvraag' alleen K1986BE92QI voor 740 roebel, maar dat voldeed niet aan mijn eisen. De enige optie was om bij LDM-Systems een oudere revisie voor 2000 roebel te kopen. Aangezien ik nergens anders een vervanging kon vinden, besloot ik te kopen wat er was. Tot mijn blije verrassing verkochten ze me een gloednieuwe controller, geproduceerd in december 2018, revisie 6+ (1820). En op de website staat nog steeds de oude foto, en op het moment van schrijven is de controller niet op voorraad…

Ontwikkeling van een debugbord voor K1986BE1QI (luchvaart)
Microcontroller K1986BE1QI (vliegtuig) in technologische verpakking, (c) Foto van de auteur

Belangrijkste technische specificaties van mijn debugbord MDB1986 de volgende:

  • ingebouwde debugger-programmeerder, compatibel met J-Link en CMSIS-DAP;
  • statische geheugen 4 Mbit (256k x 16, 10 ns);
  • flash-geheugen chip 64 Mbit, Winbond 25Q64FVSIG;
  • zender-ontvanger interface RS-232 met RTS en CTS lijnen;
  • interfaces en connectoren voor Ethernet, USB, CAN;
  • controller voor 7-segment display MAX7221;
  • pinconnector voor MKIO (MIL_STD_1553) en ARINC429;
  • fototransistor Everlight PT17-21C;
  • vijf gekleurde LED's, resetknop en twee gebruikersknoppen;
  • voeding via USB-poort 5 volt;
  • afmetingen van de printplaat 100 x 80 mm

Ik vond de STM-Discovery-borden geweldig omdat ze een ingebouwde programmeur-debugger hebben - ST-Link. De originele ST-Link werkt alleen met microcontrollers van STMicroelectronics, maar een paar jaar geleden kwam de mogelijkheid om de firmware van de ST-Link bij te werken en een SEGGER J-Link OB (on-board) Debugger te verkrijgen. Juridisch gezien is er een beperking op het gebruik van zo'n debugger alleen met STMicroelectronics-borden, maar feitelijk is het potentieel onbeperkt. Met een J-Link OB kan je op het testbord een ingebouwde programmeur-debugger hebben. Ik wil opmerken dat in de producten van 'LDM-Systems' de CP2102 (Usb2Uart) converter wordt gebruikt, die alleen kan programmeren.

Ontwikkeling van een debugbord voor K1986BE1QI (luchvaart)
De STM32F103C8T6 microcontrollers, echt en minder echt, (c) Foto van de auteur

Dus ik moest de originele STM32F103C8T6 kopen, omdat de originele firmware niet goed zal werken met de kloon. Ik twijfelde aan deze stelling en besloot de CS32F103C8T6-controller van het Chinese bedrijf CKS uit te proberen. Ik had geen klachten over de controller zelf, maar de originele ST-Link firmware werkte niet. J-Link werkte gedeeltelijk - het USB-apparaat werd herkend, maar de programmeur voldeed niet aan zijn functies en herinnerde me constant aan dat hij 'defectief' was.

Ontwikkeling van een debugbord voor K1986BE1QI (luchvaart)
Fout bij het werken met de debugger op een niet-originele controller

Ik gaf hier niet op en schreef eerst de firmware voor het knipperen van de LED, en implementeerde toen de IDCODE-aanroep via het JTAG-protocol. De ST-Link programmeur die ik op het Discovery-bord had en het programma ST-Link Utility programmeerden de CS32F103C8T6 zonder problemen. Uiteindelijk stelde ik vast dat mijn bord werkte. Tot mijn blijdschap gaf de doelcontroller K1986BE1QI (luchtvaart) enthousiast zijn IDCODE via de TDO-lijn.

Ontwikkeling van een debugbord voor K1986BE1QI (luchvaart)
Oscillogram van de signaallijn TDO met de gecodeerde IDCODE-antwoord, (c) Foto van de auteur

Ontwikkeling van een debugbord voor K1986BE1QI (luchvaart)
Hier kwam de SWD-poort van pas voor het debuggen van de debugger zelf en het controleren van de IDCODE

Er was nog een optie met de debugger CMSIS-DAP (Debug Access Port). Het samenstellen van een project uit de bronbestanden van ARM is geen gemakkelijke taak; ik nam het project van X893, en probeerde later nog DAP42. Helaas bleef Keil uVision hangen en wilde niet met hen werken. Uiteindelijk verving ik de debuggerchip door de originele STM32F103C8T6 en ben ik verder niet meer op dit onderwerp teruggekomen.

Ontwikkeling van een debugbord voor K1986BE1QI (luchvaart)
Succesvolle werking van de ingebouwde J-Link STLink V2 debugger

Toen alle belangrijke componenten van de toekomstige debugplaat beschikbaar waren, ging ik aan de slag met Eagle CAD en ontdekte dat ze niet in de componentenbibliotheek stonden. Er was geen andere keuze – ik moest ze zelf tekenen. Tegelijkertijd maakte ik de behuizingen voor het geheugen, de HanRun-connector voor Ethernet, en voegde ik kaders toe voor weerstanden en condensatoren. Het projectbestand en de componentenbibliotheek zijn te vinden op mijn GitHub.

Schematische weergave van de debugplaat MDB1986Ontwikkeling van een debugbord voor K1986BE1QI (luchvaart)

De plaat wordt gevoed door een DC-voedingsbron van 5 volt, verkregen uit de USB-poort. De plaat heeft in totaal twee USB Type-B poorten. Eén voor de programmeur, de andere voor de K1986BE1QI-controller. De plaat kan werken vanaf een van deze bronnen of met beide tegelijk. De eenvoudigste belastingregeling en bescherming van de voedingslijnen zijn gerealiseerd met Schottky-diodes, op de schema D2 en D3 (SS24). Ook zijn de zelfherstellende zekeringen F1 en F2 van 500mA op de schema zichtbaar. De signaallijnen van de USB-poort zijn beschermd door een diodemodule USBLC6-2SC6.

Het schema van de ST-Link debug/programmeur is bij velen bekend, en het is te vinden in de documentatie over de STM32-Discovery borden en andere bronnen. Voor de eerste firmware van de ST-Link/J-Link-OB/DAP kloon (naar keuze) heb ik de lijnen SWDIO (PA13), SWCLK (PA14), GND doorgegeven. Veel mensen gebruiken UART voor het programmeren en moeten de BOOT-jumpers verplaatsen. Maar ik vind SWD handiger, en bovendien maakt dit protocol debugging mogelijk.

Bijna alle componenten van de plaat worden gevoed met 3.3 volt, afkomstig van de spanningsregelaar AMS1117-3.3. Ter suppressie van elektromagnetische verstoringen en stroomstoten worden LC-filters van condensatoren en spoelen uit de BLM31PG-serie gebruikt.

Het is ook vermeldenswaardig dat de driver voor de 7-segment display, de MAX7221, een aanbevolen voeding heeft van 4 tot 5.5 volt volgens de specificatie, en het niveau van het hoge signaal (logische 1) minimaal 3.5V (0.7 x VCC) moet zijn bij een voeding van 5V. Bij de K1986BE1QI-controller (luchtvaart) komt de logische 1 overeen met een spanning van 2.8 tot 3.3V. Dit zijn duidelijk incompatibele signaalniveaus die de normale werking kunnen verstoren. Ik besloot de MAX7221 van 4V te voeden en de signaalniveaus tot 2.8V (0.7 x 4 = 2.8) te verlagen. Hiervoor nam ik een Schottky-diode D4 (RS1A of FR103) in serie in de voedingsketen van de driver. De spanningsval bedraagt ​​in totaal 0.9V (Schottky-diode 0.3V en diode 0.6V), en alles werkt.

De meeste poorten van de microcontroller K1986VE1QI (luchtvaart) zijn compatibel met signalen tot 5V. Daarom is het gebruik van de CAN-transceiver MCP2551, die ook op 5V werkt, probleemloos. Voor de RS-232 transceiver is de MAX3232 chip aangegeven, maar in werkelijkheid heb ik de SN65C3232D van Texas Instruments gebruikt, omdat deze werkt op 3.3V en snelheden tot 1Mbit/s biedt.

Op de printplaat zijn 4 quartz resonatoren geplaatst – één voor de debugger (8MHz) en drie voor de doelmicrocontroller K1986VE1QI (luchtvaart) met waardes van 32.768kHz, 16MHz, 25MHz. Dit zijn noodzakelijke componenten, omdat de parameters van de ingebouwde RC-generator aanzienlijk variëren van 6 tot 10 MHz. De frequentie van 25MHz is nodig voor de werking van de ingebouwde Ethernet-controller. Op de Milandr-website staat (misschien per ongeluk) dat de Ethernet in de plastic behuizing ontbreekt. Maar we baseren ons op de specificatie en feiten.

Een belangrijke stimulans voor het creëren van mijn eigen debugprintplaat was de mogelijkheid om met de externe systeembus EBC (external bus controller) te werken, die in wezen een parallelle poort is. De microcontroller K1986VE1QI (luchtvaart) stelt je in staat om externe geheugenchips en randapparatuur aan te sluiten en te gebruiken, zoals ADC's, FPGA's, enz. De mogelijkheden van de externe systeembus zijn behoorlijk groot – men kan werken met 8-bit, 16-bit en 32-bit statisch RAM, ROM en NAND Flash. Voor het lezen/schrijven van 32-bit data kan de controller automatisch 2 overeenkomstige bewerkingen uitvoeren voor 16-bit chips, en voor 8-bit zelfs 4 bewerkingen. Het is duidelijk dat een 32-bit invoer-/uitvoerbewerking het snelst zal worden uitgevoerd met een 32-bit databus. Nadelen zijn onder meer de noodzaak voor de software om met 32-bit data te werken, en op de printplaat moeten er 32 sporen worden aangelegd.

Ontwikkeling van een debugbord voor K1986BE1QI (luchvaart)
Chips van statisch RAM, tweedehands (raad welke met defect)

Een gebalanceerde oplossing is het gebruik van 16-bit geheugenchips. Ik had beschikbaar chips van Integrated Silicon Solutions Inc. (ISSI IS61LV25616AL, 16 x 256k, 10 ns, 3.3V). Natuurlijk heeft het bedrijf 'Milandr' ook zijn eigen statische geheugenchips. serie 1645RU, maar ze zijn te duur en niet toegankelijk. Als alternatief zijn er compatibele Samsung K6R4016V1D chips. Eerder heb ik genoemd dat de chips tweedehands waren en het exemplaar dat ik oorspronkelijk installeerde, faalde en chaotische waarden op de 15e datalijn gaf. Het kostte me enkele dagen om hardwarefouten te zoeken, en des te meer was de voldoening toen ik de defecte chip verving door een goede. Hoe dan ook, de snelheid van de externe geheugenwerking laat te wensen over.

Externe bus en StandAlone-modusDe K1986ВЕ1QI microcontroller (luchtvaart) heeft een unieke StandAlone-modus, die is ontworpen voor directe toegang van buitenaf tot Ethernet-controllers en MKIO (MIL_STD_1553) via de externe bus, waarbij de kernel zich in de resettoestand bevindt, dat wil zeggen, niet wordt gebruikt. Deze modus is handig voor processors en FPGA's zonder Ethernet en/of MKIO.
De aansluitingsschema is als volgt:

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

De CE-lijn is naar de voeding getrokken via een weerstand, de pinnen voor het selecteren van het byte MCU(BE0-BE3) worden niet gebruikt. Onder de spoiler geef ik de initialisatiecode voor de poorten en de controller van de externe bus.

Initialisatie van poorten en de EBC (external bus controller)

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

Een microcontroller in een LQFP-144 behuizing en geheugen in een TSOP-44 behuizing hebben veel verbonden pinnen en nemen veel ruimte in op de printplaat. Met mijn ervaring in het oplossen van optimalisatieproblemen op het gebied van economie was het voor mij duidelijk dat deze microchips in de eerste plaats op de printplaat geplaatst moesten worden. Ik kwam in verschillende bronnen lovende recensies tegen over CAD Software TopoR (Topological Router). Ik heb de proefversie gedownload en kon mijn project vanuit Eagle CAD alleen exporteren nadat ik bijna alle componenten had verwijderd. Helaas hielp het programma TopoR me niet om zelfs maar 10 elementen op de printplaat te plaatsen. In het begin werden alle componenten in de hoek geplaatst, en daarna langs de rand uitgezet. Deze optie beviel me niet en ik heb lange tijd de printplaat handmatig getraceerd in de vertrouwde omgeving van Eagle CAD.

Een belangrijk element van de printplaat is de silkscreen. Op de prototyping board moeten niet alleen de labels voor elektronische componenten staan, maar ook alle connectoren moeten gemarkeerd zijn. Op de achterkant van de printplaat heb ik geheugenkaarten met de functies van de poorten van de controller geplaatst (basis, alternatief, herschreven, feitelijk). Ik heb de printplaten laten maken in China bij het bekende bedrijf PCBWay. Ik zal ze niet prijzen, omdat de kwaliteit goed is. Ze kunnen beter werk leveren met kleinere tolerantie, maar tegen een aparte vergoeding.

Ontwikkeling van een debugbord voor K1986BE1QI (luchvaart)
Gemaakte printplaten MDB1986, (c) Foto van de auteur

Ik moest de componenten 'ter plekke' solderen met een 40-watt soldeerbout en POS-61 soldeer, omdat ik zelden soldeer, slechts 1-2 keer per jaar, en de soldeerpasta was opgedroogd. Ook moest ik de Chinese controller CS32F103 vervangen door een originele STM32F103, en daarna moest ik ook het geheugen vervangen. Kortom, ik ben nu helemaal tevreden met het resultaat, hoewel ik de werking van RS-232 en CAN nog niet heb gecontroleerd.

Ontwikkeling van een debugbord voor K1986BE1QI (luchvaart)
De MDB1986 prototyping board in werking — het brandt en wordt heet, (c) Foto van de auteur

Op de website van "Milandra" kun je voldoende studie-materialen vinden voor het leren over controllers De serie 1986BE9 (Cortex-M3 kernel), maar voor de microcontroller K1986ВЕ1QI (luchtvaart) zie ik daar niets dat van belang is. Na het doornemen van de gepubliceerde materialen, handleidingen en laboratoriumwerk voor universiteiten, ben ik blij dat er in heel het land opleidingen worden voorbereid voor het werken met Russische controllers. De meeste onderwijsmaterialen bereiden voor op het werken met invoer- en uitvoerpoorten, timers, ADC, DAC, SPI, UART. Er worden verschillende IDE-ontwikkelingsomgevingen gebruikt (Keil, IAR, CodeMaster). Soms wordt er geprogrammeerd via CMSIS-registers, en soms wordt de MDR Library gebruikt. Het is noodzakelijk om de bron te vermelden. Start Milandr, dat een aantal artikelen van praktijkprogrammeurs bevat. En natuurlijk moet men het niet vergeten over het Milandr-forum.

De Milandr-denktankMicro-elektronica in Rusland ontwikkelt zich, en in dit proces speelt het bedrijf ‘Milandr’ een belangrijke rol. Er verschijnen nieuwe interessante microcontrollers, zoals de 1986ВЕ81Т en ‘Electrosila’ met interfaces zoals SpaceWire en MKIO (dezelfde als in 1986BE1 en, mogelijk, met dezelfde problemen), enzovoort. Maar voor gewone studenten, docenten en civiele ingenieurs is het niet haalbaar om dergelijke chips aan te schaffen. Dat betekent dat de gemeenschap van ingenieurs niet snel fouten en problemen met deze chip zal kunnen opsporen. Ik denk dat het eerst nodig is om chips in plastic behuizingen uit te brengen, ze te verspreiden onder alle geïnteresseerden, en pas na goedkeuring door specialisten kan men een revisie in een metaalkeramische behuizing met beschermingen tegen alle gevaarlijke factoren voorbereiden. Ik hoop dat we in de nabije toekomst allemaal zullen worden verblijd met de nieuwe projecten die op tentoonstellingen worden aangekondigd.
De ontwikkelde testkaart kan door iedereen worden herhaald, gemodificeerd en in het onderwijs worden gebruikt. In eerste instantie heb ik de kaart voor mezelf gemaakt, maar het resultaat was zo goed dat ik besloot het met iedereen te delen..

K1986ВЕ1QI (luchtvaart) is een zeer interessante controller met unieke interfaces, die kan worden gebruikt in universiteiten voor de opleiding van studenten. Ik denk dat, na het corrigeren van de fouten die in de controller zijn vastgesteld en het doorlopen van certificeringstests, de controller letterlijk de lucht in zal gaan!

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster