
Pak vite njĂ« njohje me mikrocontrolerĂ«t rus tĂ« kompanisĂ« Milandr. Ishte viti 2013, kur inxhinierĂ«t diskutuan shumĂ« pĂ«r rezultatet e para tĂ« FPà «Zhvillimi i bazĂ«s sĂ« komponentĂ«ve elektronikĂ« dhe radioteknikĂ«s» pĂ«r 2008-2015. NĂ« atĂ« kohĂ« ishte lĂ«shuar tashmĂ« kontroleri K1986BE9x (nĂ« bĂ«rthamĂ«n Cortex-M3) dhe sapo ishte shfaqur kontroleri 1986BE1T (nĂ« bĂ«rthamĂ«n Cortex-M1). Ai po ashtu, nĂ« kasĂ«n plastike LQFP-144 kishte nĂ« dokumentacion emĂ«rtimin K1986BE1QI (ajrore), ndĂ«rsa nĂ« vetĂ« mikroçipin emĂ«rtimin MDR32F1QI. NĂ« uebin e prodhuesit, ai ka sufixin âajroreâ, pasi ka interfaca specifike pĂ«r ndĂ«rtimin e aviacionit (ARINC 429, MIL_STD_1553).
E habitshme, por në momentin e shpërndarjes së këtyre kontrolerëve, kompania «Milandr» kishte përgatitur grupe testimi dhe një bibliotekë nënprogramesh për punë me periferinë, «por pa asnjë garanci shtesë dhe detyrime për korrektësinë e bibliotekës». Biblioteka ngjan me Standard Peripheral Library nga kompania STMicroelectronics. Në përgjithësi, të gjithë mikrocontrolerët ARM të ndërtuar mbi bërthamën Cortex-M kanë shumë përbashkëta. Për këtë arsye, njohja me mikrocontrolerët e rinj rusë ishte e shpejtë. Dhe për ata që blenin grupe testimi të markës, ofrohej mbështetje teknike gjatë procesit të përdorimit.

Grupi testimi për mikrocontrolerin 1986BE1T, © Milandr
Megjithatë, me kalimin e kohës filluan të shfaqen «sëmundjet e fëmijërisë» të mikroçipave dhe bibliotekave të reja. Shembujt e testit të firmware funksiononin pa probleme të dukshme, por me ndryshime të mëdha shfaqeshin bllokime dhe gabime. E para «shenjë» në përvojën time ishin bllokimet e paqartë në funksionimin e kontrolerit CAN. Pas një viti, në kontrolluesin 1986BE1T (ajrore) të revizionit të hershëm u zbulua një problem me modulin . Në përgjithësi, të gjitha revizionet e këtyre mikrocontrolerëve deri në vitin 2016 ishin të kufizuara për përdorim. Shumë kohë dhe nerva kaluan për të zbuluar këto probleme, të cilat tani mund të konfirmohen në .
Një tipar i pakëndshëm ishte se duhej të punoja dhe shqyrtoja gabimet, jo në tabelat e testimit, por në tabelat e prototipeve të paisjeve, të cilat ishin planifikuar për prodhim serial në fabrikë. Përveç lidhësit JTAG, aty zakonisht nuk kishte asgjë. Të lidhesh me një analizues logjik ishte e vështirë dhe e pakëndshme, si dhe zakonisht nuk kishte drita LED dhe ekrane. Për këtë arsye, në mendje më lindi ideja për krijimin e tabelës sime të testimit.
Nga njëra anë, në treg ishin komplete sipërmarrëse për debugging, si dhe pllaka të shkëlqyera nga kompania LDM-Systems nga Zelenograd. Nga ana tjetër, çmimet për këto produkte janë tronditëse dhe funksionaliteti bazë pa pllakat e zgjerimit nuk përmbush pritjet. Një pllakë me kontrolluesin dhe lidhësin e shkrirë nuk përbën interes për mua. Pllakat më interesante janë shumë të shtrenjta.

Pllaka e debugging MILANDR LDM-HELPER-K1986BE1QI-FULL, © LDM Systems
Kompania «Milandr» ka një politikë çmimi dhe marketingu të veçantë. Kështu, ka mundësi që disa mikroçipe të merren falas, por kjo është e disponueshme vetëm për personat juridikë dhe lidhet me një proces burokratik. Në përgjithësi, mikroçipet në trupin metalokeramik janë të çmuara në kuptimin e drejtë dhe figurativ. Për shembull, kontrolluesi 1986BE1T kushton në Moskë nga 14 deri në 24 mijë rubla. Mikroçipi i memories statike 1645RU6U kushton nga 15,000 rubla. Dhe ky është rendi i çmimeve për gjithë produktin. Në fund, madje edhe institucionet kërkimore me porosi shtetërore kursejnë dhe kursejnë nga këto çmime. Mikroçipet në trupin plastik për përdorim civil janë ndjeshëm më të lira, por nuk janë të disponueshme nga furnizuesit e njohur. Përveç kësaj, cilësia e mikroçipave në trupin plastik, siç mendoj, është më e dobët se «të arta». Për shembull, nuk arrija të niste kontrolluesin K1986BE1QI në frekuencën 128MHz pa rritur parametrin e flash latency. Në të njëjtën kohë, temperatura e këtij kontrolluesi iu ngrit në 40-50C. Ndërsa kontrolluesi 1986BE1T («i artë») u nis në 128MHz pa rregullime të tjera dhe mbeti i ftohtë. Ai është vërtet i mirë.

Mikrokontrolluesi «i artë» 1986BE1T, (c) Milandr
MĂ« Ă«shtĂ« fat qĂ« mikrokontrolluesi nĂ« trupin plastik mund tĂ« blihet nĂ« pakicĂ« nĂ« kompaninĂ« LDM Systems, dhe tĂ« gjitha skemat e pllakave janĂ« nĂ« dispozicion tĂ« lirĂ«. E keqe Ă«shtĂ« se nĂ« faqen e internetit nĂ« fotografinĂ« e kontrolluesit shfaqet njĂ« markim qĂ« tregon se kjo Ă«shtĂ« revisioni 4 i vitit 2014, dmth, me defekte. Mendova pĂ«r njĂ« kohĂ« tĂ« gjatĂ« â tĂ« blej apo jo. KĂ«shtu kaluan disa vite...
Mendimi pĂ«r krijimin e njĂ« pllake debugging nuk Ă«shtĂ« zhdukur. Gradualisht kam formuar tĂ« gjitha kĂ«rkesat dhe mendova se si ta vendosja tĂ« gjitha nĂ« njĂ« pllakĂ«, nĂ« mĂ«nyrĂ« qĂ« tĂ« ishte kompakt dhe jo shumĂ« e shtrenjtĂ«. Paralelisht porosita nga kinezĂ«t komponentet e nevojshme. Nuk isha nxitim â gjithçka e bĂ«ja pĂ«r vete. Furnizuesit kinezĂ« janĂ« tĂ« njohur pĂ«r pakujdesit â mĂ« duhej tĂ« porositesha tĂ« njĂ«jtĂ«n gjĂ« nga vende tĂ« ndryshme pĂ«r tĂ« marrĂ« gjithçka qĂ« mĂ« nevojitej. PĂ«r mĂ« tepĂ«r, disa mikroçipet e memories u treguan se ishin tĂ« pĂ«rdorura â dukshĂ«m tĂ« shkĂ«putura nga pajisje tĂ« prishura. Kjo mĂ« ndodhi mĂ« vonĂ«.
TĂ« blish mikroprocesorin Milandr K1986ĐĐ1QI (aviacion) â nuk Ă«shtĂ« njĂ« detyrĂ« e thjeshtĂ«. NĂ« tĂ« njĂ«jtin dyqan "Chip e Dip" nĂ« seksionin "Pozita pĂ«r porosi" kam gjetur vetĂ«m K1986BE92QI pĂ«r 740 rubla, por ai nuk mĂ« pĂ«rkiste. Varianti i vetĂ«m â tĂ« blija nĂ« kompaninĂ« LDM-Systems njĂ« revizion tĂ« vjetĂ«r pĂ«r 2000 rubla. Pasi qĂ« nuk arrita tĂ« gjej njĂ« zĂ«vendĂ«sim askund tjetĂ«r, vendosa tĂ« blej atĂ« qĂ« kishte. PĂ«r habinĂ« time tĂ« kĂ«ndshme, mĂ« shitĂ«n njĂ« kontrollues tĂ« ri nga dhjetori i vitit 2018, revizioni 6+ (1820). Por faqja ende kishte njĂ« fotografi tĂ« vjetĂ«r, dhe nĂ« momentin e shkruarjes sĂ« artikullit kontrolluesi nuk ishte nĂ« dispozitĂ«âŠ

Mikroprocesori K1986ĐĐ1QI (aviacion) nĂ« paketimin teknologjik, (c) Foto e autorit
Karakteristikat teknike kryesore të bordit tim të zhvillimit MDB1986 të mëposhtmet:
- debagues-programator i integruar, i përshtatshëm me J-Link dhe CMSIS-DAP;
- memorie statike 4Mbit (256k x 16, 10 ns);
- çip flash memorie 64Mbit, Winbond 25Q64FVSIG;
- transmetues-prerës RS-232 me linjat RTS dhe CTS;
- interfaca dhe konektorët për Ethernet, USB, CAN;
- kontrolluesi i ekranit 7-segment MAX7221;
- konektor për punë me MKIO (MIL_STD_1553) dhe ARINC429;
- fototranziistor Everlight PT17-21C;
- pesë LED ngjyrë, një buton reset dhe dy butona të përdoruesit;
- në energji nga porta USB 5 volt;
- përmasat e bordit të printuar 100 x 80 mm
MĂ« pĂ«lqenin bordet e serisĂ« STM-Discovery pĂ«r shkak se aty kishte njĂ« programator-debagues tĂ« integruar â ST-Link. ST-Link origjinal punon vetĂ«m me kontrolluesit e kompanisĂ« STMicroelectronics, por disa vite mĂ« parĂ« u bĂ« e mundur tĂ« pĂ«rditĂ«sohej firmware nĂ« ST-Link dhe tĂ« merrej SEGGER J-Link OB (on-board) Debugger. LigjĂ«risht ka njĂ« kufizim pĂ«r pĂ«rdorimin e njĂ« debaguesi tĂ« tillĂ« vetĂ«m me bordet STMicroelectronics, por nĂ« fakt potenciali nuk Ă«shtĂ« i kufizuar. KĂ«shtu, duke pasur J-Link OB, mund tĂ« kesh njĂ« programator-debagues tĂ« integruar nĂ« bordin e zhvillimit. Do ta theksoj se nĂ« produktet "LDM-Systems" pĂ«rdoret konvertori CP2102 (Usb2Uart), qĂ« mund vetĂ«m tĂ« dergojĂ«.

Mikroprocesorët STM32F103C8T6, origjinalë dhe jo aq origjinalë, (c) Foto e autorit
Pra, ishte e nevojshme tĂ« blija njĂ« STM32F103C8T6 origjinal, pasi firmware e markĂ«s nuk do tĂ« punonte saktĂ« me klonin. Dyshoja pĂ«r kĂ«tĂ« tezĂ« dhe vendosa ta provoj nĂ« punĂ« kontrolluesin CS32F103C8T6 tĂ« kompanisĂ« kineze CKS. Nuk kam ankesa pĂ«r kontrolluesin, por firmware origjinale ST-Link nuk punoi nĂ« tĂ«. J-Link punoi pjesĂ«risht â pajisja USB u identifikua, por programatori nuk kryente funksionet e tij dhe pĂ«rherĂ« mĂ« njoftonte se ishte "defekt".

Gabim gjatë punës së debaguesit në kontrolluesin jo origjinal
Nuk e pata ndalur këtu dhe fillova së pari të shkruaja një firmware për ndriçimin e LED-it, dhe pastaj realizova kërkesën IDCODE përmes protokollit JTAG. Programatori ST-Link që kishte në bordin Discovery, dhe programi ST-Link Utility programuan pa probleme CS32F103C8T6. Në fund, e kuptova se bordi im punon. Për gëzimin tim, kontrolluesi qëllimor K1986BE1QI (aviacioni) jepte me ëndje IDCODE-në e tij përmes linjës TDO.

Osillogrami i vijës sinjale TDO me përgjigjen e koduar IDCODE, (c) Foto e autorit

Ja, dhe porti SWD u përdor për debugimin e vet debugerit dhe verifikimin e IDCODE
I mbetej opsioni me debugin . Të mbledhësh projektin nga burimet e ARM-it është një punë e vështirë, unë e mora projektin nga , dhe pastaj provoja gjithashtu DAP42. Fatkeqësisht, Keil uVision ngjitej dhe nuk donte të punonte me ta. Në fund, e zëvendësova çipin e debugerit me atë markë STM32F103C8T6 dhe nuk u ktheva më në këtë çështje.

Puna e suksesshme e debugerit të integruar J-Link STLink V2
Kur ishin nĂ« dispozicion tĂ« gjithĂ« komponentĂ«t kryesorĂ« tĂ« bordit debugues tĂ« ardhshĂ«m, fillova nĂ« Eagle CAD dhe zbulova se nuk ishin nĂ« bibliotekĂ«n e elementeve. S'kishte si tĂ« ikja â duhej t'i skicoja vetĂ«. NjĂ«kohĂ«sisht, krijova vend pĂ«r memorje, lidhjen HanRun pĂ«r Ethernet, dhe pĂ«r rezistorĂ«t dhe kondensatorĂ«t shtova korniza. Mund tĂ« gjeni skedarin e projektit dhe bibliotekĂ«n e komponentĂ«ve .
Skema principe e bordit debugues MDB1986
Bordi ushqehet nga njĂ« burim me rrymĂ« tĂ« vazhdueshme me tension 5 volt, e cila merret nga porti USB. NĂ« total, bordi ka dy porte USB Type-B. NjĂ«ra â pĂ«r programatorin, tjetra â pĂ«r kontrolluesin K1986BE1QI. Bordi mund tĂ« punojĂ« nga cilido prej kĂ«tyre burimeve ose me tĂ« dyja njĂ«kohĂ«sisht. Rregullimi mĂ« i thjeshtĂ« i ngarkesĂ«s dhe mbrojtja e linjave tĂ« energjisĂ« realizohen me diode Shottky, nĂ« skemĂ«n D2 dhe D3 (SS24). Gjithashtu, nĂ« skemĂ« mund tĂ« shihni siguresat auto-rindĂ«rtuese F1 dhe F2 me 500mA. Linjat sinjale tĂ« portit USB janĂ« tĂ« mbrojtura me njĂ« montim diode USBLC6-2SC6.
Skema e debugerit-programator ST-Link është e njohur për shumë, mund të gjendet në dokumentacionin e bordeve STM32-Discovery dhe burime të tjera. Për programimin fillestar të klonit ST-Link/J-Link-OB/DAP (sipër zgjedhjes), kam nxjerrë linjat SWDIO (PA13), SWCLK (PA14), GND. Shumë përdorin për programim UART dhe detyrohen të lëvizin çelësat BOOT. Por më përshtatet më shumë SWD, përveçse ky protokoll lejon debugimin.
Pothuajse të gjithë komponentët e bordit furnizohen me 3.3 volt, të cilat vijnë nga rregullatori i tensionit AMS1117-3.3. Për të reduktuar interferencat elektromagnetike dhe goditjet eurrent, përdoren filtre LC nga kondensatorë dhe bobina të serisë BLM31PG.
NjĂ« nga komponentĂ«t e veçantĂ« tĂ« pĂ«rmendshĂ«m Ă«shtĂ« drejtuesi i ekranit me 7 segmente MAX7221. Sipas specifikimeve, energjia e rekomanduar Ă«shtĂ« nga 4 deri nĂ« 5.5 volt, dhe niveli i sinjalit tĂ« lartĂ« (logjika 1) Ă«shtĂ« tĂ« paktĂ«n 3.5V (0.7 x VCC) me furnizim 5V. Me kontrollorin K1986BE1QI (aero) niveli i logjikĂ«s 1 korrespondon me tensionin nga 2.8 deri nĂ« 3.3V. ĂshtĂ« evidente qĂ« ka njĂ« mos pĂ«rputhje tĂ« niveleve tĂ« sinjaleve, qĂ« mund tĂ« dĂ«mtojĂ« funksionimin normal. Kam vendosur ta furnizoj MAX7221 me 4V dhe tĂ« ul nivelet e sinjaleve nĂ« 2.8V (0.7 x 4 = 2.8). PĂ«r kĂ«tĂ«, nĂ« zinxhirin e energjisĂ« sĂ« drejtuesit Ă«shtĂ« vendosur njĂ« diodĂ« D4 (RS1A ose FR103). Pra, ulja e tensionit Ă«shtĂ« 0.9V (diode Schottky 0.3V dhe diodĂ« 0.6V), dhe gjithçka funksionon.
Shumica e porteve të mikroprocesorit K1986BE1QI (aero) janë të përshtatshme me sinjale deri në 5V. Prandaj, nuk ka probleme me përdorimin e transceiver-it CAN MCP2551, i cili gjithashtu punon nga 5V. Si transceiver RS-232 në skemë është caktuar çipi MAX3232, por në të vërtetë kam përdorur SN65C3232D nga Texas Instruments, pasi ai funksionon nga 3.3V dhe ofron shpejtësi deri në 1Mbit/s.
NĂ« pllakĂ« janĂ« vendosur 4 rezonanatorĂ« kuarc â njĂ« pĂ«r debug (8MHz) dhe tre pĂ«r mikroprocesorin K1986BE1QI (aero) me ndihma 32.768kHz, 16MHz, 25MHz. KĂ«to janĂ« komponente tĂ« nevojshme, pasi parametrat e gjeneratorit tĂ« integruar RC janĂ« nĂ« kufij shumĂ« tĂ« mĂ«dhenj nga 6 deri nĂ« 10 MHz. Frekuenca 25MHz Ă«shtĂ« e nevojshme pĂ«r funksionimin e kontrollorit tĂ« integruar Ethernet. NĂ« faqen e Milandrit (ndoshta me gabim) Ă«shtĂ« cekur se nĂ« qarkun plastik mungon Ethernet. Por ne do tĂ« mbĂ«shtetemi nĂ« specifikimet dhe faktet.
NjĂ« stimul i rĂ«ndĂ«sishĂ«m pĂ«r krijimin e pllakĂ«s sime tĂ« debug ishte mundĂ«sia pĂ«r tĂ« punuar me autobusin e jashtĂ«m EBC (kontrollori i autobusĂ«ve tĂ« jashtĂ«m), i cili pĂ«r esencĂ« Ă«shtĂ« njĂ« port paralel. Mikroprocesori K1986BE1QI (aero) lejon lidhjen dhe punĂ«n me mikroçipe tĂ« jashtme tĂ« memories dhe pajisje periferike, si ADC, FPGA etj. MundĂ«sitĂ« e autobusit tĂ« jashtĂ«m janĂ« mjaft tĂ« mĂ«dha â mund tĂ« punohet me RAM statike 8-bit, 16-bit dhe 32-bit, ROM dhe NAND Flash. PĂ«r tĂ« lexuar/zhvatur tĂ« dhĂ«nat 32-bit, kontrollori di tĂ« bĂ«jĂ« automatikisht 2 operacione pĂ«r mikroçipet 16-bit dhe 4 operacione pĂ«r ato 8-bit. ĂshtĂ« evidente se operacioni 32-bit i input-output do tĂ« pĂ«rfundojĂ« mĂ« shpejt me autobus 32-bit. NjĂ« nga disavantazhet Ă«shtĂ« nevoja pĂ«r programim qĂ« tĂ« menaxhohen tĂ« dhĂ«nat 32-bit, dhe nĂ« pllakĂ« do tĂ« duhet tĂ« kalojĂ« 32 shina.

Ăipat e RAM statike, tĂ« pĂ«rdorura (nĂ« njĂ« mĂ«nyrĂ« tĂ« caktuar) me njĂ« defekt
Një zgjidhje e balancuar është përdorimi i çipave të memories 16-bit. Unë kam në dispozitë çipa nga Integrated Silicon Solutions Inc. (ISSI IS61LV25616AL, 16 x 256k, 10 ns, 3.3V). Sigurisht, firma "Milandër" ka çipat e saj të memories statike , porë ato janë shumë të shtrenjta dhe të paaksesueshme. Si alternativë ka modul kompatibil Samsung K6R4016V1D. Më parë përmenda se çipët ishin të përdorur dhe eksemplari që instaluar fillimisht jepte gabime dhe vlera kaotike në linjën e 15-të të dhënave. Më duhej disa ditë për të gjetur gabimet harduerike, dhe ndjenja e kënaqësisë ishte më e madhe kur zëvendësova çipin e dëmtuar me një të mirë. Megjithatë, shpejtësia e punës me memorie të jashtme lë shumë për të dëshiruar.
Bus-i i jashtëm dhe mënyra StandAloneMikrokontrollori K1986BE1QI (ajrore) ka një mënyrë unike StandAlone, e cila është paraparë për qasje të drejtpërdrejtë nga jashtë në kontrollorët Ethernet dhe MKIO (MIL_STD_1553) përmes bus-it të jashtëm, ndërsa bërthama është në gjendje rikuperimi, dmth. nuk përdoret. Kjo mënyrë është e përshtatshme për procesorët dhe FPGA-të që nuk kanë Ethernet dhe/ose MKIO.
Skema e lidhjes është si vijon:
- bus-i i të dhënave të MCU (D0-D15) => SRAM (I/O0-I/O15),
- bus-i i adresës së MCU (A1-A18) => SRAM (A0-A17),
- kontrolli i MCU (nWR, nRD, PortC2) => SRAM (WE, OE, CE),
- SRAM (UB, LB) janë të lidhura ose të tërhequra në tokë përmes një rezistori.
Linia CE është e tërhequr në energji përmes një rezistori, pinët për ndarjen e bajtëve të MCU (BE0-BE3) nuk përdoren. Nën spoiler po jap kodin e inicializimit të porteve dhe kontrollorit të bus-it të jashtëm.
Inicializimi i porteve dhe kontrollorit EBC (kontrollori i bus-it të jashtëm)
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);
}
Mikrokontrolleri në paketim LQFP-144 dhe memoria në paketim TSOP-44 kanë shumë lidhje të ndërlidhura dhe zënë shumë vend në bordin e printuar. Duke patur përvojë në zgjidhjen e problemeve optimizuese në fushën e ekonomisë, më ishte evidente se për vendosjen e këtyre mikroskemeve në bord, ato duhet të ishin në radhë të parë. Në burime të ndryshme kam hasur në komente të lëvduara për . E shkarkova versionin provë (trial) dhe arrita ta eksportoja projektin tim nga Eagle CAD vetëm kur fshiva pothuajse të gjitha komponentët. Fatkeqësisht, edhe 10 elemente, software TopoR nuk arriti t'i vendoste në bord. Së pari, të gjitha komponentët u vendosën në qoshe, e më pas u shpërndanë përgjatë kufirit. Ky opsion nuk më kënaqte, dhe kalova një kohë të gjatë duke kryer trajektoren e bordit në modin manual në ambientin e njohur Eagle CAD.
Një element i rëndësishëm i një pllake të printuar është serigrafia. Në pllakën e përcaktuesit duhet të ketë jo vetëm nënshkrime për komponentët elektronikë, por gjithashtu duhet të jenë të nënshkruara të gjitha portet. Në anën e prapme të pllakës, kam vendosur tabela-memorie me funksionet e porteve të kontrolerëve (themelore, alternative, të tejkaluara, aktuale). Prodhimin e pllakave të printuara e kam porositur në Kinë në një kompani të njohur PCBWay. Nuk do ta përshkruaj mirë, sepse cilësia është e mirë. Ata mund të bëjnë më mirë, me toleranca më të vogla, por .

Pllakat e printuara MDB1986, (c) Foto e autorit
Më duhej të ndërfutja komponentët "në gjunjë" me një saldator 40-watt dhe me llak POS-61, sepse saldoj rrallë, 1-2 herë në vit, dhe pasta salduese ishte thyer. Gjithashtu, më duhej të zëvendësoja kontrolluesin kinez CS32F103 me origjinalin STM32F103, dhe pastaj ndërrimin e memories. Në përgjithësi, tani jam plotësisht i kënaqur me rezultatin, ndonëse ende nuk e kam testuar funksionin RS-232 dhe CAN.

Pllaka e përcaktuesit MDB1986 në punë - ndriçon dhe ngre temperaturën, (c) Foto e autorit
Në faqen e "Milandr" mund të gjeni mjaft serisë 1986BE9 (nëndërtimi Cortex-M3), por për mikrocontroler K1986BE1QI (aviacion) nuk shoh asgjë atje. Pasi shqyrtova materialet e publikuara atje, metodologjitë dhe punimet laboratorike për universitetet, jam i gëzuar që po përgatiten specialistë në të gjithë vendin për të punuar me kontrolerë rusë. Shumica e materialeve mësimore përgatit për punë me porta hyrëse-dalëse, timerë, ADC, DAC, SPI, UART. Përdoren mjedise të ndryshme zhvillimi IDE (Keil, IAR, CodeMaster). Diku programojnë duke përdorur regjistrat CMSIS, kurse diku përdorin MDR Library. Duhet të përmendet burimi , i cili përmban një numër artikujsh nga programues të praktikës. Dhe, sigurisht, nuk duhet të harrojmë për .
Diskutimi mbi MilandrMikroelektronika nĂ« Rusi po zhvillohet, dhe nĂ« kĂ«tĂ« proces, kompania "Milandr" luan njĂ« rol tĂ« rĂ«ndĂ«sishĂ«m. Po shfaqen mikrocontrolerĂ« tĂ« rinj interesantĂ«, si 1986BE81T dhe "Elektronsila" me ndĂ«rfaqe SpaceWire dhe MKIO (tĂ« njĂ«jtĂ« si nĂ« 1986BE1 dhe ndoshta me tĂ« njĂ«jtat probleme), etj. Por pĂ«r studentĂ«t e zakonshĂ«m, ProfesorĂ«t dhe inxhinierĂ«t civilĂ«, blerja e kĂ«tyre çipeve nuk Ă«shtĂ« e mundshme. Kjo do tĂ« thotĂ« se komuniteti i inxhinierĂ«ve nuk do tĂ« mund tĂ« identifikojĂ« shpejt gabimet dhe problemet e kĂ«tij çipi. MĂ« duket se fillimisht duhet tĂ« prodhohen çipe nĂ« njĂ« trup plastik, tĂ« shpĂ«rndahen midis tĂ« gjitha palĂ«ve tĂ« interesuara, dhe mbas testimit (lat. approbatio â miratim, njohje) nga specialistĂ«t, mund tĂ« pĂ«rgatitet njĂ« revizim nĂ« njĂ« trup metal-keraamik me mbrojtje nga tĂ« gjitha faktorĂ«t e tmerrshĂ«m. Shpresoj se nĂ« tĂ« ardhmen e afĂ«rt do tĂ« na gĂ«zojnĂ« tĂ« gjithĂ« me projektet e reja tĂ« shpallura nĂ« ekspozita.
Ădo kush mund tĂ« riprodhojĂ«, modifikojĂ« dhe pĂ«rdorĂ« pllakĂ«n e debugging qĂ« kam zhvilluar gjatĂ« procesit mĂ«simor. NĂ« tĂ« vĂ«rtetĂ«, unĂ« e kam krijuar pllakĂ«n pĂ«r veten time, por doli kaq mirĂ«, sa qĂ« .
K1986BE1QI (aviacion) është një kontrollues shumë interesant me interfaca unike, i cili mund të përdoret në universitete për të mësuar studentët. Mendoj se pas korrigjimit të gabimeve të gjetura në kontrollues dhe kalimit të provimeve të certifikimit, kontrolluesi do të fluturojë në kuptimin e vërtetë të fjalës!
Burimi: habr.com
