K1986ВЕ1QI (aviika) debug board development

K1986ВЕ1QI (aviika) debug board development

Mõned aastad tagasi tutvustasin end Venemaa Milandri mikrokontrolleritega. See oli 2013. aasta, kui insenerid arutasid aktiivselt esimesi tulemusi FCP "Elektroonilise komponentide baasi ja raadioelektroonika arengu" programmist 2008-2015. Selleks ajaks oli juba välja antud K1986ВЕ9x kontroller (Cortex-M3 südamik) ja just ilmus K1986ВЕ1Т kontroller (Cortex-M1 südamik). Plastikust LQFP-144 korpuses tähistati teda dokumentatsioonis K1986ВЕ1QI (aviika), kuid kiibil endal oli tähistus MDR32F1QI. Tootja veebilehel on sellel sufikss "aviika", kuna sellel on lennundusele spetsiifilised liidesed (ARINC 429, MIL_STD_1553).

Imelik, kuid hetkeks, mil need kontrollerid turule viidi, olid ettevõtte «Milandr» poolt valmis saanud silumispuurid ja teegid, et töötada periferiaseadmete kallal, "kuid ilma igasuguste täiendavate garantii ja haiguslibraariumide nõuete täitmiseta". Teek sarnaneb ettevõtte STMicroelectronics harilikule periferiaraamatukogule. Üldiselt on kõik ARM kontrollerid, mis põhinevad Cortex-M tuumal, üksteisega palju sarnased. Seetõttu kulges uute vene kontrolleritega tutvumine kiiresti. Need, kes ostsid ametlikud silumiskomplektid, said kasutamise ajal tehnilist tuge.

K1986ВЕ1QI (aviika) debug board development
Silumiskomplekt mikrokontrollerile 1986ВЕ1Т, © Milandr

Kuid aja jooksul hakkasid uute kiipide ja teekide „lastehaigused“ ilmnema. Testprogrammide flash-päevikud töötasid ilma nähtavate probleemideta, kuid märkimisväärsete muudatuste korral avaldusid tõrged ja vead. Minu praktikas oli esimene „lind“ seletamatud tõrked CAN-kontrolleri töös. Aasta jooksul avastati 1986ВЕ1Т (aviatsioon) varase versiooni kontrolleril probleem mooduliga. МКИО (multiplexse info vahetamise kanal). Üldiselt olid kõik nende mikrokontrollerite revisjonid enne 2016. aastat piiratud kasutusvalmidusega. Palju aega ja närve kulus nende probleemide tuvastamiseks, mille kinnitusi leidub nüüd vea nimekirjadest (Errata).

Ebameeldivaks omaduseks oli see, et vigu tuli tuvastada mitte arendusplaatidel, vaid seadmete prototüüpide plaatidel, mis olid ette nähtud seeriatootmiseks. JTAG-liidese juures ei olnud tavaliselt midagi muud. Logilise analüsaatori ühendamine oli keeruline ja ebamugav, valgustite ja ekraanide puudumise tõttu. Seetõttu tekkis mul mõte luua oma arendusplaat.

Ühelt poolt olid turul maailmakuulsaid arenduskogusid ning suurepärased plaadid LDM-Systemsilt Zelenogradist. Teiselt poolt paneb nende toodete hind hämmastuma, ning põhiomadused ilma laienduspinkadeta ei vasta ootustele. Plaat koos paigaldatud kontrolleri ja pistikuga ei paku mulle huvi. Ja huvitavamad plaadid on kallid.

K1986ВЕ1QI (aviika) debug board development
Arendusplaat MILANDR LDM-HELPER-K1986BE1QI-FULL, © LDM Systems

Ettevõtte „Milandr” hinna- ja turunduspoliitika on eriline. Saadaval on võimalus saada tasuta mõned süvendi prototüübid, kuid see on ainult juriidilistele isikutele ja on seotud bürokraatliku protsessiga. Üldiselt on metallkeraamilises korpuses mikroskeemid kullavad nii otseses kui kaudses mõttes. Näiteks maksab 1986ВЕ1Т kontroller Moskvas 14 000 kuni 24 000 rubla. Statilise mälu mikroskeem 1645РУ6У maksab alates 15 000 rubla. Ja selline on hinnatase kogu tooteportfellis. Lõppkokkuvõttes säästavad isegi spetsialiseeritud teadus- ja arendusinstituudid riigihanke korral ning tõrguvad selliste hindade osas. Plastikust korpuses mikroskeemid tsiviilotstarbeks on oluliselt odavamad, kuid neid ei ole populaarsetelt tarnijatelt saadaval. Lisaks on plastikust korpuses mikroskeemide kvaliteet minu arvates halvem kui „kuldsed”. Näiteks ei suutnud ma käivitada K1986BE1QI kontrollerit 128 MHz sagedusel ilma flash latentsuse parameetri suurendamiseta. Samal ajal tõusis selle kontrolleri temperatuur 40-50 °C-ni. Kuid 1986BE1T („kuldne”) kontroller käivitus 128 MHz-l ilma täiendavate seadistusteta ja jäi külmaks. Ta on tõeliselt hea.

K1986ВЕ1QI (aviika) debug board development
«Kuldne» mikrokontroller 1986BE1T, (c) Milandr

Mul vedas, et mu plastkorpuses mikrokontrolleri sai ikkagi LDM Systems'ilt ja kõik trükiplatvormide skeemid on vabalt kättesaadavad. Halb on see, et kontrollija veebisaidi fotol on nähtav märgistamine, mis näitab, et see on 4. versioon 2014. aastast, st defektidega. Olin kaua kahtlemas – kas osta või mitte. Nii läks mitu aastat...

Mõte arendada debugimine plaat ei ole kuhugi kadunud. Aeglaselt formuleerisin kõik nõuded ja mõtlesin, kuidas kõik need paigutada ühele plaadile, et see oleks kompaktne ja mitte kallis. Samal ajal tellisin Hiinast puuduolevad komponendid. Ma ei olnud kuskil kiirustades – tegin kõike enda jaoks. Hiina tarnijad on tuntud laiskuse poolest – pidin tellima sama asja erinevatest kohtadest, et saada kõik, mis on vajalik. Veelgi enam, osa mälukiipe osutusid juba kasutatud – ilmselgelt eemaldatud purunenud seadmetest. See tuli hiljem mulle kalliks maksma.

Mikrokontroller Milandr K1986VE1QI (avi) ostmine ei ole lihtne ülesanne. Samas poes "Chip ja Dip"" tellimuste osakonnas leidisin ainult K1986BE92QI hinnaga 740 rubla, kuid see ei sobinud mulle. Ainsaks võimaluseks oli osta LDM-Systems'ist 2000 rubla eest mittevärsket versiooni. Kuna ma ei suutnud asendust mujalt leida, otsustasin osta selle, mis oli. Minu meeldivaks üllatuseks müüdi mulle täiesti uus kontroller, mis oli toodetud detsembris 2018, versioon 6+ (1820). Ja veebisaidil on endiselt vana foto ning artikli kirjutamise hetkel kontrollerit laos ei ole...

K1986ВЕ1QI (aviika) debug board development
Mikrokontroller K1986VE1QI (avi) tehnilises pakendis, (c) Autori foto

Minu arendusplaadi põhi tehnilised omadused MDB1986 järgmised:

  • sisseehitatud siluri-programmeerija, mis on ühilduv J-Link'i ja CMSIS-DAP'iga;
  • staatiline mälu 4Mbit (256k x 16, 10 ns);
  • flash-mälu kiip 64Mbit, Winbond 25Q64FVSIG;
  • RS-232 liidese vastuvõtja ja saatja RTS ja CTS joontega;
  • Ethernet, USB, CAN liidesed ja pistikud;
  • MAX7221 7-segmendi ekraani kontroller;
  • plokkühendus MKIO (MIL_STD_1553) ja ARINC429 jaoks;
  • fototransistor Everlight PT17-21C;
  • viis värvilist LED-i, lähtestamisnupp ja kaks kasutajanuppu;
  • toide USB 5 volti porti kaudu;
  • trükkplaadi mõõtmed 100 x 80 mm

Mulle meeldisid STM-Discovery seeria plaadid selle tõttu, et seal on sisseehitatud programmeerija- ja silumistööriist – ST-Link. Originaal ST-Link töötab ainult STMicroelectronicsi tootjatehnikaga, kuid paar aastat tagasi avanes võimalus uuendada ST-Linki püsivara ja saada SEGGER J-Link OB (on-board) silumistööriist. Juriidiliselt on selle silumistööriista kasutamise piirangud ainult STMicroelectronicsi plaatidel, kuid tegelikult pole potentsiaal piiratud. Nii on J-Link OB omamine võimalik integreerida silumistööriist trükkplaadi. Tahan märkida, et „LDM-Systems“ tootes kasutatakse CP2102 (Usb2Uart) muundurit, mis suudab ainult programmeerida.

K1986ВЕ1QI (aviika) debug board development
Mikrokontrollerid STM32F103C8T6, ehtsad ja mitte nii ehtsad, (c) Foto autor

Nii et, oli vajalik osta originaalne STM32F103C8T6, kuna ametlikud püsivara ei tööta kloniga korralikult. Ma kahtlesin selles väites ja otsustasin proovida Hiina ettevõtte CKS kontrollerit CS32F103C8T6. Kontrolleri enda kohta mul pretensioone ei ole, kuid ametlik püsivara ST-Link ei töötanud. J-Link töötas osaliselt – USB-seade tuvastati, kuid oma funktsioone ei täitnud ning pidevalt meenutas, et ta on „defective”.

K1986ВЕ1QI (aviika) debug board development
Viga mitteoriginaalse kontrolleri debuggeri töös

Ma ei rahunenud sellega ja kirjutasin kõigepealt püsivara LED-i vilkumiseks ning seejärel realiseerisin IDCODE päringu JTAG-protokolli kaudu. ST-Link, mis oli mul Discovery plaadil, ja programm ST-Link Utility programmeerisid probleemideta CS32F103C8T6. Lõpuks veendusin, et minu plaat töötab. Minu rõõmuks väljastas sihtkontroller K1986ВЕ1QI (aviation) julgelt oma IDCODE TDO liini kaudu.

K1986ВЕ1QI (aviika) debug board development
Signaaliliini TDO osillogramm kooditud IDCODE vastusega, (c) Autori foto

K1986ВЕ1QI (aviika) debug board development
Nii et kasutasin SWD porti debuggeri enda testimiseks ja IDCODE kontrollimiseks

Jätkub võimalus debuggeriga CMSIS-DAP (Debug Access Port). Projektide kogumine lähtekoodidest ARM-ilt on keeruline ülesanne, ma kasutasin projekti, X893, ning seejärel proovisin ka DAP42. Kahjuks jäi Keil uVision hanguma ja ei tahtnud nendega koostööd teha. Lõpuks asendasin silumise kiibi tuntud STM32F103C8T6-ga ja ei ole enam selle teema juurde tagasi pöördunud.

K1986ВЕ1QI (aviika) debug board development
J-Link STLink V2 sisseehitatud silumise edukas töö

Kui kõik tulevase silumise plaadi põhikomponendid olid olemas, siis asusin Eagle CAD-i ja avastasin, et neid pole komponentide teegis. Valikuid ei olnud – pidin need ise joonistama. Samuti tegin mälude, Etherneti HanRuni ühenduse ja resistorsite ning kondensaatorite jaoks saadavalolevad kohad. Projekti faili ja komponentide teegi leiate minu GitHubist.

MDB1986 silumise plaadi põhimõtteline skeemK1986ВЕ1QI (aviika) debug board development

Plaat toidetakse 5-voldise alalisvooluallikaga, mis saadakse USB-porti kaudu. Plaadil on kokku kaks USB Type-B porti. Üks on programmeerija jaoks, teine K1986BE1QI kontrolleri jaoks. Plaat võib töötada mõlemast allikast või nende kahega korraga. Lihtne koormuse reguleerimine ja toitejuhtmete kaitse on teostatud Schottky diodide kaudu, schemas D2 ja D3 (SS24). Samuti on skeemil näha isetäiustavaid kaitsmeid F1 ja F2 500mA. USB-pordi signaalijooned on kaitstud USBLC6-2SC6 diodimooduliga.

Debugger-programmeerija ST-Linki skeem on paljudele tuttav, seda saab leida STM32-Discovery plaatide dokumentatsioonist ja muudest allikatest. Esmase ST-Link/J-Link-OB/DAP (valik) klooni välkprogrammeerimise jaoks olen välja viinud SWDIO (PA13), SWCLK (PA14), GND jooned. Paljud kasutavad programmeerimiseks UART-i ja peavad hüppereid BOOT tõmbama. Aga mulle sobib rohkem SWD, pealegi võimaldab see protokoll jagada ka tõrkeotsingut.

Peaaegu kõik plaadi komponendid saavad toidet 3,3 voldilt, mis saadakse AMS1117-3.3 pingeregulaatorist. Elektromagnetiliste häirete ja vooluhäirete vähendamiseks kasutatakse LC-filtereid, mis koosnevad BLM31PG seeria kondensaatoritest ja induktiividest.

Erilistamist väärib 7-segmentse ekraani juhtimisseade MAX7221. Spetsifikatsiooni kohaselt on soovitatav toitepinge vahemikus 4 kuni 5,5 volti ning kõrge signaalitaseme (loogiline 1) alumine piir on vähemalt 3,5V (0,7 x VCC), kui toitepingeks on 5V. Kontroller K1986BE1QI (avi) annab loogilise 1 väljundpingena 2,8 kuni 3,3V. Seega on signaalitasemete kõrvalekalle, mis võib normaalse töö häirida. Otsustasin toita MAX7221 4V ning langetada signaalitasemed 2,8V-le (0,7 x 4 = 2,8). Selleks on toitejuhtmes seeriaühendusena paigaldatud diood D4 (RS1A või FR103). Kokku on pingelang 0,9V (Šottky diood 0,3V ja diood 0,6V), ja kõik töötab.

Enamik mikrokontrolleri K1986BE1QI (avi) porte on ühilduvad signaalidega kuni 5V. Seega ei tekita probleemid CAN-ülekandeseadmest MCP2551, mis töötab samuti 5V pingel. RS-232 vastuvõtja ja edastaja skeemis on märgitud mikroskeem MAX3232, kuid tegelikult kasutasin Texas Instruments'i SN65C3232D, kuna see töötab 3,3V juures ning tagab kiiruseni 1Mbit/s.

Jändal on paigaldatud neli kvartsi resonatoori – üks debuggerile (8 MHz) ja kolm sihtmikrokontroller K1986BE1QI (avi) nimiväärtustega 32,768 kHz, 16 MHz, 25 MHz. Need on vajalikud komponendid, kuna sisseehitatud RC-generaatori parameetrid ulatuvad suurtel vahemikel vahemikus 6 kuni 10 MHz. 25 MHz sagedus on vajalik sisseehitatud Etherneti kontrolleri tööks. Milandra kodulehel on (võib-olla ekslikult) mainitud, et plastikkorpuses Ethernet puudub. Kuid me toetume spetsifikatsioonidele ja faktidele.

Oluline stiimul oma silumise klaviatuuri loomisel oli võimalus töötada välist süsteemibussi EBC (external bus controller) kaudu, mis on sisuliselt paralleelpordiga. Mikroprotsessor K1986BE1QI (aviatsioon) võimaldab ühendada ja töötada välist mälu ja perifeersete seadmetega, nagu ADC, FPGA jms. Väline süsteembuss on piisavalt võimekas - võimalik on töötada 8-bitiste, 16-bitiste ja 32-bitiste staatiliste RAM, ROM ja NAND Flash mälu seadmetega. 32-bitiste andmete lugemiseks/kirjutamiseks oskab kontroller automaatselt teostada 2 vastavat operatsiooni 16-bitiste kiipide jaoks, ja 8-bitiste jaoks 4 operatsiooni. On selge, et 32-bitine sisendi-väljundi operatsioon toimib kiiremini 32-bitise andmebussi korral. Puudustena võib märkida vajadust programmiga tegeleda 32-bitiste andmete töötlemisega ning plaadil tuleb rajada 32 rada.

K1986ВЕ1QI (aviika) debug board development
Staatilise RAM-i kiibid, kasutatud (arva, milline on defektiga)

Tasakaalustatud lahendus on kasutada 16-bitiseid mälukiipe. Mul on olemas Integrated Silicon Solutions Inc. (ISSI IS61LV25616AL, 16 x 256k, 10 ns, 3.3V) kiipe. Loomulikult on firma „Milandr” oma staatiliste mälukiipidega, seeria 1645RU, kuid need on liiga kallid ja kergesti kättesaamatud. Alternatiivina on olemas Samsung K6R4016V1D, mis on jalaehtedelt ühilduvad. Varem mainisin, et need kiibid olid kasutatud ja esialgu paigaldatud eksemplar andis tõrkeid ning kaootilisi väärtusi 15. andmeliinil. Vigasid otsides kulus mitu päeva ja tunne oli rahuldustpakkuv, kui vahetasin rikki läinud kiibi tööle. Igatahes on välimäluga töötamise kiirus soovitud kvaliteedist madalam.

Väline buss ja StandAlone režiimMikrokontroller K1986BE1QI (aviatsioon) omab ainulaadset StandAlone režiimi, mis on ette nähtud otseühendamiseks Etherneti kontrollerite ja MKIO (MIL_STD_1553) kaudu välist bussilt, kusjuures süda on lähtestatud, st ei tööta. See režiim on mugav protsessorite ja RISC-i jaoks, milles pole Ethernetit ja/või MKIO-d.
Ühendusskeem on järgmine:

  • MCU andmete buss (D0-D15) => SRAM (I/O0-I/O15),
  • MCU aadressibuss (A1-A18) => SRAM (A0-A17),
  • MCU juhtimine (nWR,nRD,PortC2) => SRAM (WE,OE,CE),
  • SRAM (UB,LB) on ühendatud või maapinnale tõmmatud läbi takisti.

CE joon on tõmmatud toiteliini kaudu takisti, MCU (BE0-BE3) väljundid ei ole kasutusel. Spoileri all annan portide ja välise bussikontrolleri initsialiseerimise koodi.

EBC (väline bussi kontroller) portide ja kontrolleri initsialiseerimine

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

LQFP-144 korpusesse paigutatud mikrokontroller ja TSOP-44 korpusesse paigutatud mälud omavad palju omavahel seotud ühendusi ning võtavad trükkplaadil palju ruumi. Minu kogemused majanduse optimeerimise probleemide lahendamisel näitasid mulle selgelt, et nende kiipide paigutamine plaadile peab olema esmatähtis. Olen kuulnud mitmeid kiidusõnu Süntetiseerimissüsteem TopoR (Topoloogiline suunaja). Laadisin alla prooviversiooni ja sain oma projekti Eagle CAD-ist eksportida ainult siis, kui eemaldasin peaaegu kõik komponendid. Kahjuks ei aidanud TopoR isegi 10 elementi plaadile paigutada. Kõik komponendid olid esialgu paigutatud nurka, seejärel tõstetud teise serva. See variant ei rahuldanud mind, mistõttu pidasin pikka aega plaadi jälgimist käsitsi oma tuttavas keskkonnas, Eagle CAD-is.

Oluline element trükkplaadil on siiditrükk. Prototüüpplaadil peavad olema mitte ainult elektrooniliste komponentide tähised, vaid ka kõik pistikud peavad olema märgitud. Plaadi tagaküljel olen paigutanud meelespead kontrolleri portide funktsioonidega (peamine, alternatiivne, ümber määratud, tegelik). Trükkplaatide valmistamise tellisin Hiinas tuntud ettevõttes PCBWay. Ei hakka kiitma, sest kvaliteet on hea. Nad suudavad teha paremini, väiksemate tolerantsidega, kuid erakulu eest.

K1986ВЕ1QI (aviika) debug board development
Valmistatud trükkplaadid MDB1986, (c) Autorifoto

Komponente tuli "pahnata" 40-vatise jootekolviga ja kõvastunud joodet, sest joodan ma harva, 1-2 korda aastas, ja jootepasta on kuivanud. Tänasin ka Hiina kontrolleri CS32F103 originaali STM32F103 vastu ja siis tuli veel mälu vahetada. Kokkuvõttes olen tulemusega täiesti rahul, kuigi ei ole veel RS-232 ja CAN töötamist kontrollinud.

K1986ВЕ1QI (aviika) debug board development
MDB1986 prototüüpplaat töös — valgustab ja soojendab, (c) Autorifoto

Sait „Milandra” pakub piisavalt õppematerjale kontrollerite õppimiseks seeria 1986BE9 (Cortex-M3 tuum), kuid mikrokontrolleri K1986BE1QI (õhujõudude) kohta ei näe ma sealses materjalis midagi. Vaadates seal avaldatud materjale, õpikuid ja laboritöid ülikoolide jaoks, tunnen rõõmu, et kogu riigis valmistatakse ette spetsialiste, kes oskavad töötada Venemaa kontrolleritega. Enamus õpikuid keskendub sisendi- ja väljundportide, ajastite, ADC, DAC, SPI, UART käsitlemisele. Erinevaid arenduskeskkondi kasutatakse (Keil, IAR, CodeMaster). Kusagil programmeeritakse CMSIS registrite abil, teistes kohades kasutatakse MDR Library't. Tähtis on mainida ressurssi Start Milandr, mis sisaldab mitmeid artikleid praktikute programmeerijate poolt. Ja loomulikult ei tohiks unustada Milantra foorumit.

Milantri mõtetMikroelektroonika Venemaal areneb, ja selle protsessis mängib ettevõte „Milandr” olulist rolli. Ilmuvad uued huvitavad mikrokontrollerid, näiteks 1986BE81T ja „Elektrsila” SpaceWire ja MKIO liidestega (sama nagu 1986BE1 ja võib-olla samade probleemidega) jne. Kuid lihtsad üliõpilased, õppejõud ja tsiviilehitajad ei saa selliseid mikroskeeme osta. Seega ei suuda inseneride kogukond kiiresti tuvastada selle mikroskeemi vigu ja probleeme. Minu arvates on kõigepealt vajalik luua mikroskeemid plastkorpuses, levitada neid kõigi huviliste seas ja alles pärast spetsialistide katsetamist (lad. approbatio — heakskiitmine, tunnustamine) on mõistlik valmistada ümber metallkeraamilises korpuses, kaitstes kõigi kohutavate faktorite eest. Loodan, et peagi rõõmustavad meid kõiki väljapanekutel esitatud uued projektid.
Minu loodud arendusplaat on igal inimesel võimalik korrata, modifitseerida ja kasutada õppeprotsessis. Eelkõige tegin plaadi enda jaoks, kuid see õnnestus nii hästi, et otsustasin kõigiga jagada.

K1986VE1QI (aviation) – on väga huvitav kontroller unikaalsete liideste ja rakenduste jaoks, mida saab kasutada ülikoolides üliõpilaste koolitamiseks. Olen kindel, et pärast kontrolleri avastatud vigade parandamist ja sertifitseerimiskatsete sooritamist, hakkab kontroller sõna otseses mõttes lendama!

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster