AtkļūdoŔanas plates izstrāde priekŔ K1986BE1QI (aviācija)

AtkļūdoŔanas plates izstrāde priekŔ K1986BE1QI (aviācija)

Pirms dažiem gadiem iepazinos ar Krievijas mikrokontrolleriem no Milandr. Tas bija 2013. gads, kad inženieri enerÄ£iski apsprieda federālās mērÄ·programmas "Elektronisko komponentu bāzes un radioelektronikas attÄ«stÄ«ba" pirmos rezultātus 2008.-2015. gadam. Tajā laikā jau bija izlaists K1986BE9x kontrolieris (Cortex-M3 kodols), un tikko parādÄ«jās 1986BE1T kontrolieris (Cortex-M1 kodols). Viņam, plastmasas LQFP-144 korpusā, dokumentācijā bija apzÄ«mējums K1986BE1QI (aviation), bet uz paÅ”as mikroshēmas ā€“ apzÄ«mējums MDR32F1QI. Ražotāja vietnē tam ir sufikss "gaiss", jo tam ir saskarnes, kas raksturÄ«gas gaisa kuÄ£u nozarei (ARINC 429, MIL_STD_1553).

PārsteidzoÅ”i, ka Å”o kontrolieru izplatÄ«Å”anas laikā uzņēmums Milander sagatavoja atkļūdoÅ”anas komplektus un apakÅ”programmu bibliotēku darbam ar perifērijas ierÄ«cēm, "bet bez jebkādām papildu garantijām un saistÄ«bām attiecÄ«bā uz bibliotēkas pareizÄ«bu". Bibliotēka ir lÄ«dzÄ«ga STMicroelectronics standarta perifērijas bibliotēkai. Kopumā visiem ARM kontrolieriem, kas veidoti uz Cortex-M kodola, ir daudz kopÄ«ga. Å Ä« iemesla dēļ iepazÄ«Å”anās ar jaunajiem krievu kontrolieriem noritēja ātri. Un tiem, kas iegādājās patentētus atkļūdoÅ”anas komplektus, lietoÅ”anas laikā tika nodroÅ”ināts tehniskais atbalsts.

AtkļūdoŔanas plates izstrāde priekŔ K1986BE1QI (aviācija)
AtkļūdoÅ”anas komplekts mikrokontrolleram 1986BE1T, Ā© Milandr

Tomēr laika gaitā sāka parādÄ«ties jaunu mikroshēmu un bibliotēku "bērnu slimÄ«bas". ProgrammaparatÅ«ras testa piemēri darbojās bez redzamām problēmām, taču ar ievērojamām modifikācijām lija avārijas un kļūdas. Pirmā ā€œbedelÄ«gaā€ manā praksē bija neizskaidrojamas kļūmes CAN kontrollerÄ«. Gadu vēlāk moduļa problēma tika atklāta 1986BE1T (gaisa) kontrolierÄ« ar agrÄ«nu versiju. MCIO (multipleksais informācijas apmaiņas kanāls). Kopumā visas Å”o mikrokontrolleru versijas lÄ«dz 2016. gadam bija ierobežotas. Daudz laika un nervu tika ieguldÄ«ts, lai identificētu Ŕīs problēmas, kurām tagad var atrast apstiprinājumu kļūdu saraksti (kļūda).

NepatÄ«kama iezÄ«me bija tā, ka bija jāstrādā un jārisina kļūdas nevis uz atkļūdoÅ”anas dēļiem, bet gan uz prototipu ierīču dēļiem, kas bija plānoti sērijveida rÅ«pnÄ«cas ražoÅ”anai. Papildus JTAG savienotājam tur parasti nebija nekā. Bija grÅ«ti un neērti izveidot savienojumu ar loÄ£isko analizatoru, un parasti nebija gaismas diožu un ekrānu. Å Ä« iemesla dēļ manā galvā parādÄ«jās ideja izveidot savu atkļūdoÅ”anas dēli.

No vienas puses, tirgÅ« bija firmas atkļūdoÅ”anas komplekti, kā arÄ« brÄ«niŔķīgi dēļi no Zelenogradas LDM-Systems. No otras puses, Å”o produktu cenas iedzen stuporā, un pamata funkcionalitāte bez paplaÅ”ināŔanas kartēm neatbilst cerÄ«bām. Dēlis ar pielodētu kontrolieri un tapas galveni mani neinteresē. Un interesantāki dēļi ir dārgi.

AtkļūdoŔanas plates izstrāde priekŔ K1986BE1QI (aviācija)
Izstrādes panelis MILANDR LDM-HELPER-K1986BE1QI-FULL, Ā© LDM Systems

Uzņēmumam "Milandr" ir unikāla cenu politika un mārketings. Tātad dažu mikroshēmu paraugus ir iespējams iegÅ«t bez maksas, taču tas ir pieejams tikai juridiskām personām un ir saistÄ«ts ar birokrātiskiem meklējumiem. Kopumā mikroshēmas keramikas-metāla iepakojumā ir zeltainas tieŔā un pārnestā nozÄ«mē. Piemēram, 1986BE1T kontrolieris Maskavā maksā no 14 lÄ«dz 24 tÅ«kstoÅ”iem rubļu. 1645RU6U statiskās atmiņas mikroshēma maksā no 15000 1986 rubļu. Un tāda ir visu produktu cenu secÄ«ba. Rezultātā pat specializēti pētniecÄ«bas institÅ«ti ar valsts pasÅ«tÄ«jumiem ietaupa naudu un kautrējas no Ŕādām cenām. Mikroshēmas plastmasas korpusā civilām vajadzÄ«bām ir ievērojami lētākas, taču tās nav pieejamas no populāriem piegādātājiem. Turklāt skaidu kvalitāte plastmasas korpusā, man Ŕķiet, ir sliktāka par "zeltu". Piemēram, es nevarēju palaist kontrolieri K1BE128QI ar 40 MHz, nepalielinot zibspuldzes latentuma iestatÄ«jumu. Tajā paŔā laikā Ŕī regulatora temperatÅ«ra paaugstinājās lÄ«dz 50-1986C. Bet 1BE128T ("zelta") kontrolieris sāka darboties ar XNUMX MHz bez papildu iestatÄ«jumiem un palika auksts. ViņŔ tieŔām ir labs.

AtkļūdoŔanas plates izstrāde priekŔ K1986BE1QI (aviācija)
"Zelta" mikrokontrolleris 1986BE1T, (c) Milandr

Man paveicās, ka mikrokontrolleri plastmasas korpusā joprojām var iegādāties mazumtirdzniecÄ«bā no LDM Systems, un visas shēmas plates ir brÄ«vi pieejamas. Slikti ir tas, ka vietnē uz kontroliera fotoattēla ir redzams marķējums, kas saka, ka Ŕī ir 4. gada 2014. redakcija, t.i. ar defektiem. Ilgi domāju ā€“ pirkt vai nepirkt. Tātad pagāja vairāki gadi...

Ideja izveidot atkļūdoÅ”anas dēli nekur nav pazudusi. Pamazām veidoju visas prasÄ«bas un domāju, kā to visu salikt uz viena tāfele, lai tas bÅ«tu kompakts un nedārgs. Paralēli no Ä·Ä«nieÅ”iem pasÅ«tÄ«ju trÅ«kstoŔās sastāvdaļas. Es nesteidzos ā€“ visu izdarÄ«ju sev. Ķīnas piegādātāji ir bēdÄ«gi slaveni ar pavirŔību ā€“ man nācās pasÅ«tÄ«t vienu un to paÅ”u dažādās vietās, lai dabÅ«tu visu nepiecieÅ”amo. Turklāt dažas atmiņas mikroshēmas izrādÄ«jās lietotas - acÄ«mredzami pielodētas no salauztām ierÄ«cēm. Tas mani skāra vēlāk.

Mikrokontrollera Milandr K1986BE1QI (aviācija) iegāde nav viegls uzdevums. Tajā paŔā Chip and Dip veikalā sadaļā ā€œPozÄ«cijas pēc pasÅ«tÄ«jumaā€ es atradu tikai K1986BE92QI par 740 rubļiem, taču tas man nederēja. VienÄ«gā iespēja ir iegādāties ne-svaigu versiju no LDM-Systems par 2000 rubļiem. Tā kā nekur citur nevarēju atrast aizstājēju, nolēmu nopirkt to, kas bija. Man par patÄ«kamu pārsteigumu viņi man pārdeva pilnÄ«gi jaunu 2018. gada decembra izlaiduma kontrolieri, 6+ versiju (1820). Un vietnei joprojām ir vecs fotoattēls, un rakstÄ«Å”anas laikā kontrolieris nebija pieejams ...

AtkļūdoŔanas plates izstrāde priekŔ K1986BE1QI (aviācija)
Mikrokontrolleris K1986BE1QI (aviation) tehnoloģiskā iepakojumā, (c) Autora foto

Manas izstrādes padomes galvenās tehniskās specifikācijas MDB1986 pēc:

  • iebÅ«vēts atkļūdotājs-programmētājs, kas saderÄ«gs ar J-Link un CMSIS-DAP;
  • 4Mbit statiskā atmiņa (256k x 16, 10ns);
  • zibatmiņas mikroshēma 64Mbit, Winbond 25Q64FVSIG;
  • RS-232 interfeisa raiduztvērējs ar RTS un CTS lÄ«nijām;
  • saskarnes un savienotāji Ethernet, USB, CAN;
  • 7 segmentu displeja kontrolleris MAX7221;
  • pin savienotājs darbam ar MCIO (MIL_STD_1553) un ARINC429;
  • fototranzistors Everlight PT17-21C;
  • piecas krāsainas gaismas diodes, atiestatÄ«Å”anas poga un divas lietotāja pogas;
  • to darbina 5 voltu USB ports;
  • iespiedshēmas plates izmēri 100 x 80, mm

Man patika STM-Discovery sērijas dēļi, jo tajos ir iebÅ«vēts programmētājs-atkļūdotājs - ST-Link. ZÄ«mola ST-Link darbojas tikai ar STMicroelectronics kontrolieriem, taču pirms pāris gadiem kļuva iespējams atjaunināt programmaparatÅ«ru ST-Link un iegÅ«t SEGGER J-Link OB (on-board) atkļūdotāju. Juridiski pastāv ierobežojums izmantot Ŕādu atkļūdotāju tikai ar STMicroelectronics platēm, taču faktiski potenciāls nav ierobežots. Tādējādi, izmantojot J-Link OB, atkļūdoÅ”anas panelÄ« var bÅ«t iebÅ«vēts programmētājs-atkļūdotājs. Es atzÄ«mēju, ka LDM-Systems produktos tiek izmantots CP2102 (Usb2Uart) pārveidotājs, kas var tikai mirgot.

AtkļūdoŔanas plates izstrāde priekŔ K1986BE1QI (aviācija)
STM32F103C8T6 mikrokontrolleri, īsti un ne tādi, (c) Autora foto

Tātad bija nepiecieÅ”ams iegādāties oriÄ£inālo STM32F103C8T6, jo firmas programmaparatÅ«ra nedarbosies pareizi ar klonu. Es Å”aubÄ«jos par Å”o tēzi un nolēmu izmēģināt Ķīnas uzņēmuma CKS kontrolieri CS32F103C8T6. Man nav sÅ«dzÄ«bu par paÅ”u kontrolieri, taču patentētā ST-Link programmaparatÅ«ra tajā nedarbojās. J-Link strādāja daļēji - USB ierÄ«ce tika atklāta, taču programmētājs nepildÄ«ja savas funkcijas un pastāvÄ«gi atgādināja, ka tā ir ā€œbojātaā€.

AtkļūdoŔanas plates izstrāde priekŔ K1986BE1QI (aviācija)
Kļūda, palaižot atkļūdotāju uz neoriģināla kontrollera

Es par to nenomierinājos un vispirms uzrakstÄ«ju programmaparatÅ«ru gaismas diodes mirgoÅ”anai, un pēc tam ieviesu IDCODE pieprasÄ«jumu, izmantojot JTAG protokolu. ST-Link programmētājs, kas man bija uz Discovery plates, un ST-Link Utility programma bez problēmām mirgoja CS32F103C8T6. Rezultātā es pārliecinājos, ka mana plate darbojas. Man par prieku mērÄ·a kontrolieris K1986BE1QI (aviācija) jautri izdeva savu IDCODE pa TDO lÄ«niju.

AtkļūdoŔanas plates izstrāde priekŔ K1986BE1QI (aviācija)
TDO signāla līnijas oscilogramma ar IDCODE kodētu atbildi, (c) autora foto

AtkļūdoŔanas plates izstrāde priekŔ K1986BE1QI (aviācija)
Tāpēc SWD ports noderēja paÅ”a atkļūdotāja atkļūdoÅ”anai un IDCODE pārbaudei

Bija iespēja ar atkļūdotāju CMSIS-DAP (atkļūdoÅ”anas piekļuves ports). Projekta izveide no ARM avotiem nav viegls uzdevums, es projektu paņēmu no X893, un tad izmēģināju arÄ« DAP42. Diemžēl Keil uVision iestrēga un nevēlējās ar viņiem strādāt. Tā rezultātā es nomainÄ«ju atkļūdotāja mikroshēmu ar patentētu STM32F103C8T6 un nekad neatgriezos pie Ŕīs problēmas.

AtkļūdoŔanas plates izstrāde priekŔ K1986BE1QI (aviācija)
Iebūvētā atkļūdotāja J-Link STLink V2 veiksmīga darbība

Kad visas nākamās atkļūdoÅ”anas plates galvenās sastāvdaļas bija pieejamas, es iekļuvu Eagle CAD un atklāju, ka to nav elementu bibliotēkā. Nav kur iet ā€“ paÅ”am tās bija jāzÄ«mē. Tajā paŔā laikā es izveidoju sēdekļus atmiņai, HanRun savienotāju Ethernet un pievienoju rāmjus rezistoriem un kondensatoriem. Projekta failu un komponentu bibliotēku var atrast Man tas ir vietnē GitHub.

MDB1986 atkļūdoŔanas plates shematiskā diagrammaAtkļūdoŔanas plates izstrāde priekŔ K1986BE1QI (aviācija)

Plati darbina 5 voltu lÄ«dzstrāvas avots no USB porta. Uz tāfeles ir divi B tipa USB porti. Viens paredzēts programmētājam, otrais ir K1986BE1QI kontrolierim. Valde var strādāt no jebkura no Å”iem avotiem vai abiem vienlaikus. VienkārŔākā slodzes regulÄ“Å”ana un elektropārvades lÄ«niju aizsardzÄ«ba tiek Ä«stenota uz Å otki diodēm, D2 un D3 (SS24) ķēdēs. ArÄ« diagrammā var redzēt paÅ”atjaunojoÅ”os droÅ”inātājus F1 un F2 pie 500 mA. USB porta signāla lÄ«nijas aizsargā USBLC6-2SC6 diodes komplekts.

ST-Link atkļūdotāja-programmētāja shēma ir zināma daudziem, to var atrast STM32-Discovery plates dokumentācijā un citos avotos. ST-Link / J-Link-OB / DAP klona (pēc izvēles) primārajai programmaparatÅ«rai es izcēlu SWDIO (PA13), SWCLK (PA14), GND lÄ«nijas. Daudzi programmaparatÅ«rai izmanto UART un ir spiesti vilkt BOOT džemperus. Bet SWD man ir ērtāks, turklāt Å”is protokols ļauj atkļūdot.

Gandrīz visas plates sastāvdaļas tiek darbinātas ar 3.3 voltiem, kas nāk no AMS1117-3.3 sprieguma regulatora. Lai nomāktu elektromagnētiskos traucējumus un strāvas pārspriegumus, tiek izmantoti LC filtri no BLM31PG sērijas kondensatoriem un droseles.

AtseviŔķi ir vērts pieminēt MAX7 7221 segmentu displeja draiveri. Saskaņā ar specifikāciju ieteicamais baroÅ”anas avots ir no 4 lÄ«dz 5.5 voltiem, un augstais signāla lÄ«menis (loÄ£iskais) nav mazāks par 3.5 V (0.7 x VCC), ja tiek darbināts no 5 V. Kontrolierim K1986BE1QI (aviācijai) loÄ£iskās vienÄ«bas izeja atbilst spriegumam no 2.8 lÄ«dz 3.3 V. AcÄ«mredzot ir signāla lÄ«meņu neatbilstÄ«ba, kas var traucēt normālu darbÄ«bu. Es nolēmu darbināt MAX7221 no 4 V un pazemināt signāla lÄ«meni lÄ«dz 2.8 V (0.7 x 4 = 2.8). Lai to izdarÄ«tu, vadÄ«tāja strāvas ķēdē sērijveidā ir uzstādÄ«ta diode D4 (RS1A vai FR103). Kopējais sprieguma kritums ir 0.9 V (0.3 V Å otkija diode un 0.6 V diode), un viss darbojas.

Lielākā daļa K1986BE1QI mikrokontrollera (aviācijas) portu ir saderÄ«gi ar signāliem lÄ«dz 5 V. Tāpēc MCP2551 CAN raiduztvērēja lietoÅ”ana, kas darbojas arÄ« no 5V, problēmas nesagādā. Diagramma parāda MAX232 mikroshēmu kā RS-3232 raiduztvērēju, bet patiesÄ«bā es izmantoju SN65C3232D no Texas Instruments, jo tas darbojas no 3.3V un nodroÅ”ina ātrumu lÄ«dz 1Mbit/s.

Uz tāfeles ir 4 kvarca rezonatori - viens atkļūdotājam (8 MHz) un trÄ«s mērÄ·a mikrokontrollerim K1986BE1QI (aviācija) ar nominālvērtÄ«bām 32.768 kHz, 16 MHz, 25 MHz. Tie ir nepiecieÅ”ami komponenti, jo. iebÅ«vētā RC Ä£eneratora parametri ir plaŔā diapazonā no 6 lÄ«dz 10 MHz. 25 MHz frekvence ir nepiecieÅ”ama iebÅ«vētā Ethernet kontrollera darbÄ«bai. Nez kāpēc Milandras mājaslapā (varbÅ«t kļūdas pēc) ir norādÄ«ts, ka plastmasas korpusā Ethernet nav. Bet mēs paļausimies uz specifikācijām un faktiem.

SvarÄ«gs stimuls savas atkļūdoÅ”anas dēļa izveidei bija iespēja strādāt ar ārējo EBC (ārējā kopnes kontrollera) sistēmas kopni, kas bÅ«tÄ«bā ir paralēlais ports. Mikrokontrolleris K1986BE1QI (aviācija) ļauj savienot un strādāt ar ārējām atmiņas mikroshēmām un perifērijas ierÄ«cēm, piemēram, ADC, FPGA u.c. Ārējās sistēmas kopnes iespējas ir diezgan lielas ā€“ var strādāt ar 8 bitu, 16 bitu un 32 bitu statisko RAM, ROM un NAND Flash. 32 bitu datu lasÄ«Å”anai / rakstÄ«Å”anai kontrolieris var automātiski veikt 2 atbilstoÅ”as ā€‹ā€‹darbÄ«bas 16 bitu mikroshēmām un 8 darbÄ«bas 4 bitu mikroshēmām. AcÄ«mredzot 32 bitu I/O darbÄ«ba bÅ«s visātrākā ar 32 bitu datu kopni. TrÅ«kumi ietver nepiecieÅ”amÄ«bu programmai darboties ar 32 bitu datiem, un platei bÅ«s jāievieto 32 celiņi.

AtkļūdoŔanas plates izstrāde priekŔ K1986BE1QI (aviācija)
SRAM mikroshēmas, lietotas (uzminiet, kura ir bojāta)

LÄ«dzsvarots risinājums ir izmantot 16 bitu atmiņas mikroshēmas. Es nonācu pie Integrated Silicon Solutions Inc. mikroshēmām. (ISSI IS61LV25616AL, 16x256k, 10ns, 3.3V). Protams, uzņēmumam "Milandr" ir savas statiskās atmiņas mikroshēmas sērija 1645RUbet tie ir pārāk dārgi un nav pieejami. AlternatÄ«vi ir ar tapu saderÄ«gi Samsung K6R4016V1D. Jau iepriekÅ” minēju, ka IC bija lietoti, un manis instalētā kopija sākotnēji bija nestabila un nepastāvÄ«ga 15. datu lÄ«nijā. Pagāja vairākas dienas, lai atrastu aparatÅ«ras kļūdas, un jo lielāka bija gandarÄ«juma sajÅ«ta, kad nomainÄ«ju bojāto mikroshēmu pret strādājoÅ”u. Lai kā arÄ« bÅ«tu, darba ātrums ar ārējo atmiņu atstāj daudz vēlamo.

Ārējais autobuss un savrupais režīmsMikrokontrollerim K1986BE1QI (aviation) ir unikāls StandAlone režīms, kas paredzēts tieÅ”ai ārējai piekļuvei Ethernet un MCIO kontrolleriem (MIL_STD_1553) caur ārējo kopni, kamēr kodols atrodas reset stāvoklÄ«, t.i. nav izmantots. Å is režīms ir noderÄ«gs procesoriem un FPGA, kuriem nav Ethernet un/vai MCIO.
Savienojuma shēma ir Ŕāda:

  • datu kopne MCU(D0-D15) => SRAM(I/O0-I/O15),
  • adreÅ”u kopne MCU(A1-A18) => SRAM(A0-A17),
  • MCU vadÄ«ba (nWR, nRD, PortC2) => SRAM (WE, OE, CE),
  • SRAM (UB, LB) ir savienoti vai velk uz zemi caur rezistoru.

CE līnija tiek pievilkta pie strāvas caur rezistoru, MCU baitu ielādes tapas (BE0-BE3) netiek izmantotas. Zem spoilera es dodu kodu portu un ārējā kopnes kontrollera inicializācijai.

Portu un EBC kontrollera inicializācija (ārējais kopnes kontrolieris)

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

Mikrokontrollerim LQFP-144 pakotnē un atmiņai TSOP-44 pakotnē ir daudz savienotu tapu un tie aizņem daudz PCB vietas. Tā kā ir pieredze optimizācijas problēmu risināŔanā ekonomikas jomā, man bija skaidrs, ka Ŕīs mikroshēmas vispirms ir jāliek uz plates. Dažādos avotos uzgāju slavinoÅ”as atsauksmes par CAD TopoR (topoloÄ£iskais marÅ”rutētājs). Es lejupielādēju izmēģinājuma versiju un varēju eksportēt savu projektu no Eagle CAD tikai tad, kad noņēmu gandrÄ«z visus komponentus. Diemžēl TopoR programma man nepalÄ«dzēja novietot uz tāfeles pat 10 elementus. Vispirms visas sastāvdaļas tika novietotas stÅ«rÄ« un pēc tam sakārtotas gar malu. Å Ä« opcija mani neapmierināja, un es pavadÄ«ju ilgu laiku, manuāli izsekojot dēli pazÄ«stamajā Eagle CAD vidē.

Sietspiede ir svarÄ«gs iespiedshēmas plates elements. AtkļūdoÅ”anas panelÄ« ir jābÅ«t ne tikai elektronisko komponentu parakstiem, bet arÄ« visiem savienotājiem ir jābÅ«t parakstÄ«tiem. Tāfeles aizmugurē ievietoju tabulas-atgādinājumus ar kontroliera portu funkcijām (galvenais, alternatÄ«vais, ignorētais, faktiskais). Es pasÅ«tÄ«ju iespiedshēmu plates ražoÅ”anu Ķīnā labi zināmajā PCBWay birojā. NeslavÄ“Å”u, jo kvalitāte laba. Viņi var labāk rÄ«koties ar mazākām pielaidēm, bet par maksu.

AtkļūdoŔanas plates izstrāde priekŔ K1986BE1QI (aviācija)
Izgatavotas iespiedshēmas plates MDB1986, (c) Autora foto

Nācās atlodēt detaļas ā€œuz ceļgalaā€ ar 40 vatu lodāmuru un POS-61 lodmetālu, jo lodēju reti, 1-2 reizes gadā, un lodÄ“Å”anas pasta izžuva. Man arÄ« bija jāmaina Ä·Ä«nieÅ”u CS32F103 kontrolieris uz oriÄ£inālo STM32F103, un pēc tam arÄ« jānomaina atmiņa. Kopumā tagad esmu pilnÄ«bā apmierināts ar rezultātu, lai gan vēl neesmu pārbaudÄ«jis RS-232 un CAN darbÄ«bu.

AtkļūdoŔanas plates izstrāde priekŔ K1986BE1QI (aviācija)
AtkļūdoÅ”anas dēlis MDB1986 darbÄ«bā ā€” spÄ«d un silda, (с) Autora foto

Vietnē "Milandra" jÅ«s varat atrast pietiekami daudz mācÄ«bu materiāli mācÄ«bu kontrolieriem 1986BE9 sērija (Cortex-M3 kodols), bet K1986BE1QI (aviācijas) mikrokontrollerim tur neko neredzu. Pārskatot tur publicētos materiālus, rokasgrāmatas un laboratorijas darbus augstskolām, priecājos, ka visā valstÄ« tiek apmācÄ«ts personāls darbam ar Krievijas kontrolieriem. Lielākā daļa mācÄ«bu materiālu ir sagatavoti darbam ar I / O portiem, taimeriem, ADC, DAC, SPI, UART. Tiek izmantoti dažādi IDE (Keil, IAR, CodeMaster). Kaut kur viņi programmē, izmantojot CMSIS reÄ£istrus, un kaut kur viņi izmanto MDR bibliotēku. Jāpiemin resurss Sāciet Milandr, kurā ir daudz rakstu no praktizējoÅ”iem programmētājiem. Un, protams, mēs nedrÄ«kstam aizmirst par Forums Milandra.

Domājot par MilandruMikroelektronika Krievijā attÄ«stās, un uzņēmumam "Milandr" ir nozÄ«mÄ«ga loma Å”ajā procesā. Parādās jauni interesanti mikrokontrolleri, piemēram, 1986BE81T un Elektrosila ar SpaceWire un MKIO interfeisiem (tāds pats kā 1986BE1 un, iespējams, ar tādām paŔām problēmām) utt. Bet parastiem studentiem, skolotājiem un bÅ«vinženieriem Ŕādas mikroshēmas nav reāli iegādāties. Tas nozÄ«mē, ka inženieru kopiena nevarēs ātri identificēt Ŕīs mikroshēmas kļūdas un problēmas. Man Ŕķiet, ka vispirms ir jāizgatavo mikroshēmas plastmasas korpusā, jāizdala visiem interesentiem un tikai pēc aprobācijas (latīņu approbatio - apstiprināŔana, atzÄ«Å”ana) speciālisti var sagatavot revÄ«ziju keramikas-metāla korpusā ar aizsardzÄ«bu no visi briesmÄ«gie faktori. Ceru, ka jau tuvākajā laikā mÅ«s VISI iepriecinās izstādēs pieteiktie jaunie projekti.
Ikviens var atkārtot, modificēt un izmantot manis izstrādāto atkļūdoÅ”anas dēli mācÄ«bu procesā. Vispirms uztaisÄ«ju sev dēli, bet sanāca tik labi, ka Es nolēmu dalÄ«ties ar visiem.

K1986BE1QI (gaiss) ir ļoti interesants kontrolieris ar unikālām saskarnēm, ko var izmantot universitātēs studentu mācÄ«Å”anai. Domāju, ka pēc kontrolierÄ« konstatēto kļūdu laboÅ”anas un sertifikācijas testu nokārtoÅ”anas kontrolieris lidos vārda tieŔākajā nozÄ«mē!

Avots: www.habr.com

Pievieno komentāru