
Para disa vitesh u njoha me mikrokontrollorët rusë të kompanisë Milandr. Ishte viti 2013, kur inxhinierët diskutonin intensivisht rezultatet e para të programit federal të synuar «Zhvillimi i bazës së komponentëve elektronikë dhe radioelektronikës» për vitet 2008-2015. Në atë kohë tashmë ishte lëshuar kontrollori K1986VE9x (bërthama Cortex-M3), ndërsa sapo kishte dalë kontrollori 1986VE1T (bërthama Cortex-M1). Në variantin me trup plastik LQFP-144, në dokumentacion ai kishte shënimin K1986VE1QI (aviacion), ndërsa në vetë mikroqarkun ishte shënuar MDR32F1QI. Në faqen e prodhuesit ai ka sufiksin «aviacion», pasi ka ndërfaqe specifike për industrinë e aviacionit (ARINC 429, MIL_STD_1553).
ĂuditĂ«risht, nĂ« kohĂ«n kur kĂ«ta kontrollorĂ« po shpĂ«rndaheshin, kompania «Milandr» kishte pĂ«rgatitur komplete debugimi dhe njĂ« bibliotekĂ« nĂ«nprogramesh pĂ«r punĂ« me periferinĂ«, «por pa asnjĂ« garanci apo detyrim shtesĂ« pĂ«r korrektĂ«sinĂ« e bibliotekĂ«s». Biblioteka i ngjan Standard Peripheral Library tĂ« kompanisĂ« STMicroelectronics. NĂ« pĂ«rgjithĂ«si, tĂ« gjithĂ« kontrollorĂ«t ARM tĂ« ndĂ«rtuar mbi bĂ«rthamĂ«n Cortex-M kanĂ« shumĂ« tĂ« pĂ«rbashkĂ«ta. PĂ«r kĂ«tĂ« arsye, njohja me kontrollorĂ«t e rinj rusĂ« eci shpejt. NdĂ«rsa pĂ«r ata qĂ« blinin kompletet origjinale tĂ« debugimit ofrohej mbĂ«shtetje teknike gjatĂ« pĂ«rdorimit.

Kompleti i debugimit për mikrokontrollorin 1986VE1T, © Milandr
Megjithatë, me kalimin e kohës filluan të shfaqeshin «sëmundjet e fëmijërisë» të mikroqarqeve dhe bibliotekave të reja. Shembujt testues të firmware-it funksiononin pa probleme të dukshme, por pas modifikimeve të konsiderueshme fillonin të shfaqeshin dështime dhe gabime. «Dallëndyshja» e parë në praktikën time ishin dështime të pashpjegueshme në punën e CAN-kontrollorit. Një vit më vonë, te kontrollori 1986VE1T (aviacion) i një revizioni të hershëm u zbulua një problem me modulin . Në përgjithësi, të gjitha revizionet e këtyre mikrokontrollorëve deri në vitin 2016 ishin të përdorshme vetëm me kufizime. U shpenzuan shumë kohë dhe nerva për identifikimin e këtyre problemeve, konfirmimi i të cilave sot mund të gjendet në .
Një veçori e pakëndshme ishte se duhej të punohej dhe të zgjidheshin gabimet jo në pllaka debug-uese, por në pllakat prototip të pajisjeve që planifikoheshin për prodhim serik në fabrikë. Përveç lidhësit JTAG, zakonisht nuk kishte asgjë tjetër. Lidhja e një analizuesi logjik ishte e vështirë dhe jo praktike, ndërsa LED-et dhe ekranet zakonisht mungonin. Pikërisht për këtë arsye më lindi ideja për të krijuar pllakën time të debug-ut.
Nga njëra anë, në treg kishte komplete zyrtare debug-uese, si edhe pllaka shumë të mira nga kompania LDM-Systems e Zelenogradit. Nga ana tjetër, çmimet e këtyre produkteve të lënë pa fjalë, ndërsa funksionaliteti bazë pa pllaka zgjerimi nuk i përmbush pritshmëritë. Një pllakë me kontrollues të salduar dhe me lidhës pin nuk paraqet interes për mua. Ndërsa pllakat më interesante kushtojnë shtrenjtë.

Pllaka e debug-ut MILANDR LDM-HELPER-K1986BE1QI-FULL, © LDM Systems
Te kompania âMilandrâ, politika e çmimeve dhe marketingu janĂ« disi tĂ« veçanta. PĂ«r shembull, ekziston mundĂ«sia pĂ«r tĂ« marrĂ« falas mostra tĂ« disa mikroqarqeve, por kjo Ă«shtĂ« e disponueshme vetĂ«m pĂ«r persona juridikĂ« dhe shoqĂ«rohet me njĂ« rrugĂ«tim burokratik. NĂ« pĂ«rgjithĂ«si, mikroqarqet me paketim metal-qeramik janĂ« âtĂ« artaâ si nĂ« kuptimin e drejtpĂ«rdrejtĂ«, ashtu edhe nĂ« atĂ« figurativ. PĂ«r shembull, kontrolluesi 1986ĐĐ1Đą nĂ« MoskĂ« kushton nga 14 deri nĂ« 24 mijĂ« rubla. Mikroqarqja e memories statike 1645Đ ĐŁ6ĐŁ kushton nga 15000 rubla. Dhe ky nivel çmimesh vlen pĂ«r tĂ« gjithĂ« gamĂ«n e produkteve. Si rezultat, edhe institutet kĂ«rkimore tĂ« specializuara me porosi shtetĂ«rore kursejnĂ« dhe tĂ«rhiqen nga kĂ«to çmime. Mikroqarqet me paketim plastik pĂ«r pĂ«rdorim civil janĂ« dukshĂ«m mĂ« tĂ« lira, por nuk gjenden nĂ« stok te furnitorĂ«t e njohur. PĂ«r mĂ« tepĂ«r, cilĂ«sia e mikroqarqeve me paketim plastik, sipas mendimit tim, Ă«shtĂ« mĂ« e dobĂ«t se ajo e varianteve âtĂ« artaâ. PĂ«r shembull, unĂ« nuk arrita ta vĂ« nĂ« punĂ« kontrolluesin K1986BE1QI nĂ« frekuencĂ«n 128MHz pa rritur parametrin flash latency. NĂ« tĂ« njĂ«jtĂ«n kohĂ«, temperatura e kĂ«tij kontrolluesi u rrit nĂ« 40-50C. NdĂ«rsa kontrolluesi 1986BE1T (âi artĂ«â) u nis nĂ« 128MHz pa konfigurime shtesĂ« dhe mbeti i ftohtĂ«. Ai Ă«shtĂ« vĂ«rtet i mirĂ«.

Mikrokontrolluesi âi artĂ«â 1986BE1T, (c) Milandr
Pata fat qĂ« mikro-kontrolluesi nĂ« paketim plastik gjithsesi mund tĂ« blihej me pakicĂ« te kompania LDM Systems, ndĂ«rsa tĂ« gjitha skemat e pllakave janĂ« tĂ« disponueshme publikisht. E keqja Ă«shtĂ« se nĂ« faqen e internetit, nĂ« fotografinĂ« e kontrolluesit, shihet shĂ«nimi qĂ« tregon se bĂ«het fjalĂ« pĂ«r rishikimin 4 tĂ« vitit 2014, pra me defekte. GjatĂ« mendova nĂ«se ta blija apo jo. KĂ«shtu kaluan disa viteâŠ
Ideja pĂ«r krijimin e njĂ« pllake debugimi nuk u zhduk askund. Gradualisht formova tĂ« gjitha kĂ«rkesat dhe mendoja si tâi vendosja tĂ« gjitha nĂ« njĂ« pllakĂ« tĂ« vetme, qĂ« tĂ« dilte kompakte dhe jo e kushtueshme. Paralelisht, porosisja nga kinezĂ«t komponentĂ«t qĂ« mungonin. Nuk nxitoja askund â gjithçka e bĂ«ja pĂ«r veten time. FurnitorĂ«t kinezĂ« njihen pĂ«r pakujdesinĂ« e tyre â mĂ« Ă«shtĂ« dashur tĂ« porosis tĂ« njĂ«jtĂ«n gjĂ« nĂ« vende tĂ« ndryshme pĂ«r tĂ« marrĂ« gjithçka qĂ« mĂ« nevojitej. PĂ«r mĂ« tepĂ«r, njĂ« pjesĂ« e çipeve tĂ« memories dolĂ«n tĂ« pĂ«rdorura mĂ« parĂ« â dukshĂ«m tĂ« çmontuara nga pajisje tĂ« prishura. Kjo mĂ« doli problem mĂ« vonĂ«.
TĂ« blesh mikro-kontrolluesin Milandr K1986BE1QI (aviacion) nuk Ă«shtĂ« njĂ« detyrĂ« e thjeshtĂ«. NĂ« tĂ« njĂ«jtin dyqan «Chip i Dip», te seksioni «Pozicione me porosi», gjeta vetĂ«m K1986BE92QI pĂ«r 740 rubla, por ai nuk mĂ« pĂ«rshtatej. I vetmi variant ishte ta blija te kompania LDM-Systems pĂ«r 2000 rubla, nĂ« njĂ« rishikim jo tĂ« ri. MeqĂ« nuk munda tĂ« gjeja zĂ«vendĂ«sim askund tjetĂ«r, vendosa tĂ« blej atĂ« qĂ« kishte. PĂ«r habinĂ« time tĂ« kĂ«ndshme, mĂ« shitĂ«n njĂ« kontrollues krejt tĂ« ri, prodhim i dhjetorit 2018, rishikimi 6+ (1820). NdĂ«rkohĂ«, nĂ« faqe ende Ă«shtĂ« fotografia e vjetĂ«r dhe, nĂ« momentin e shkrimit tĂ« kĂ«tij artikulli, kontrolluesi nuk gjendet nĂ« stokâŠ

Mikro-kontrolluesi K1986BE1QI (aviacion) në paketim teknik, (c) Foto e autorit
Karakteristikat kryesore teknike të pllakës sime të debugimit MDB1986 janë si më poshtë:
- debugger-programues i integruar, i pajtueshëm me J-Link dhe CMSIS-DAP;
- memorie statike 4 Mbit (256k x 16, 10 ns);
- çip memorie flash 64 Mbit, Winbond 25Q64FVSIG;
- marrës-transmetues i ndërfaqes RS-232 me linjat RTS dhe CTS;
- ndërfaqe dhe konektorë për Ethernet, USB, CAN;
- kontrollues i ekranit 7-segmentësh MAX7221;
- konektor me pinë për punë me MKIO (MIL_STD_1553) dhe ARINC429;
- fototranzistor Everlight PT17-21C;
- pesë LED me ngjyra, buton reset dhe dy butona përdoruesi;
- furnizim me energji nga porta USB 5 volt;
- përmasat e pllakës së qarkut të shtypur 100 x 80 mm
Më pëlqenin pllakat e serisë STM-Discovery sepse kanë programuesin-debager të integruar ST-Link. ST-Link origjinal funksionon vetëm me mikrokontrolluesit e kompanisë STMicroelectronics, por para disa vitesh u shfaq mundësia të përditësohej firmware-i i ST-Link dhe të merrej SEGGER J-Link OB (on-board) Debugger. Nga ana juridike ekziston kufizimi që një debager i tillë të përdoret vetëm me pllakat STMicroelectronics, por në praktikë potenciali i tij nuk është i kufizuar. Kështu, duke pasur J-Link OB, në pllakën e zhvillimit mund të kesh një programues-debager të integruar. Vlen të theksohet se në produktet e «LDM-Systems» përdoret konvertuesi CP2102 (Usb2Uart), i cili mund të bëjë vetëm programimin.

Mikrokontrolluesit STM32F103C8T6, origjinalë dhe jo fort, (c) Foto e autorit
Pra, duhej tĂ« blihej njĂ« STM32F103C8T6 origjinal, sepse firmware-et zyrtare nuk do tĂ« funksiononin siç duhet me njĂ« klon. Kisha dyshime pĂ«r kĂ«tĂ« pohim dhe vendosa tĂ« provoj nĂ« praktikĂ« kontrolluesin CS32F103C8T6 tĂ« kompanisĂ« kineze CKS. PĂ«r vetĂ« kontrolluesin nuk kam ankesa, por firmware-i zyrtar i ST-Link nuk funksionoi nĂ« tĂ«. J-Link punonte pjesĂ«risht: pajisja USB njihej, por programuesi nuk kryente funksionet e veta dhe vazhdimisht sinjalizonte se ishte âdefectiveâ.

Gabim gjatë punës së debagerit me një kontrollues jo origjinal
Nuk u ndala me kaq dhe fillimisht shkrova firmware për ndezje-fikje të LED-it, e më pas realizova kërkesën për IDCODE sipas protokollit JTAG. Programuesi ST-Link që kisha në pllakën Discovery dhe programi ST-Link Utility e programonin pa probleme CS32F103C8T6. Si përfundim, u binda se pllaka ime funksionon. Për gëzimin tim, kontrolluesi i synuar K1986VE1QI (aviacion) e kthente me lehtësi IDCODE-in e tij përmes linjës TDO.

Oscilogrami i linjës së sinjalit TDO me përgjigjen e koduar IDCODE, (c) Foto e autorit

Ja ku hyri në punë porta SWD për debagimin e vetë debagerit dhe verifikimin e IDCODE
Mbeti vetëm varianti me debagerin . Të ndërtosh projektin nga burimet e ARM nuk është punë e lehtë, unë mora projektin nga , e më pas provova edhe DAP42. Fatkeqësisht, Keil uVision ngrinte dhe nuk donte të punonte me to. Në fund, zëvendësova çipin e debagerit me një STM32F103C8T6 origjinal dhe nuk iu ktheva më këtij problemi.

Funksionim i suksesshëm i debagerit të integruar J-Link STLink V2
Kur tĂ« gjithĂ« komponentĂ«t kryesorĂ« tĂ« pllakĂ«s sĂ« ardhshme tĂ« zhvillimit ishin tashmĂ« nĂ« dispozicion, hapa Eagle CAD dhe zbulova se mungonin nĂ« bibliotekĂ«n e komponentĂ«ve. Nuk kisha zgjidhje tjetĂ«r, ndaj mâu desh tâi vizatoja vetĂ«. NjĂ«kohĂ«sisht pĂ«rgatita edhe footprint-et pĂ«r memorien, lidhĂ«sin HanRun pĂ«r Ethernet dhe shtova konture pĂ«r rezistorĂ«t dhe kondensatorĂ«t. Skedarin e projektit dhe bibliotekĂ«n e komponentĂ«ve mund tâi gjeni .
Skema elektrike e pllakĂ«s sĂ« zhvillimit MDB1986
Pllaka furnizohet me rrymë nga një burim DC prej 5 voltësh, i marrë nga porta USB. Në total, në pllakë ka dy porta USB Type-B. Njëra shërben për programuesin, ndërsa tjetra për kontrolluesin K1986BE1QI. Pllaka mund të punojë nga secili prej këtyre burimeve veçmas ose nga të dy njëkohësisht. Rregullimi më i thjeshtë i ngarkesës dhe mbrojtja e linjave të furnizimit realizohen me dioda Schottky, të shënuara në skemë si D2 dhe D3 (SS24). Gjithashtu, në skemë mund të shihen edhe siguresat vetërikthyese F1 dhe F2 me 500 mA. Linjat e sinjalit të portës USB mbrohen nga grupi i diodave USBLC6-2SC6.
Skema e debugger-it/programuesit ST-Link është e njohur për shumëkënd dhe mund të gjendet në dokumentacionin e pllakave STM32-Discovery si edhe në burime të tjera. Për flashimin fillestar të klonit ST-Link/J-Link-OB/DAP (sipas zgjedhjes) nxora linjat SWDIO (PA13), SWCLK (PA14), GND. Shumë veta përdorin UART për flashim dhe detyrohen të lëvizin jumper-at BOOT. Por për mua SWD është më i përshtatshëm; përveç kësaj, ky protokoll mundëson edhe debugim.
Pothuajse të gjithë komponentët e pllakës furnizohen me 3.3 volt, të cilët vijnë nga rregullatori i tensionit AMS1117-3.3. Për shtypjen e ndërhyrjeve elektromagnetike dhe impulseve të rrymës përdoren filtra LC të përbërë nga kondensatorë dhe mbytësa të serisë BLM31PG.
Veçmas vlen tĂ« pĂ«rmendet drejtuesi i ekranit 7-segmentĂ«sh MAX7221. Sipas specifikimit, furnizimi i rekomanduar Ă«shtĂ« nga 4 deri nĂ« 5.5 volt, ndĂ«rsa niveli i sinjalit tĂ« lartĂ« (njĂ«sia logjike) duhet tĂ« jetĂ« jo mĂ« pak se 3.5 V (0.7 x VCC) kur furnizohet me 5 V. Te kontrolluesi Đ1986ĐĐ1QI (avia), dalja e njĂ«sisĂ« logjike korrespondon me njĂ« tension nga 2.8 deri nĂ« 3.3 V. ĂshtĂ« e qartĂ« se ka mospĂ«rputhje tĂ« niveleve tĂ« sinjalit, e cila mund tĂ« pengojĂ« funksionimin normal. Vendosa ta furnizoj MAX7221 me 4 V dhe tâi ulim nivelet e sinjalit nĂ« 2.8 V (0.7 x 4 = 2.8). PĂ«r kĂ«tĂ«, nĂ« seri nĂ« qarkun e furnizimit tĂ« drejtuesit Ă«shtĂ« vendosur dioda D4 (RS1A ose FR103). Si pĂ«rfundim, rĂ«nia e tensionit Ă«shtĂ« 0.9 V (dioda Schottky 0.3 V dhe dioda 0.6 V), dhe gjithçka funksionon.
Shumica e porteve të mikrokontrollerit K1986VE1QI (aviacion) janë të përputhshme me sinjale deri në 5V. Prandaj, përdorimi i transceiver-it CAN MCP2551, i cili gjithashtu punon me 5V, nuk paraqet problem. Si transceiver RS-232 në skemë është shënuar mikroskema MAX3232, por në të vërtetë unë përdora SN65C3232D nga Texas Instruments, sepse punon me 3.3V dhe ofron shpejtësi deri në 1Mbit/s.
Në pllakë janë vendosur 4 rezonatorë kuarci: një për debugger-in (8MHz) dhe tre për mikrokontrollerin e synuar K1986VE1QI (aviacion) me vlera 32.768kHz, 16MHz dhe 25MHz. Këta janë komponentë të domosdoshëm, sepse parametrat e gjeneratorit të integruar RC luhaten në një interval të gjerë nga 6 deri në 10 MHz. Frekuenca 25MHz është e nevojshme për funksionimin e kontrolluesit të integruar Ethernet. Në faqen e Milandr-it, ndoshta gabimisht, përmendet se në paketimin plastik Ethernet mungon. Megjithatë, ne do të mbështetemi te specifikimi dhe faktet.
NjĂ« shtysĂ« e rĂ«ndĂ«sishme pĂ«r krijimin e pllakĂ«s sime tĂ« debug-ut ishte mundĂ«sia pĂ«r tĂ« punuar me shinĂ«n e jashtme tĂ« sistemit EBC (external bus controller), e cila nĂ« thelb Ă«shtĂ« njĂ« port paralel. Mikrokontrolleri K1986VE1QI (aviacion) lejon lidhjen dhe pĂ«rdorimin e mikroskemave tĂ« jashtme tĂ« memories dhe pajisjeve periferike, pĂ«r shembull ADC, FPGA etj. MundĂ«sitĂ« e shinĂ«s sĂ« jashtme tĂ« sistemit janĂ« mjaft tĂ« gjera: mund tĂ« punohet me SRAM, ROM dhe NAND Flash statike 8-bitĂ«she, 16-bitĂ«she dhe 32-bitĂ«she. PĂ«r leximin/shkrimin e tĂ« dhĂ«nave 32-bitĂ«she, kontrolluesi mund tĂ« kryejĂ« automatikisht 2 operacionet pĂ«rkatĂ«se pĂ«r mikroskemat 16-bitĂ«she, ndĂ«rsa pĂ«r ato 8-bitĂ«she 4 operacione. ĂshtĂ« e qartĂ« se njĂ« operacion hyrje-dalje 32-bitĂ«sh do tĂ« ekzekutohet mĂ« shpejt me njĂ« bus tĂ« dhĂ«nash 32-bitĂ«sh. NdĂ«r mangĂ«sitĂ« mund tĂ« pĂ«rmendet nevoja qĂ« programi tĂ« operojĂ« me tĂ« dhĂ«na 32-bitĂ«she, ndĂ«rsa nĂ« pllakĂ« do tĂ« duhet tĂ« kalohen 32 gjurmĂ«.

Mikroskema SRAM të përdorura (gjeje cila ka defekt)
NjĂ« zgjidhje e balancuar Ă«shtĂ« pĂ«rdorimi i mikroskemave tĂ« memories 16-bitĂ«she. UnĂ« kisha nĂ« dispozicion mikroskema nga Integrated Silicon Solutions Inc. (ISSI IS61LV25616AL, 16 x 256k, 10 ns, 3.3V). Natyrisht, kompania «Milandr» ka edhe mikroskemat e veta tĂ« memories statike por ato janĂ« shumĂ« tĂ« shtrenjta dhe tĂ« vĂ«shtira pĂ«r tâu gjetur. Si alternativĂ« mund tĂ« pĂ«rdoren Samsung K6R4016V1D me dalje tĂ« pĂ«rputhshme. MĂ« herĂ«t pĂ«rmenda se çipat rezultuan tĂ« pĂ«rdorur dhe mostra qĂ« instalova fillimisht jepte gabime dhe vlera kaotike nĂ« linjĂ«n e 15-tĂ« tĂ« tĂ« dhĂ«nave. Mâu deshĂ«n disa ditĂ« pĂ«r tĂ« gjetur problemet harduerike dhe aq mĂ« i madh ishte kĂ«naqĂ«sia kur zĂ«vendĂ«sova çipin e dĂ«mtuar me njĂ« funksional. SidoqoftĂ«, shpejtĂ«sia e punĂ«s me memorien e jashtme lĂ« pĂ«r tĂ« dĂ«shiruar.
Magjistralja e jashtme dhe modaliteti StandAloneMikrokontrolluesi Đ1986ĐĐ1QI (aviacion) ka njĂ« modalitet unik StandAlone, i cili Ă«shtĂ« projektuar pĂ«r qasje tĂ« drejtpĂ«rdrejtĂ« nga jashtĂ« te kontrollorĂ«t Ethernet dhe MKIO (MIL_STD_1553) pĂ«rmes magjistrales sĂ« jashtme, ndĂ«rsa bĂ«rthama ndodhet nĂ« gjendje resetimi, pra nuk pĂ«rdoret. Ky modalitet Ă«shtĂ« i pĂ«rshtatshĂ«m pĂ«r procesorĂ« dhe FPGA qĂ« nuk kanĂ« Ethernet dhe/ose MKIO.
Skema e lidhjes është si më poshtë:
- magjistralja e të dhënave MCU(D0-D15) => SRAM(I/O0-I/O15),
- magjistralja e adresave MCU(A1-A18) => SRAM(A0-A17),
- kontrolli MCU(nWR,nRD,PortC2) => SRAM (WE,OE,CE),
- SRAM(UB,LB) janë të lidhura ose tërhiqen në tokë përmes një rezistori.
Linja CE është tërhequr te furnizimi përmes një rezistori, pinët për përzgjedhjen e bajtit MCU(BE0-BE3) nuk përdoren. Nën spoiler po jap kodin e inicializimit të porteve dhe të kontrollorit të magjistrales së jashtme.
Inicializimi i porteve dhe i kontrollorit 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);
//--------------------------------------------//
// TĂ DHĂNAT 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);
//--------------------------------------------//
// Adresat PF3-PF15 (A0..A12), A0 - nuk përdoret. //
//--------------------------------------------//
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);
//--------------------------------------------//
// Adresat 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);
//--------------------------------------------//
// Adresat PE3, PE4 (A17, A18) //
//--------------------------------------------//
initStruct.PORT_FUNC = PORT_FUNC_ALTER;
initStruct.PORT_Pin = PORT_Pin_3 | PORT_Pin_4;
PORT_Init (MDR_PORTE, &initStruct);
//--------------------------------------------//
// Kontrolli PC0,PC1 (nWE,nOE) //
//--------------------------------------------//
initStruct.PORT_FUNC = PORT_FUNC_MAIN;
initStruct.PORT_Pin = PORT_Pin_0 | PORT_Pin_1;
PORT_Init (MDR_PORTC, &initStruct);
//--------------------------------------------//
// Kontrolli 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);
//--------------------------------------------//
// Inicializimi i kontrolluesit EBC //
//--------------------------------------------//
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);
// Aktivizo RAM-in (nCE)
PORT_ResetBits (MDR_PORTC, MDB_SRAM_CE);
}
Mikrokontrolluesi nĂ« paketim LQFP-144 dhe memoria nĂ« paketim TSOP-44 kanĂ« shumĂ« pinĂ« tĂ« ndĂ«rlidhur dhe zĂ«nĂ« shumĂ« hapĂ«sirĂ« nĂ« pllakĂ«n e qarkut tĂ« printuar. Duke pasur pĂ«rvojĂ« nĂ« zgjidhjen e detyrave tĂ« optimizimit nĂ« fushĂ«n e ekonomisĂ«, pĂ«r mua ishte e qartĂ« se kĂ«to mikroqarqe duhej tĂ« vendoseshin tĂ« parat nĂ« pllakĂ«. NĂ« burime tĂ« ndryshme kisha hasur vlerĂ«sime shumĂ« pozitive pĂ«r . Shkarkova versionin provĂ« (trial) dhe arrita ta eksportoja aty projektin tim nga Eagle CAD vetĂ«m pasi hoqa pothuajse tĂ« gjithĂ« komponentĂ«t. FatkeqĂ«sisht, edhe me 10 elemente programi TopoR nuk mĂ« ndihmoi tâi vendosja nĂ« pllakĂ«. Fillimisht tĂ« gjithĂ« komponentĂ«t u vendosĂ«n nĂ« njĂ« cep, e mĂ« pas u rreshtuan pĂ«rgjatĂ« skajit. Kjo zgjidhje nuk mĂ« pĂ«rshtati dhe pĂ«r njĂ« kohĂ« tĂ« gjatĂ« e bĂ«ra trasimin e pllakĂ«s manualisht nĂ« mjedisin e njohur Eagle CAD.
NjĂ« element i rĂ«ndĂ«sishĂ«m i pllakĂ«s sĂ« qarkut tĂ« printuar Ă«shtĂ« silkscreen-i. NĂ« pllakĂ«n e zhvillimit duhet tĂ« ketĂ« jo vetĂ«m shĂ«nime pĂ«r komponentĂ«t elektronikĂ«, por edhe tĂ« gjithĂ« lidhĂ«sit duhet tĂ« jenĂ« tĂ« etiketuar. NĂ« anĂ«n e pasme tĂ« pllakĂ«s vendosa tabela ndihmĂ«se me funksionet e porteve tĂ« kontrolluesit (kryesor, alternativ, i ricaktuar, faktik). Prodhimin e pllakave tĂ« qarkut tĂ« printuar e porosita nĂ« KinĂ«, te kompania e njohur PCBWay. Nuk do tâi lavdĂ«roj, sepse cilĂ«sia Ă«shtĂ« e mirĂ«. Ata mund ta bĂ«jnĂ« edhe mĂ« mirĂ«, me toleranca mĂ« tĂ« vogla, por .

Pllakat e prodhuara MDB1986, (c) Foto e autorit
KomponentĂ«t mâu desh tâi saldoja nĂ« kushte improvizuara me njĂ« hekur saldimi 40 W dhe kallaj POS-61, sepse saldoj rrallĂ«, 1â2 herĂ« nĂ« vit, dhe pasta e saldimit ishte tharĂ«. Mâu desh gjithashtu tĂ« zĂ«vendĂ«soja kontrolluesin kinez CS32F103 me STM32F103 origjinal, e mĂ« pas tĂ« zĂ«vendĂ«soja edhe memorien. NĂ« pĂ«rgjithĂ«si, tani jam plotĂ«sisht i kĂ«naqur me rezultatin, megjithĂ«se ende nuk e kam testuar funksionimin e RS-232 dhe CAN.

Pllaka e zhvillimit MDB1986 nĂ« punĂ« â ndriçon dhe ngroh, (c) Foto e autorit
NĂ« faqen e internetit tĂ« âMilandrâ mund tĂ« gjeni mjaftueshĂ«m seria 1986BE9 (bĂ«rthama Cortex-M3), por pĂ«r mikrokontrolluesin K1986ĐĐ1QI (aviacion) nuk shoh aty asgjĂ«. Duke shqyrtuar materialet e publikuara atje, udhĂ«zuesit metodikĂ« dhe punĂ«t laboratorike pĂ«r universitetet, mĂ« gĂ«zon fakti qĂ« nĂ« tĂ« gjithĂ« vendin po pĂ«rgatiten specialistĂ« pĂ«r tĂ« punuar me kontrollues rusĂ«. Shumica e materialeve mĂ«simore pĂ«rgatisin pĂ«r punĂ« me portat hyrje-dalje, timerat, ADC, DAC, SPI, UART. PĂ«rdoren mjedise tĂ« ndryshme zhvillimi IDE (Keil, IAR, CodeMaster). Diku programohet me regjistrat CMSIS, ndĂ«rsa diku pĂ«rdoret MDR Library. Duhet pĂ«rmendur burimi , i cili pĂ«rmban jo pak artikuj nga programues praktikĂ«. Dhe, sigurisht, nuk duhet harruar .
Mendime pĂ«r MilandrMikroelektronika nĂ« Rusi po zhvillohet, dhe nĂ« kĂ«tĂ« proces kompania «Milandr» luan njĂ« rol tĂ« dukshĂ«m. Po shfaqen mikrokontrollues tĂ« rinj interesantĂ«, pĂ«r shembull 1986ĐĐ81Đą dhe «Elektrosila» me ndĂ«rfaqe SpaceWire dhe MKIO (i njĂ«jtĂ« si te 1986BE1 dhe, ndoshta, me tĂ« njĂ«jtat probleme), etj. Por pĂ«r studentĂ«t e zakonshĂ«m, pedagogĂ«t dhe inxhinierĂ«t civilĂ« Ă«shtĂ« joreale tĂ« blejnĂ« çipe tĂ« tilla. 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 çipa nĂ« paketim plastik, tĂ« shpĂ«rndahen te tĂ« gjithĂ« tĂ« interesuarit, dhe vetĂ«m pas aprovimit nga specialistĂ«t (lat. approbatio â miratim, njohje) tĂ« pĂ«rgatitet njĂ« rishikim nĂ« paketim metal-qeramik me mbrojtje nga tĂ« gjithĂ« faktorĂ«t kritikĂ«. Shpresoj qĂ« nĂ« tĂ« ardhmen e afĂ«rt projektet e reja tĂ« prezantuara nĂ« panaire tĂ« na gĂ«zojnĂ« TĂ GJITHĂVE.
Pllakën e zhvillimit që kam projektuar, kushdo mund ta riprodhojë, modifikojë dhe përdorë në procesin mësimor. Fillimisht e ndërtova për veten time, por doli aq mirë saqë .
K1986ĐĐ1QI (aviacion) Ă«shtĂ« njĂ« kontrollues shumĂ« interesant me ndĂ«rfaqe unike, i cili mund tĂ« pĂ«rdoret nĂ« universitete pĂ«r trajnimin e studentĂ«ve. Besoj se pas korrigjimit tĂ« gabimeve tĂ« zbuluara nĂ« kontrollues dhe kalimit tĂ« testeve tĂ« certifikimit, ky kontrollues do tĂ« fluturojĂ« nĂ« kuptimin e drejtpĂ«rdrejtĂ« tĂ« fjalĂ«s!
Burimi: habr.com
