Zhvillimi i një bordi zhvillimi për K1986BE1QI (aviacion)

Zhvillimi i një bordi zhvillimi për K1986BE1QI (aviacion)

Disa vite më parë u njoha me mikrokontrolluesit rusë nga Milander. Ishte viti 2013, kur inxhinierët po diskutonin fuqishëm rezultatet e para të Programit Federal të Targetit "Zhvillimi i bazës së komponentëve elektronikë dhe elektronikës radio" për 2008-2015. Në atë kohë, kontrolluesi K1986BE9x (core Cortex-M3) ishte lëshuar tashmë, dhe kontrolluesi 1986BE1T (core Cortex-M1) sapo ishte shfaqur. Në kutinë plastike, LQFP-144, ai kishte përcaktimin K1986BE1QI (aviacion) në dokumentacion, dhe në vetë çipin përcaktimin MDR32F1QI. Në faqen e internetit të prodhuesit ka prapashtesën "avia", pasi ka ndërfaqe specifike për industrinë e avionëve (ARINC 429, MIL_STD_1553).

Çuditërisht, në kohën e shpërndarjes së këtyre kontrollorëve, kompania Milander përgatiti komplete korrigjimi dhe një bibliotekë nënprogramesh për të punuar me pajisjet periferike, "por pa asnjë garanci ose detyrim shtesë në lidhje me korrektësinë e bibliotekës". Biblioteka është e ngjashme me bibliotekën standarde periferike nga STMicroelectronics. Në përgjithësi, të gjithë kontrollorët ARM të ndërtuar në bërthamën Cortex-M kanë shumë të përbashkëta. Për këtë arsye, njohja me kontrollorët e rinj rusë vazhdoi shpejt. Dhe për ata që blenë komplete korrigjimi të markës, u ofrua mbështetje teknike gjatë përdorimit.

Zhvillimi i një bordi zhvillimi për K1986BE1QI (aviacion)
Kompleti i korrigjimit për mikrokontrolluesin 1986BE1T, © Milander

Sidoqoftë, me kalimin e kohës, filluan të shfaqen "sëmundjet e fëmijërisë" të mikroqarqeve dhe bibliotekave të reja. Shembujt e testimit të firmuerit funksionuan pa probleme të dukshme, por me modifikime të rëndësishme, ndodhën përplasje dhe gabime. "Gëlltitja" e parë në praktikën time ishin dështimet e pashpjegueshme në funksionimin e kontrolluesit CAN. Një vit më vonë, një problem me modulin u zbulua në kontrolluesin 1986BE1T (aviacioni) të një rishikimi të hershëm MKIO (kanal multipleks i shkëmbimit të informacionit). Në përgjithësi, të gjitha rishikimet e këtyre mikrokontrolluesve deri në vitin 2016 ishin me përdorim të kufizuar. Kaluan shumë kohë dhe nerva për të identifikuar këto probleme, konfirmimi i të cilave tani mund të gjendet në listat e gabimeve (Errata).

Një tipar i pakëndshëm ishte se ishte e nevojshme të punohej dhe të merrej me gabimet jo në bordet e korrigjimit, por në bordet prototipe të pajisjeve që ishin planifikuar për prodhimin serik të fabrikës. Zakonisht nuk kishte asgjë tjetër përveç lidhësit JTAG. Lidhja me një analizues logjik ishte e vështirë dhe e papërshtatshme, dhe zakonisht nuk kishte LED ose ekrane. Për këtë arsye, ideja për të krijuar bordin tim të korrigjimit u shfaq në kokën time.

Nga njëra anë, kishte në treg komplete korrigjimi të markave, si dhe borde të mrekullueshme nga kompania LDM-Systems nga Zelenograd. Nga ana tjetër, çmimet për këto produkte janë marramendëse, dhe funksionaliteti bazë pa kartat e zgjerimit nuk i përmbush pritshmëritë. Një tabelë me një kontrollues të bashkuar dhe një lidhës pin nuk është më interes për mua. Dhe bordet më interesante janë të shtrenjta.

Zhvillimi i një bordi zhvillimi për K1986BE1QI (aviacion)
Pllakë zhvillimi MILANDR LDM-HELPER-K1986BE1QI-FULL, © LDM Systems

Kompania Milander ka një politikë çmimesh dhe marketingu unike. Pra, është e mundur të merrni mostra falas të disa mikroqarqeve, por kjo është në dispozicion vetëm për personat juridikë dhe shoqërohet me një kërkim burokratik. Në përgjithësi, mikroqarqet në një kuti metal-qeramike janë ari në kuptimin e mirëfilltë dhe figurativ. Për shembull, një kontrollues 1986BE1T kushton nga 14 në 24 mijë rubla në Moskë. Çipi i memories statike 1645RU6U kushton nga 15000 rubla. Dhe ky është rendi i çmimeve për të gjitha produktet. Si rezultat, edhe institutet e specializuara kërkimore me urdhra qeveritarë kursejnë para dhe i shmangen çmimeve të tilla. Mikroqarqet në një kuti plastike për përdorim civil janë dukshëm më të lirë, por ato nuk janë të disponueshme nga furnizuesit e njohur. Për më tepër, cilësia e mikroqarqeve në një kuti plastike, më duket, është më e keqe se ato "ari". Për shembull, nuk mund ta ekzekutoja kontrolluesin K1986BE1QI në 128 MHz pa rritur parametrin e vonesës së blicit. Në të njëjtën kohë, temperatura e këtij kontrolluesi u rrit në 40-50C. Por kontrolluesi 1986BE1T ("ari") filloi në 128 MHz pa cilësime shtesë dhe mbeti i ftohtë. Ai është vërtet i mirë.

Zhvillimi i një bordi zhvillimi për K1986BE1QI (aviacion)
Mikrokontrollues “Golden” 1986BE1T, (c) Milander

Unë isha me fat që një mikrokontrollues në një kuti plastike mund të blihet ende me pakicë nga LDM Systems, dhe të gjitha diagramet e bordit janë të disponueshme falas. E keqja është se në faqen e internetit në foton e kontrolluesit mund të shihni një shënim që thotë se ky është rishikimi i 4-të i vitit 2014, d.m.th. me defekte. Kam menduar për një kohë të gjatë nëse do të blej apo jo. Kështu kaluan disa vite...

Ideja e krijimit të një bordi korrigjimi nuk është zhdukur askund. Gradualisht, formova të gjitha kërkesat dhe mendova se si t'i vendosja të gjitha në një tabelë, në mënyrë që të ishte kompakte dhe jo e shtrenjtë. Në të njëjtën kohë, unë porosita komponentët që mungojnë nga kinezët. Nuk nxitova - bëra gjithçka për veten time. Furnizuesit kinezë janë tejet të ngathët - më duhej të porosisja të njëjtën gjë nga vende të ndryshme për të marrë gjithçka që më duhej. Për më tepër, disa nga çipat e kujtesës rezultuan të përdoreshin - me sa duket të ngjitura nga pajisjet e prishura. Kjo më përndjek më vonë.

Blerja e një mikrokontrollues Milander K1986BE1QI (ajri) nuk është një detyrë e lehtë. Në të njëjtin dyqan Chip and Dip, në seksionin "Artikuj për porosi", gjeta vetëm K1986BE92QI për 740 rubla, por nuk më përshtatej. Mundësia e vetme është të blini një rishikim jo të freskët nga LDM-Systems për 2000 rubla. Meqenëse nuk mund të gjeja një zëvendësues askund tjetër, vendosa të blej atë që kisha. Për habinë time të këndshme, ata më shitën një kontrollues krejt të ri të prodhuar në dhjetor 2018, rishikimi 6+ (1820). Por faqja ka ende një foto të vjetër, dhe në momentin e shkrimit kontrolluesi nuk është i disponueshëm...

Zhvillimi i një bordi zhvillimi për K1986BE1QI (aviacion)
Mikrokontrolluesi K1986BE1QI (aviacioni) ne paketim teknologjik, (c) Foto nga autori

Karakteristikat kryesore teknike të bordit tim të korrigjimit MDB1986 në vijim:

  • korrigjues-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;
  • Transmetues i ndërfaqes RS-232 me linja RTS dhe CTS;
  • ndërfaqet dhe lidhësit për Ethernet, USB, CAN;
  • MAX7 kontrollues ekrani me 7221 segmente;
  • lidhës pin për të punuar me MKIO (MIL_STD_1553) dhe ARINC429;
  • fototransistor Everlight PT17-21C;
  • LED me pesë ngjyra, një buton rivendosjeje dhe dy butona përdoruesi;
  • furnizimi me energji në portën USB është 5 volt;
  • Përmasat e tabelës së qarkut të printuar 100 x 80, mm

Më pëlqyen tabelat e serisë STM-Discovery sepse kanë një programues të integruar - ST-Link. Marka ST-Link funksionon vetëm me kontrollues nga STMicroelectronics, por disa vjet më parë u bë e mundur të përditësohej firmware në ST-Link dhe të merrej SEGGER J-Link OB (në bord) Debugger. Ligjërisht, ekziston një kufizim për përdorimin e një korrigjuesi të tillë vetëm me bordet STMicroelectronics, por në fakt potenciali nuk është i kufizuar. Kështu, duke pasur një J-Link OB, mund të keni një programues-debugger të integruar në bordin e korrigjimit. Vërej se produktet LDM-Systems përdorin konvertuesin CP2102 (Usb2Uart), i cili mund të ndizet vetëm.

Zhvillimi i një bordi zhvillimi për K1986BE1QI (aviacion)
Mikrokontrollues STM32F103C8T6, real dhe jo aq real, (c) Foto nga autori

Pra, ishte e nevojshme të blini STM32F103C8T6 origjinale, pasi firmware-i i pronarit nuk do të funksionojë siç duhet me klon. Dyshova në këtë tezë dhe vendosa të provoj kontrolluesin CS32F103C8T6 nga kompania kineze CKS. Nuk kam ankesa për vetë kontrolluesin, por firmware-i i pronarit ST-Link nuk funksionoi në të. J-Link funksionoi pjesërisht - pajisja USB u zbulua, por programuesi nuk i kreu funksionet e tij dhe vazhdimisht kujtoi se ishte "me defekt".

Zhvillimi i një bordi zhvillimi për K1986BE1QI (aviacion)
Gabim gjatë ekzekutimit të korrigjuesit në një kontrollues jo origjinal

Unë nuk isha i kënaqur me këtë dhe fillimisht shkrova firmware-in për ndezjen e LED-it, dhe më pas zbatova kërkesën IDCODE duke përdorur protokollin JTAG. Programuesi ST-Link që e kisha në tabelën Discovery dhe programi ST-Link Utility ndezën pa problem CS32F103C8T6. Në fund u binda se bordi im po funksiononte. Për kënaqësinë time, kontrolluesi i synuar K1986BE1QI (aviacioni) lëshoi ​​me gëzim IDCODE-në e tij nëpërmjet linjës TDO.

Zhvillimi i një bordi zhvillimi për K1986BE1QI (aviacion)
Oshilogrami i një linje sinjali TDO me një përgjigje të koduar IDCODE, (c) Foto nga autori

Zhvillimi i një bordi zhvillimi për K1986BE1QI (aviacion)
Pra, porta SWD erdhi në ndihmë për korrigjimin e vetë korrigjuesit dhe kontrollimin e IDCODE

Kishte një opsion me një korrigjues CMSIS-DAP (Portë e qasjes për korrigjimin e gabimeve). Ndërtimi i një projekti nga burimet e ARM-së nuk është një detyrë e lehtë, unë e mora projektin nga X893, dhe më pas provova DAP42. Fatkeqësisht, Keil uVision ngriu dhe nuk donte të punonte me ta. Si rezultat, unë zëvendësova çipin e korrigjuesit me një STM32F103C8T6 të pronarit dhe nuk u ktheva më në këtë problem.

Zhvillimi i një bordi zhvillimi për K1986BE1QI (aviacion)
Funksionimi i suksesshëm i korrigjuesit të integruar J-Link STLink V2

Kur të gjithë përbërësit kryesorë të bordit të zhvillimit të ardhshëm ishin të disponueshëm, hyra në Eagle CAD dhe zbulova se ato nuk ishin në bibliotekën e elementeve. Nuk kishte ku të shkoja - duhej t'i vizatoja vetë. Në të njëjtën kohë, bëra pika montimi për memorie, një lidhës HanRun për Ethernet dhe shtova korniza për rezistorët dhe kondensatorët. Mund të gjenden skedari i projektit dhe biblioteka e komponentëve në GitHub-in tim.

Diagrami skematik i bordit të zhvillimit MDB1986Zhvillimi i një bordi zhvillimi për K1986BE1QI (aviacion)

Pllaka mundësohet nga një burim DC 5 volt i marrë nga porta USB. Ka gjithsej dy porte USB Type-B në tabelë. Njëra është për programuesin, e dyta është për kontrolluesin K1986BE1QI. Bordi mund të funksionojë nga njëri prej këtyre burimeve ose të dyja njëkohësisht. Rregullimi më i thjeshtë i ngarkesës dhe mbrojtja e linjës së energjisë zbatohen duke përdorur diodat Schottky, në qarkun D2 dhe D3 (SS24). Gjithashtu në diagram mund të shihni siguresat vetë-rikthyese F1 dhe F2 në 500 mA. Linjat e sinjalit të portës USB mbrohen nga një montim diodë USBLC6-2SC6.

Qarku i korrigjuesit-programues ST-Link është i njohur për shumë njerëz; ai mund të gjendet në dokumentacionin për bordet STM32-Discovery dhe burime të tjera. Për firmuerin fillestar të klonit ST-Link/J-Link-OB/DAP (opsionale), nxora linjat SWDIO (PA13), SWCLK (PA14), GND. Shumë njerëz përdorin UART për firmware dhe janë të detyruar të tërheqin kërcyesit BOOT. Por më duket SWD më i përshtatshëm, dhe ky protokoll lejon korrigjimin e gabimeve.

Pothuajse të gjithë përbërësit e tabelës furnizohen me 3.3 volt, të cilat vijnë nga rregullatori i tensionit AMS1117-3.3. Për të shtypur ndërhyrjet elektromagnetike dhe mbingarkesat e rrymës, përdoren filtra LC nga kondensatorët dhe mbytjet e serisë BLM31PG.

Më vete, vlen të përmendet drejtuesi i ekranit me 7 segmente MAX7221. Sipas specifikimeve, furnizimi me energji elektrike i rekomanduar është nga 4 në 5.5 volt, dhe niveli i lartë i sinjalit (logjik) është të paktën 3.5 V (0.7 x VCC), me një furnizim 5 V. Për kontrolluesin K1986BE1QI (aviacioni), dalja e një njësie logjike korrespondon me një tension nga 2.8 në 3.3 V. Është e qartë se ka një mospërputhje midis niveleve të sinjalit që mund të ndërhyjë në funksionimin normal. Vendosa të fuqizoj MAX7221 në 4V dhe të zvogëloj nivelet e sinjalit në 2.8V (0.7 x 4 = 2.8). Për ta bërë këtë, dioda D4 (RS1A ose FR103) është instaluar në seri në qarkun e fuqisë së drejtuesit. Rënia totale e tensionit është 0.9 V (dioda Schottky 0.3 V dhe dioda 0.6 V), dhe gjithçka funksionon.

Shumica e porteve të mikrokontrolluesit K1986BE1QI (aviacionit) janë të pajtueshme me sinjale deri në 5V. Prandaj, nuk ka asnjë problem me përdorimin e transmetuesit MCP2551 CAN, i cili gjithashtu funksionon në 5V. Çipi MAX232 tregohet si një marrës RS-3232 në diagram, por në fakt unë përdora SN65C3232D nga Texas Instruments, sepse funksionon nga 3.3V dhe ofron shpejtësi deri në 1Mbit/s.

Pllaka përmban 4 rezonatorë kuarci - një për korrigjuesin (8 MHz) dhe tre për mikrokontrolluesin e synuar K1986BE1QI (aviacioni) me shkallë 32.768 kHz, 16 MHz, 25 MHz. Këto janë komponentë të domosdoshëm, sepse Parametrat e oshilatorit të integruar RC janë brenda një diapazoni të gjerë nga 6 në 10 MHz. Një frekuencë prej 25 MHz kërkohet për funksionimin e kontrolluesit të integruar Ethernet. Për disa arsye, faqja e internetit e Milandra (ndoshta gabimisht) thotë se kutia plastike nuk ka Ethernet. Por ne do të mbështetemi në specifikimet dhe faktet.

Një nxitje e rëndësishme për krijimin e bordit tim të zhvillimit ishte mundësia për të punuar me autobusin e sistemit të jashtëm EBC (kontrollues i jashtëm i autobusit), i cili në thelb është një port paralel. Mikrokontrolluesi (avioni) K1986BE1QI ju lejon të lidheni dhe të punoni me çipa memorie të jashtme dhe pajisje periferike, për shembull, ADC, FPGA, etj. Aftësitë e autobusit të sistemit të jashtëm janë mjaft të mëdha - mund të punoni me RAM statike 8-bit, 16-bit dhe 32-bit, ROM dhe NAND Flash. Për të lexuar/shkruar të dhëna 32-bitësh, kontrolluesi mund të kryejë automatikisht 2 operacione përkatëse për çipat 16-bit dhe 8 operacione për çipat 4-bit. Natyrisht, një operacion I/O 32-bitësh do të përfundojë më shpejt me një autobus të dhënash 32-bit. Disavantazhet përfshijnë nevojën që programi të funksionojë me të dhëna 32-bit, dhe bordi do të duhet të vendosë 32 këngë.

Zhvillimi i një bordi zhvillimi për K1986BE1QI (aviacion)
Çipa statike RAM, të përdorura (mendoni se cili është i dëmtuar)

Një zgjidhje e ekuilibruar është përdorimi i çipave të memories 16-bit. Më rastisi të kisha çipa të integruar të Silicon Solutions Inc. në magazinë. (ISSI IS61LV25616AL, 16 x 256k, 10 ns, 3.3V). Sigurisht, kompania Milander ka çipat e saj të memories statike seria 1645RU, por ato janë shumë të shtrenjta dhe të padisponueshme. Si alternativë, ka Samsung K6R4016V1D të pajtueshme me pin. Më herët përmenda se mikroqarqet rezultuan të përdoreshin dhe kopja që instalova fillimisht dha dështime dhe vlera kaotike në linjën e 15-të të të dhënave. U deshën disa ditë për të gjetur gabime harduerike dhe aq më e madhe ishte ndjenja e kënaqësisë kur zëvendësova çipin e dëmtuar me një të punës. Sido që të jetë, shpejtësia e punës me memorie të jashtme lë shumë për të dëshiruar.

Autobusi i jashtëm dhe modaliteti StandAloneMikrokontrolluesi (avioni) K1986BE1QI ka një modalitet unik StandAlone, i cili është projektuar për akses të jashtëm të drejtpërdrejtë në kontrollorët Ethernet dhe MKIO (MIL_STD_1553) nëpërmjet një autobusi të jashtëm, me bërthamën në gjendje të rivendosur, d.m.th. nuk përdoret. Ky modalitet është i përshtatshëm për procesorë dhe FPGA që nuk kanë Ethernet dhe/ose MKIO.
Diagrami i lidhjes është si më poshtë:

  • autobusi i të dhënave MCU(D0-D15) => SRAM(I/O0-I/O15),
  • autobusi i adresave MCU(A1-A18) => SRAM(A0-A17),
  • kontrolli MCU(nWR,nRD,PortC2) => SRAM (WE,OE,CE),
  • SRAM (UB, LB) lidhen ose tërhiqen në tokë përmes një rezistence.

Linja CE është e lidhur me furnizimin me energji përmes një rezistence; kunjat për marrjen e mostrave të bajtit MCU (BE0-BE3) nuk përdoren. Nën spoiler, unë jap kodin për inicializimin e porteve dhe kontrolluesin e jashtëm të autobusit.

Inicializimi i porteve dhe kontrolluesi EBC (kontrolluesi i autobusit 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);
}

Mikrokontrolluesi në paketën LQFP-144 dhe memoria në paketën TSOP-44 kanë shumë kunja të lidhura dhe zënë shumë hapësirë ​​në tabelën e qarkut të printuar. Duke pasur përvojë në zgjidhjen e problemeve të optimizimit në fushën e ekonomisë, ishte e qartë për mua se ishte e nevojshme që fillimisht të vendoseshin këto mikroqarqe në tabelë. Në burime të ndryshme kam hasur në komente lavdëruese rreth CAD TopoR (Ruter topologjik). Shkarkova versionin e provës dhe munda ta eksportoja projektin tim nga Eagle CAD atje vetëm pasi hoqa pothuajse të gjithë komponentët. Fatkeqësisht, programi TopoR nuk më ndihmoi të vendosja as 10 elementë në tabelë. Së pari, të gjithë përbërësit u vendosën në një cep, dhe më pas u vendosën përgjatë skajit. Nuk isha i kënaqur me këtë opsion dhe për një kohë të gjatë e gjurmova tabelën me dorë në mjedisin e njohur Eagle CAD.

Një element i rëndësishëm i një bord qarku të printuar është printimi me ekran mëndafshi. Bordi i zhvillimit nuk duhet të ketë vetëm etiketa për komponentët elektronikë, por të gjithë lidhësit duhet gjithashtu të etiketohen. Në anën e pasme të tabelës vendosa tabela me funksionet e portave të kontrolluesit (kryesore, alternative, e tejkaluar, aktuale). Kam porositur prodhimin e pllakave të qarkut të printuar në Kinë nga zyra e njohur PCBWay. Nuk do ta lavdëroj sepse cilësia është e mirë. Ata mund të bëjnë më mirë, me toleranca më të forta, por për një tarifë.

Zhvillimi i një bordi zhvillimi për K1986BE1QI (aviacion)
Pllakat e qarkut të printuar të prodhuar MDB1986, (c) Foto nga autori

Më është dashur t'i bashkoj komponentët "në gjunjë" me një saldim 40 vat dhe me saldim POS-61, sepse bashkoj rrallë, 1-2 herë në vit, dhe pasta e saldimit ishte tharë. Më duhej gjithashtu të ndryshoja kontrolluesin kinez CS32F103 në STM32F103 origjinal, dhe më pas të zëvendësoja gjithashtu kujtesën. Në përgjithësi, tani jam plotësisht i kënaqur me rezultatin, megjithëse nuk e kam kontrolluar ende funksionimin e RS-232 dhe CAN.

Zhvillimi i një bordi zhvillimi për K1986BE1QI (aviacion)
Bordi i korrigjimit MDB1986 në funksionim - ai shkëlqen dhe ngroh, (c) Foto nga autori

Në faqen e internetit Milandra mund të gjeni mjaftueshëm materiale edukative për kontrollorët e mësimit seria 1986BE9 (bërthama Cortex-M3), por për mikrokontrolluesin K1986BE1QI (aviacioni) nuk shoh asgjë atje. Duke parë materialet, manualet dhe punën laboratorike për universitetet e botuara atje, më vjen mirë që personeli po trajnohet në të gjithë vendin për të punuar me kontrollorët rusë. Shumica e materialeve të trajnimit përgatiten për të punuar me portet I/O, kohëmatësit, ADC, DAC, SPI, UART. Përdoren mjedise të ndryshme zhvillimi IDE (Keil, IAR, CodeMaster). Diku ata programojnë duke përdorur regjistrat CMSIS, dhe diku përdorin Bibliotekën MDR. Burimi duhet të përmendet Filloni Milandr, i cili përmban shumë artikuj nga programues praktikues. Dhe, natyrisht, nuk duhet të harrojmë Forumi Milandra.

Mendova për MilandrënMikroelektronika po zhvillohet në Rusi dhe kompania Milander luan një rol të rëndësishëm në këtë proces. Mikrokontrolluesit e rinj interesantë shfaqen, për shembull, 1986BE81T dhe Elektrosila me ndërfaqe SpaceWire dhe MKIO (njëlloj si në 1986BE1 dhe, ndoshta, me të njëjtat probleme), etj. Por studentët e zakonshëm, mësuesit dhe inxhinierët e ndërtimit nuk mund të blejnë mikroqarqe të tilla. Kjo do të thotë që komuniteti inxhinierik nuk do të jetë në gjendje të identifikojë shpejt gabimet dhe problemet me këtë çip. Më duket se fillimisht është e nevojshme të prodhohen mikroqarqe në një kuti plastike, t'u shpërndahen të gjithë të interesuarve dhe pas miratimit (latinisht approbatio - miratim, njohje) nga specialistë, ata mund të përgatisin një rishikim në një kuti metalo-qeramike me mbrojtje nga të gjithë faktorët e tmerrshëm. Shpresoj se në të ardhmen e afërt do të jemi të gjithë të kënaqur me projektet e reja të shpallura në ekspozita.
Bordi i korrigjimit që kam zhvilluar mund të përsëritet, modifikohet dhe përdoret nga kushdo në procesin arsimor. Para së gjithash, unë e bëra tabelën për vete, por doli aq mirë sa Vendosa ta ndaj me të gjithë.

K1986BE1QI (ajri) është një kontrollues shumë interesant me ndërfaqe unike që mund të përdoret në universitete për të mësuar studentët. Unë mendoj se pas korrigjimit të gabimeve të identifikuara në kontrollues dhe kalimit të testeve të certifikimit, kontrolluesi do të fluturojë në kuptimin e vërtetë të fjalës!

Burimi: www.habr.com

Shto një koment