Razvoj plošče za odpravljanje napak za K1986BE1QI (letalstvo)

Razvoj plošče za odpravljanje napak za K1986BE1QI (letalstvo)

Pred nekaj leti sem se seznanil z ruskimi mikrokontrolerji podjetja Milandr. Bilo je leto 2013, ko so inženirji živahno razpravljali o prvih rezultatih zveznega ciljnega programa "Razvoj baze elektronskih komponent in radijske elektronike" za obdobje 2008–2015. Takrat je bil krmilnik K1986BE9x (jedro Cortex-M3) že izdan, krmilnik 1986BE1T (jedro Cortex-M1) pa se je pravkar pojavil. On, v plastičnem ohišju LQFP-144, je imel v dokumentaciji oznako K1986BE1QI (letalstvo), na samem čipu pa oznako MDR32F1QI. Na spletni strani proizvajalca ima pripono "zrak", saj ima vmesnike specifične za letalsko industrijo (ARINC 429, MIL_STD_1553).

Presenetljivo je, da je podjetje Milander ob distribuciji teh krmilnikov pripravilo debug kite in knjižnico podprogramov za delo s perifernimi napravami, »vendar brez kakršnih koli dodatnih garancij in obveznosti glede pravilnosti knjižnice«. Knjižnica je podobna standardni periferni knjižnici podjetja STMicroelectronics. Na splošno imajo vsi krmilniki ARM, zgrajeni na jedru Cortex-M, veliko skupnega. Zato je spoznavanje novih ruskih krmilnikov potekalo hitro. Za tiste, ki so kupili lastniške komplete za odpravljanje napak, je bila med uporabo zagotovljena tehnična podpora.

Razvoj plošče za odpravljanje napak za K1986BE1QI (letalstvo)
Komplet za odpravljanje napak za mikrokrmilnik 1986BE1T, © Milandr

Vendar so se sčasoma začele pojavljati "otroške bolezni" novih čipov in knjižnic. Testni primeri vdelane programske opreme so delovali brez vidnih težav, vendar so ob večjih spremembah deževale zrušitve in napake. Prva "pogoltnost" v moji praksi so bile nerazložljive okvare v krmilniku CAN. Leto pozneje je bila odkrita težava z modulom na krmilniku 1986BE1T (zrak) zgodnje revizije MCIO (multipleksni kanal za izmenjavo informacij). Na splošno so bile vse revizije teh mikrokontrolerjev do leta 2016 omejene uporabe. Veliko časa in živcev je bilo vloženega v prepoznavanje teh težav, katerih potrditev je sedaj na voljo v seznami napak (Errata).

Neprijetna lastnost je bila, da je bilo treba delati in se ukvarjati z napakami ne na ploščah za odpravljanje napak, temveč na ploščah prototipnih naprav, ki so bile načrtovane za serijsko tovarniško proizvodnjo. Poleg JTAG konektorja običajno ni bilo ničesar. Bilo je težko in neprijetno povezati se z logičnim analizatorjem, običajno ni bilo LED in zaslonov. Iz tega razloga se je v moji glavi pojavila ideja o ustvarjanju lastne plošče za odpravljanje napak.

Po eni strani so bili na trgu kompleti za odpravljanje napak z blagovno znamko, pa tudi čudovite plošče LDM-Systems iz Zelenograda. Po drugi strani pa cene teh izdelkov spravljajo v stupor, osnovna funkcionalnost brez razširitvenih kartic pa ne izpolnjuje pričakovanj. Plošča s prispajkanim krmilnikom in pinsko glavo me ne zanima. In bolj zanimive plošče so drage.

Razvoj plošče za odpravljanje napak za K1986BE1QI (letalstvo)
Razvojna plošča MILANDR LDM-HELPER-K1986BE1QI-FULL, © LDM Systems

Podjetje "Milandr" ima edinstveno cenovno politiko in trženje. Torej je mogoče dobiti vzorce nekaterih mikrovezij brezplačno, vendar je to na voljo samo pravnim osebam in je povezano z birokratskim iskanjem. Na splošno so mikrovezja v keramično-kovinskem paketu zlata v dobesednem in figurativnem pomenu. Na primer, krmilnik 1986BE1T v Moskvi stane od 14 do 24 tisoč rubljev. Statični pomnilniški čip 1645RU6U stane od 15000 rubljev. In to je vrstni red cen za vse izdelke. Posledično tudi specializirani raziskovalni inštituti z državnimi naročili varčujejo in se izogibajo takim cenam. Čipi v plastičnem ohišju za civilno rabo so bistveno cenejši, a jih pri popularnih dobaviteljih ni. Poleg tega se mi zdi, da je kakovost čipov v plastičnem ohišju slabša od "zlata". Na primer, krmilnika K1986BE1QI nisem mogel zagnati pri 128MHz, ne da bi povečal nastavitev zakasnitve bliskavice. Hkrati se je temperatura tega krmilnika dvignila na 40-50C. Toda krmilnik 1986BE1T ("zlati") se je zagnal pri 128 MHz brez dodatnih nastavitev in ostal hladen. Res je dober.

Razvoj plošče za odpravljanje napak za K1986BE1QI (letalstvo)
"Zlati" mikrokrmilnik 1986BE1T, (c) Milandr

Imel sem srečo, da je mikrokontroler v plastičnem ohišju še vedno mogoče kupiti v maloprodaji pri LDM Systems, vsa vezja pa so prosto dostopna. Slaba stvar je, da je na mestu na fotografiji krmilnika vidna oznaka, ki pravi, da je to 4. revizija 2014, tj. z napakami. Dolgo sem razmišljal - kupiti ali ne kupiti. Tako je minilo nekaj let...

Ideja o ustvarjanju plošče za odpravljanje napak ni nikamor izginila. Postopoma sem oblikoval vse zahteve in razmišljal, kako vse to postaviti na eno ploščo, da bo kompaktna in ne draga. Vzporedno sem pri Kitajcih naročil manjkajoče komponente. Nikamor se mi ni mudilo - vse sem naredil zase. Kitajski dobavitelji so znani po povrhnosti - isto stvar sem moral naročiti na različnih mestih, da sem dobil vse, kar sem potreboval. Poleg tega se je izkazalo, da so nekateri pomnilniški čipi rabljeni - očitno spajkani iz pokvarjenih naprav. To me je kasneje doletelo.

Nakup mikrokontrolerja Milandr K1986BE1QI (letalski) ni lahka naloga. V isti trgovini Chip and Dip sem v razdelku »Pozicije za naročilo« našel samo K1986BE92QI za 740 rubljev, vendar mi ni ustrezal. Edina možnost je nakup nesveže revizije pri LDM-Systems za 2000 rubljev. Ker nikjer drugje nisem našel zamenjave, sem se odločil kupiti tisto, kar je bilo. Na moje prijetno presenečenje so mi prodali popolnoma nov krmilnik izdaje decembra 2018, revizija 6+ (1820). In spletno mesto ima še vedno staro fotografijo in v času pisanja krmilnik ni na voljo ...

Razvoj plošče za odpravljanje napak za K1986BE1QI (letalstvo)
Mikrokrmilnik K1986BE1QI (letalski) v tehnološki embalaži, (c) Fotografija avtorja

Glavne tehnične specifikacije moje razvojne plošče MDB1986 naslednje:

  • vgrajen razhroščevalnik-programer, združljiv z J-Link in CMSIS-DAP;
  • 4Mbit statični pomnilnik (256k x 16, 10 ns);
  • flash pomnilniški čip 64Mbit, Winbond 25Q64FVSIG;
  • oddajnik vmesnika RS-232 z linijama RTS in CTS;
  • vmesniki in priključki za Ethernet, USB, CAN;
  • 7-segmentni zaslonski krmilnik MAX7221;
  • pin konektor za delo z MCIO (MIL_STD_1553) in ARINC429;
  • fototranzistor Everlight PT17-21C;
  • pet barvnih LED, gumb za ponastavitev in dva uporabniška gumba;
  • napaja se preko USB priključka 5 voltov;
  • tiskano vezje dimenzij 100 x 80, mm

Všeč so mi bile plošče serije STM-Discovery, ker imajo vgrajen programer-debugger - ST-Link. Lastniški ST-Link deluje samo s krmilniki STMicroelectronics, vendar je pred nekaj leti postalo mogoče posodobiti vdelano programsko opremo v ST-Linku in dobiti SEGGER J-Link OB (on-board) Debugger. Pravno velja omejitev za uporabo takega razhroščevalnika samo s ploščami STMicroelectronics, vendar potencial dejansko ni omejen. Tako imate lahko z J-Link OB vgrajen programer-debugger na plošči za odpravljanje napak. Opažam, da izdelki LDM-Systems uporabljajo pretvornik CP2102 (Usb2Uart), ki lahko samo utripa.

Razvoj plošče za odpravljanje napak za K1986BE1QI (letalstvo)
Mikrokontrolerji STM32F103C8T6, resnični in ne tako, (c) Fotografija avtorja

Torej je bilo treba kupiti originalni STM32F103C8T6, saj vdelana programska oprema z blagovno znamko ne bo pravilno delovala s klonom. Podvomil sem v to tezo in se odločil preizkusiti krmilnik CS32F103C8T6 kitajskega podjetja CKS. Nimam pritožb glede samega krmilnika, vendar lastniška vdelana programska oprema ST-Link v njem ni delovala. J-Link je deloval delno - naprava USB je bila zaznana, vendar programator ni opravljal svojih funkcij in je nenehno opozarjal, da je "pokvarjena".

Razvoj plošče za odpravljanje napak za K1986BE1QI (letalstvo)
Napaka pri zagonu razhroščevalnika na neoriginalnem krmilniku

Na to se nisem umiril in najprej napisal vdelano programsko opremo za utripanje LED, nato pa implementiral zahtevo IDCODE s protokolom JTAG. Programator ST-Link, ki sem ga imel na plošči Discovery in program ST-Link Utility mi je brez težav prešaltal CS32F103C8T6.Posledično sem se prepričal, da mi plošča deluje. Na moje veselje je ciljni krmilnik K1986BE1QI (letalstvo) veselo izdal svojo IDCODE prek linije TDO.

Razvoj plošče za odpravljanje napak za K1986BE1QI (letalstvo)
Oscilogram signalne linije TDO z IDCODE kodiranim odgovorom, (c) Fotografija avtorja

Razvoj plošče za odpravljanje napak za K1986BE1QI (letalstvo)
Tako so vrata SWD prišla prav za odpravljanje napak v samem razhroščevalniku in preverjanje IDCODE

Obstajala je možnost z razhroščevalnikom CMSIS-DAP (vrata za dostop do odpravljanja napak). Gradnja projekta iz virov ARM ni lahka naloga, projekt sem vzel iz X893, nato pa sem poskusil tudi DAP42. Na žalost se je Keil uVision zataknil in ni hotel sodelovati z njimi. Posledično sem čip za odpravljanje napak zamenjal z lastniškim STM32F103C8T6 in se k tej težavi nisem vrnil.

Razvoj plošče za odpravljanje napak za K1986BE1QI (letalstvo)
Uspešno delovanje vgrajenega razhroščevalnika J-Link STLink V2

Ko so bile vse ključne komponente prihodnje plošče za odpravljanje napak na voljo, sem vstopil v Eagle CAD in ugotovil, da jih ni v knjižnici elementov. Ni kam iti - moral sem jih narisati sam. Hkrati sem naredil sedeže za pomnilnik, priključek HanRun za Ethernet ter dodal okvirje za upore in kondenzatorje. Najdete lahko projektno datoteko in knjižnico komponent Imam ga na GitHubu.

Shematski diagram plošče za odpravljanje napak MDB1986Razvoj plošče za odpravljanje napak za K1986BE1QI (letalstvo)

Plošča se napaja iz 5-voltnega DC vira iz USB priključka. Na plošči sta dva priključka USB Type-B. Eden je za programator, drugi pa za krmilnik K1986BE1QI. Plošča lahko deluje iz katerega koli od teh virov ali obeh hkrati. Najenostavnejša nastavitev obremenitve in zaščita daljnovodov sta izvedena na Schottky diodah, v vezjih D2 in D3 (SS24). Na diagramu lahko vidite tudi samoobnovljive varovalke F1 in F2 pri 500mA. Signalne linije vrat USB so zaščitene s sklopom diod USBLC6-2SC6.

Vezje razhroščevalnika-programerja ST-Link je znano mnogim, najdete ga v dokumentaciji za plošče STM32-Discovery in drugih virih. Za primarno vdelano programsko opremo klona ST-Link / J-Link-OB / DAP (neobvezno) sem predstavil linije SWDIO (PA13), SWCLK (PA14), GND. Mnogi uporabljajo UART za vdelano programsko opremo in so prisiljeni potegniti mostičke BOOT. Toda SWD mi je bolj primeren, poleg tega ta protokol omogoča odpravljanje napak.

Skoraj vse komponente plošče se napajajo s 3.3 volti, ki prihajajo iz regulatorja napetosti AMS1117-3.3. Za zatiranje elektromagnetnih motenj in tokovnih sunkov se uporabljajo LC filtri iz kondenzatorjev in dušilk serije BLM31PG.

Ločeno je treba omeniti gonilnik 7-segmentnega zaslona MAX7221. Po specifikaciji je priporočeno napajanje od 4 do 5.5 voltov, visok nivo signala (logična ena) pa ni nižji od 3.5 V (0.7 x VCC) pri napajanju s 5 V. Za krmilnik K1986BE1QI (letalstvo) izhod logične enote ustreza napetosti od 2.8 do 3.3 V. Očitno obstaja neskladje v nivojih signala, ki lahko moti normalno delovanje. Odločil sem se, da napajam MAX7221 iz 4V in znižam nivoje signala na 2.8V (0.7 x 4 = 2.8). Da bi to naredili, je dioda D4 (RS1A ali FR103) zaporedno nameščena v napajalnem krogu gonilnika. Skupni padec napetosti je 0.9V (0.3V Schottky dioda in 0.6V dioda) in vse deluje.

Večina vrat na mikrokrmilniku K1986BE1QI (letalstvo) je združljivih s signali do 5 V. Zato uporaba oddajnika CAN MCP2551, ki prav tako deluje iz 5V, ne povzroča težav. Diagram prikazuje čip MAX232 kot oddajnik-sprejemnik RS-3232, v resnici pa sem uporabil SN65C3232D družbe Texas Instruments, ker deluje od 3.3V in zagotavlja hitrost do 1Mbit/s.

Na plošči so 4 kvarčni resonatorji - eden za razhroščevalnik (8 MHz) in trije za ciljni mikrokrmilnik K1986BE1QI (letalstvo) z nominalnimi vrednostmi 32.768 kHz, 16 MHz, 25 MHz. To so nujne komponente, saj. parametri vgrajenega RC generatorja so v širokem območju od 6 do 10 MHz. Za delovanje vgrajenega Ethernet krmilnika je potrebna frekvenca 25 MHz. Na spletni strani Milandre iz nekega razloga (morda pomotoma) piše, da v plastičnem ohišju ni Etherneta. Vendar se bomo zanašali na specifikacijo in dejstva.

Pomembna spodbuda za ustvarjanje lastne plošče za odpravljanje napak je bila priložnost za delo z zunanjim sistemskim vodilom EBC (external bus controller), ki je v bistvu vzporedna vrata. Mikrokrmilnik K1986BE1QI (letalski) vam omogoča povezavo in delo z zunanjimi pomnilniškimi čipi in perifernimi napravami, kot so ADC, FPGA itd. Možnosti zunanjega sistemskega vodila so precej velike - lahko delate z 8-bitnimi, 16-bitnimi in 32-bitnimi statičnimi pomnilniki RAM, ROM in NAND Flash. Za branje / pisanje 32-bitnih podatkov lahko krmilnik samodejno izvede 2 ustrezni operaciji za 16-bitna mikrovezja in 8 operacije za 4-bitna. Očitno bo 32-bitna V/I operacija najhitrejša z 32-bitnim podatkovnim vodilom. Pomanjkljivosti vključujejo potrebo, da program deluje z 32-bitnimi podatki, plošča pa bo morala položiti 32 skladb.

Razvoj plošče za odpravljanje napak za K1986BE1QI (letalstvo)
SRAM čipi, rabljeni (uganite kateri je okvarjen)

Uravnotežena rešitev je uporaba 16-bitnih pomnilniških čipov. Končal sem s čipi Integrated Silicon Solutions Inc. (ISSI IS61LV25616AL, 16x256k, 10ns, 3.3 V). Seveda ima podjetje "Milandr" svoje statične pomnilniške čipe serija 1645RUvendar so predragi in jih ni na voljo. Druga možnost je, da so Samsung K6R4016V1D združljivi s pinom. Prej sem omenil, da so bili IC-ji rabljeni in da je bila kopija, ki sem jo namestil, sprva nestalna in neredna na 15. podatkovni vrstici. Trajalo je nekaj dni, da sem odkril strojne napake, toliko večji pa je bil občutek zadovoljstva, ko sem poškodovan čip zamenjal z delujočim. Kakor koli že, hitrost dela z zunanjim pomnilnikom pušča veliko želenega.

Zunanje vodilo in samostojni načinMikrokrmilnik K1986BE1QI (letalski) ima edinstven način StandAlone, ki je namenjen neposrednemu zunanjemu dostopu do krmilnikov Ethernet in MCIO (MIL_STD_1553) preko zunanjega vodila, medtem ko je jedro v stanju ponastavitve, tj. se ne uporablja. Ta način je uporaben za procesorje in FPGA, ki nimajo Etherneta in/ali MCIO.
Diagram povezave je naslednji:

  • podatkovno vodilo MCU(D0-D15) => SRAM(I/O0-I/O15),
  • naslovno vodilo MCU(A1-A18) => SRAM(A0-A17),
  • Nadzor MCU (nWR,nRD,PortC2) => SRAM (WE,OE,CE),
  • SRAM(UB,LB) sta povezana ali potegnjena na maso prek upora.

Linija CE se napaja prek upora, zatiči za pridobivanje bajtov MCU (BE0-BE3) se ne uporabljajo. Pod spojlerjem podajam kodo za inicializacijo vrat in krmilnika zunanjega vodila.

Inicializacija vrat in krmilnika EBC (zunanji krmilnik vodila)

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

Mikrokrmilnik v ohišju LQFP-144 in pomnilnik v ohišju TSOP-44 imata veliko povezanih pinov in zavzameta veliko prostora na tiskanem vezju. Z izkušnjami pri reševanju optimizacijskih problemov na področju ekonomije mi je bilo očitno, da je treba ta mikrovezja najprej postaviti na ploščo. V različnih virih sem naletel na pohvalne ocene o CAD TopoR (topološki usmerjevalnik). Prenesel sem preizkusno različico in tja sem lahko izvozil svoj projekt iz Eagle CAD šele, ko sem odstranil skoraj vse komponente. Žal mi program TopoR ni pomagal postaviti niti 10 elementov na tablo. Najprej so vse komponente postavili v kot, nato pa jih razporedili po robu. Ta možnost me ni zadovoljila in dolgo časa sem ročno risal ploščo v znanem okolju Eagle CAD.

Sitotisk je pomemben element tiskanega vezja. Na plošči za odpravljanje napak ne smejo biti samo podpisi za elektronske komponente, ampak morajo biti podpisani vsi priključki. Na hrbtni strani plošče sem postavil tabele-opomnike s funkcijami priključkov krmilnika (glavni, alternativni, nadomestni, dejanski). Naročil sem izdelavo tiskanih vezij na Kitajskem v znani pisarni PCBWay. Ne bom hvalil, ker je kakovost dobra. Lahko se bolje obnesejo z manjšimi tolerancami, vendar za plačilo.

Razvoj plošče za odpravljanje napak za K1986BE1QI (letalstvo)
Izdelana tiskana vezja MDB1986, (c) Fotografija avtorja

Komponente sem moral odspajkati "na kolenu" s 40-vatnim spajkalnikom in spajkalom POS-61, ker spajkam redko, 1-2 krat na leto, spajkalna pasta pa se je posušila. Prav tako sem moral zamenjati kitajski krmilnik CS32F103 z originalnim STM32F103 in nato zamenjati tudi pomnilnik. Na splošno sem zdaj popolnoma zadovoljen z rezultatom, čeprav še nisem preveril delovanja RS-232 in CAN.

Razvoj plošče za odpravljanje napak za K1986BE1QI (letalstvo)
Plošča za odpravljanje napak MDB1986 v delovanju — sveti in greje, (с) Fotografija avtorja

Na spletnem mestu "Milandra" lahko najdete dovolj učna gradiva za učne krmilnike Serija 1986BE9 (jedro Cortex-M3), vendar za mikrokrmilnik K1986BE1QI (letalstvo) tam ne vidim ničesar. Po pregledu tam objavljenih gradiv, priročnikov in laboratorijskega dela za univerze sem vesel, da se osebje po vsej državi usposablja za delo z ruskimi krmilniki. Večina gradiva za usposabljanje je pripravljena za delo z V/I vrati, časovniki, ADC, DAC, SPI, UART. Uporabljajo se različni IDE (Keil, IAR, CodeMaster). Nekje programirajo z uporabo registrov CMSIS, nekje pa z MDR Library. Vir je treba omeniti Zaženite Milandr, ki vsebuje veliko člankov praktičnih programerjev. In seveda ne smemo pozabiti Forum Milandra.

Mislim na MilandraMikroelektronika v Rusiji se razvija in podjetje "Milandr" igra pomembno vlogo v tem procesu. Pojavijo se novi zanimivi mikrokontrolerji, na primer 1986BE81T in Elektrosila z vmesnikoma SpaceWire in MKIO (enako kot v 1986BE1 in po možnosti z enakimi težavami) itd. Toda za navadne študente, učitelje in gradbene inženirje ni realno kupiti takšnih mikrovezij. To pomeni, da inženirska skupnost ne bo mogla hitro prepoznati napak in težav tega čipa. Zdi se mi, da je treba najprej izdelati mikrovezja v plastičnem ohišju, jih razdeliti vsem zainteresiranim in šele po odobritvi (latinsko approbatio - odobritev, priznanje) lahko strokovnjaki pripravijo revizijo v keramično-kovinskem ohišju z zaščito pred vsi strašni dejavniki. Upam, da bomo v bližnji prihodnosti VSI zadovoljni z novimi projekti, napovedanimi na razstavah.
Vsakdo lahko ponovi, spremeni in uporabi tablo za odpravljanje napak, ki sem jo razvil v izobraževalnem procesu. Najprej sem si naredil tablo, ki pa je tako dobro izpadla, da Odločil sem se deliti z vsemi.

K1986BE1QI (zrak) je zelo zanimiv krmilnik z edinstvenimi vmesniki, ki se lahko uporablja na univerzah za poučevanje študentov. Mislim, da bo po odpravi ugotovljenih napak na krmilniku in opravljenih certifikacijskih testih krmilnik letel v pravem pomenu besede!

Vir: www.habr.com

Dodaj komentar