Ka hoʻomohala ʻana o kahi papa hoʻomohala no K1986BE1QI (lele)

Ka hoʻomohala ʻana o kahi papa hoʻomohala no K1986BE1QI (lele)

I kekahi mau makahiki i hala aku nei, ua kamaʻāina au i nā microcontrollers Lūkini mai Milander. ʻO ia ka makahiki 2013, i ka wā i kūkākūkā ikaika ai nā ʻenekinia i nā hopena mua o ka Federal Target Program "Development of electronic component base and radio electronics" no 2008-2015. I kēlā manawa, ua hoʻokuʻu ʻia ka mea hoʻokele K1986BE9x (Cortex-M3 core), a ua ʻike ʻia ka mea hoʻokele 1986BE1T (Cortex-M1 core). I loko o ka pahu plastik, LQFP-144, loaʻa iā ia ka inoa K1986BE1QI (aviation) i ka palapala, a ma ka chip ponoʻī ka inoa MDR32F1QI. Ma ka punaewele o ka mea hana, loaʻa iā ia ka suffix "avia", no ka mea, loaʻa iā ia nā pilina pili i ka ʻoihana mokulele (ARINC 429, MIL_STD_1553).

ʻO ka mea kupanaha, i ka manawa o ka hāʻawi ʻana i kēia mau mea hoʻokele, ua hoʻomākaukau ka hui ʻo Milander i nā kit debugging a me kahi waihona o nā subroutines no ka hana ʻana me nā peripherals, "akā me ka ʻole o nā hōʻoia a i ʻole nā ​​kuleana e pili ana i ka pololei o ka waihona." Ua like ka waihona me ka Standard Peripheral Library mai STMicroelectronics. Ma keʻano laulā, ʻo nā mea hoʻokele ARM āpau i kūkulu ʻia ma ke kumu Cortex-M he nui nā mea maʻamau. No kēia kumu, ua hoʻomaka koke ka kamaʻilio ʻana me nā mea hoʻokele Lūkini hou. A no ka poʻe i kūʻai i nā pahu debugging branded, ua hāʻawi ʻia ke kākoʻo ʻenehana i ka wā hoʻohana.

Ka hoʻomohala ʻana o kahi papa hoʻomohala no K1986BE1QI (lele)
ʻO ka pahu debug no ka microcontroller 1986BE1T, © Milander

Eia naʻe, i ka wā lōʻihi, ua hoʻomaka ka "maʻi kamaliʻi" o nā microcircuits hou a me nā hale waihona puke. ʻO nā hiʻohiʻona hoʻāʻo o ka firmware i hana me ka ʻole o nā pilikia ʻike ʻia, akā me nā hoʻololi koʻikoʻi, ua loaʻa nā pōpilikia a me nā hewa. ʻO ka "swallow" mua i kaʻu hana he mau hemahema hikiʻole ke wehewehe i ka hana o ka mea hoʻokele CAN. I hoʻokahi makahiki ma hope mai, ua ʻike ʻia kahi pilikia me ka module ma ka mea hoʻokele 1986BE1T (aviation) o kahi loiloi mua. MKIO (ke ala hoʻololi ʻike lehulehu). Ma keʻano laulā, pau ka hoʻohana ʻana i kēia mau microcontrollers a hiki i 2016. Ua nui ka manawa a me nā aʻalolo i ka ʻike ʻana i kēia mau pilikia, hiki ke loaʻa ka hōʻoia i kēia manawa nā papa inoa hewa (Errata).

ʻO kahi hiʻohiʻona maikaʻi ʻole he pono ia e hana a hoʻoponopono i nā hewa ʻaʻole ma nā papa debugging, akā ma nā papa prototype o nā mea i hoʻolālā ʻia no ka hana ʻana i ka hale hana serial. ʻAʻohe mea maʻamau ma laila koe wale nō ka mea hoʻohui JTAG. He paʻakikī a paʻakikī ka hoʻohui ʻana me kahi loiloi loiloi, a ʻaʻohe mau LED a i ʻole nā ​​​​pale. No kēia kumu, ua ʻike ʻia ka manaʻo o ka hana ʻana i kaʻu papa debugging ponoʻī i koʻu poʻo.

Ma kekahiʻaoʻao, aia nā pahu hoʻopalapala hōʻailona ma ka mākeke, a me nā papa nani mai ka hui LDM-Systems mai Zelenograd. Ma ka ʻaoʻao ʻē aʻe, ke kū nei nā kumukūʻai no kēia mau huahana, a ʻo ka hana maʻamau me ka ʻole o nā kāleka hoʻonui ʻaʻole i kūpono i nā mea i manaʻo ʻia. ʻAʻohe mea hoihoi iaʻu kahi papa me kahi mea hoʻokele soldered a me kahi mea hoʻohui pine. A ʻoi aku ka uku o nā papa hoihoi.

Ka hoʻomohala ʻana o kahi papa hoʻomohala no K1986BE1QI (lele)
Papa hoʻomohala MILADR LDM-HELPER-K1986BE1QI-FULL, © LDM Systems

Loaʻa i ka hui ʻo Milander kahi kulekele kumu kūʻai kūʻai kūʻokoʻa a kūʻai aku. No laila, hiki ke kiʻi i nā laʻana manuahi o kekahi microcircuits, akā loaʻa wale kēia i nā hui kānāwai a pili pū me kahi ʻimi bureaucratic. Ma ka laulā, ʻo nā microcircuits i loko o kahi pahu metala-ceramic he gula ma ke ʻano maoli a me ke ʻano. No ka laʻana, ʻo kahi mea hoʻokele 1986BE1T e kūʻai mai 14 a 24 tausani rubles ma Moscow. ʻO ka 1645RU6U static memory chip kumukūʻai mai 15000 rubles. A ʻo kēia ke kauoha kumukūʻai no nā huahana a pau. ʻO ka hopena, ʻo nā keʻena noiʻi kūikawā me nā kauoha aupuni e mālama i ke kālā a hilahila i kēlā mau kumukūʻai. ʻO nā microcircuits i loko o kahi pahu plastik no ka hoʻohana kīwila ʻoi aku ka liʻiliʻi loa, akā ʻaʻole i loaʻa mai nā mea hoʻolako kaulana. Eia kekahi, ʻoi aku ka maikaʻi o nā microcircuits i loko o kahi pahu plastik, me he mea lā iaʻu, ʻoi aku ka maikaʻi ma mua o nā "gula". No ka laʻana, ʻaʻole hiki iaʻu ke holo i ka mea hoʻokele K1986BE1QI ma 128 MHz me ka hoʻonui ʻole ʻana i ka palena latency flash. I ka manawa like, piʻi ka mahana o kēia mea hoʻoponopono i 40-50C. Akā, ua hoʻomaka ka mea hoʻokele 1986BE1T ("gula") ma 128 MHz me ka ʻole o nā hoʻonohonoho hou a noho anuanu. Maikaʻi ʻo ia.

Ka hoʻomohala ʻana o kahi papa hoʻomohala no K1986BE1QI (lele)
"Golden" microcontroller 1986BE1T, (c) Milander

Laki wau i hiki ke kūʻai ʻia kahi microcontroller i loko o kahi pahu plastik ma ke kūʻai kūʻai mai LDM Systems, a loaʻa manuahi nā kiʻi papa āpau. ʻO ka mea maikaʻi ʻole ʻo ia ma ka pūnaewele i ke kiʻi o ka mea hoʻoponopono hiki iā ʻoe ke ʻike i kahi māka e ʻōlelo nei ʻo ia ka 4th revision o 2014, ʻo ia hoʻi. me na hemahema. Ua noʻonoʻo wau no ka manawa lōʻihi inā kūʻai a kūʻai ʻole paha. Ua hala kekahi mau makahiki e like me kēia...

ʻAʻole i nalowale ka manaʻo o ka hana ʻana i kahi papa debug ma nā wahi ʻē aʻe. Me ka liʻiliʻi, ua hoʻokumu au i nā koi āpau a noʻonoʻo e pili ana i ke kau ʻana i nā mea āpau ma ka papa hoʻokahi i paʻa a ʻaʻole pipiʻi. I ka manawa like, kauoha au i nā mea i nalowale mai ka Kina. ʻAʻole au i wikiwiki - ua hana wau i nā mea āpau noʻu iho. Ua kaulana nā mea hoʻolako Kina - pono wau e kauoha i ka mea like mai nā wahi like ʻole e kiʻi i nā mea āpau aʻu e pono ai. Eia kekahi, ua hoʻohana ʻia kekahi o nā pahu hoʻomanaʻo - ʻike ʻia i kūʻai ʻia mai nā mea i haki. Ua hoʻi mai kēia e hoʻopilikia iaʻu ma hope.

ʻAʻole maʻalahi ke kūʻai ʻana i kahi microcontroller Milander K1986BE1QI (air). Ma ka hale kūʻai Chip a me Dip hoʻokahi, ma ka ʻāpana "Items to order", ʻike wau iā K1986BE92QI wale nō no 740 rubles, akā ʻaʻole kūpono iaʻu. ʻO ke koho wale nō ke kūʻai aku i kahi loiloi hou ʻole mai LDM-Systems no 2000 rubles. No ka mea ʻaʻole hiki iaʻu ke loaʻa kahi pani ma kahi ʻē aʻe, ua hoʻoholo wau e kūʻai i kaʻu mea i loaʻa. I koʻu kahaha hauʻoli, ua kūʻai mai lākou iaʻu i kahi mea hoʻoponopono hou i hana ʻia ma Dekemaba 2018, hoʻoponopono 6+ (1820). Akā he kiʻi kahiko ka pūnaewele, a i ka manawa e kākau ai ʻaʻole i loaʻa ka mea hoʻokele ...

Ka hoʻomohala ʻana o kahi papa hoʻomohala no K1986BE1QI (lele)
Microcontroller K1986BE1QI (lele) i loko o ka ʻike loea, (c) Kiʻi na ka mea kākau.

ʻO nā hiʻohiʻona ʻenehana nui o kaʻu papa debug MDB1986 i kēia lā:

  • i kūkulu ʻia i ka debugger-programmer, kūpono me J-Link a me CMSIS-DAP;
  • hoʻomanaʻo paʻa 4Mbit (256k x 16, 10 ns);
  • pahu hoʻomanaʻo uila 64Mbit, Winbond 25Q64FVSIG;
  • ʻO ka transceiver interface RS-232 me nā laina RTS a me CTS;
  • nā kikowaena a me nā mea hoʻohui no Ethernet, USB, CAN;
  • MAX7 7221-ʻāpana hōʻike hoʻoponopono;
  • hoʻohui pine no ka hana pū me MKIO (MIL_STD_1553) a me ARINC429;
  • phototransistor Everlight PT17-21C;
  • ʻelima mau kukui LED, kahi pihi hoʻonohonoho hou a me ʻelua mau pihi mea hoʻohana;
  • ʻO ka lako mana i ke awa USB he 5 volts;
  • nā ana o ka papa kaapuni paʻi 100 x 80, mm

Ua makemake au i nā papa moʻo STM-Discovery no ka mea, loaʻa iā lākou kahi polokalamu-debugger i kūkulu ʻia - ST-Link. Hana wale ʻo Branded ST-Link me nā mea hoʻokele mai STMicroelectronics, akā i kekahi mau makahiki i hala aku nei ua hiki ke hoʻonui i ka firmware ma ST-Link a loaʻa iā SEGGER J-Link OB (ma ka papa) Debugger. Ma ke kānāwai, aia ka palena i ka hoʻohana ʻana i ia debugger wale nō me nā papa STMicroelectronics, akā ʻoiaʻiʻo ʻaʻole i kaupalena ʻia ka hiki. No laila, i ka loaʻa ʻana o kahi J-Link OB, hiki iā ʻoe ke loaʻa kahi polokalamu-debugger i kūkulu ʻia ma ka papa hoʻopau. Hoʻomaopopo wau e hoʻohana nā huahana LDM-Systems i ka mea hoʻololi CP2102 (Usb2Uart), hiki ke uila wale.

Ka hoʻomohala ʻana o kahi papa hoʻomohala no K1986BE1QI (lele)
STM32F103C8T6 microcontrollers, maoli a ʻaʻole maoli maoli, (c) Kiʻi na ka mea kākau

No laila, pono e kūʻai i ka STM32F103C8T6 kumu, no ka mea, ʻaʻole e hana pololei ka firmware proprietary me ka clone. Ua kanalua wau i kēia thesis a ua hoʻoholo wau e hoʻāʻo i ka mana CS32F103C8T6 mai ka hui Kina CKS. ʻAʻohe oʻu hoʻopiʻi e pili ana i ka mea hoʻoponopono ponoʻī, akā ʻaʻole i hana ka firmware ST-Link proprietary i loko. Ua hana ʻo J-Link i kahi hapa - ua ʻike ʻia ke kelepona USB, akā ʻaʻole i hana ka mea papahana i kāna mau hana a hoʻomanaʻo mau ʻo ia he "hewa".

Ka hoʻomohala ʻana o kahi papa hoʻomohala no K1986BE1QI (lele)
Ua hewa i ka holo ʻana i ka debugger ma kahi mea hoʻoponopono kumu ʻole

ʻAʻole au i ʻoluʻolu i kēia a kākau mua i ka firmware no ka blinking i ka LED, a laila hoʻokō i ka noi IDCODE me ka hoʻohana ʻana i ka protocol JTAG. ʻO ka mea papahana ST-Link, i loaʻa iaʻu ma ka papa Discovery, a me ka polokalamu ST-Link Utility i hoʻomālamalama iā CS32F103C8T6 me ka pilikia ʻole. I ka hopena, ua maopopo iaʻu ke hana nei kaʻu papa. I koʻu hauʻoli, ua hoʻopuka me ka ʻoliʻoli ka mea hoʻokele pahuhopu K1986BE1QI (aviation) i kāna IDCODE ma o ka laina TDO.

Ka hoʻomohala ʻana o kahi papa hoʻomohala no K1986BE1QI (lele)
Oscillogram o kahi laina hōʻailona TDO me kahi pane IDCODE i hoʻopaʻa ʻia, (c) Kiʻi na ka mea kākau

Ka hoʻomohala ʻana o kahi papa hoʻomohala no K1986BE1QI (lele)
No laila ua hiki mai ke awa SWD no ka hoʻopau ʻana i ka debugger ponoʻī a nānā i ka IDCODE

Aia kahi koho me kahi debugger CMSIS-DAP (Debug Access Port). ʻO ke kūkulu ʻana i kahi papahana mai nā kumu ARM ʻaʻole ia he hana maʻalahi, lawe wau i ka papahana mai X893, a laila hoʻāʻo wau iā DAP42. ʻO ka mea pōʻino, ua maloʻo ʻo Keil uVision a ʻaʻole makemake e hana pū me lākou. ʻO ka hopena, ua hoʻololi au i ka puʻupuʻu debugger me kahi STM32F103C8T6 ponoʻī a ʻaʻole i hoʻi hou i kēia pilikia.

Ka hoʻomohala ʻana o kahi papa hoʻomohala no K1986BE1QI (lele)
ʻO ka hana kūleʻa o ka mea hoʻopio i kūkulu ʻia ʻo J-Link STLink V2

I ka loaʻa ʻana o nā mea nui a pau o ka papa hoʻomohala e hiki mai ana, ua hele au i ka Eagle CAD a ʻike wau ʻaʻole lākou i loko o ka waihona waihona. ʻAʻohe wahi e hele ai - pono wau e huki iā lākou iho. I ka manawa like, ua hana au i nā wahi e kau ai no ka hoʻomanaʻo, kahi mea hoʻohui HanRun no Ethernet, a hoʻohui i nā papa no nā mea pale a me nā capacitors. Hiki ke loaʻa ka waihona papahana a me ka waihona waihona ma kaʻu GitHub.

ʻO ke kiʻi hoʻolālā o ka papa hoʻomohala MDB1986Ka hoʻomohala ʻana o kahi papa hoʻomohala no K1986BE1QI (lele)

Hoʻohana ʻia ka papa e kahi kumu 5 volt DC i loaʻa mai ke awa USB. Aia he ʻelua mau awa USB Type-B ma ka papa. ʻO kekahi no ka mea papahana, ʻo ka lua no ka mana K1986BE1QI. Hiki i ka papa ke hana mai kekahi o kēia mau kumu a i ʻole nā ​​mea ʻelua i ka manawa like. Hoʻokō ʻia ka hoʻoponopono haʻahaʻa maʻalahi a me ka pale laina mana me ka hoʻohana ʻana i nā diodes Schottky, ma ke kaapuni D2 a me D3 (SS24). Ma ke kiʻikuhi hiki iā ʻoe ke ʻike i ka hoʻihoʻi hou ʻana i nā fuses F1 a me F2 ma 500 mA. Mālama ʻia nā laina hōʻailona o ke awa USB e kahi hui diode USBLC6-2SC6.

ʻIke ʻia ka ST-Link debugger-programmer circuit i nā mea he nui; hiki ke loaʻa ma ka palapala no nā papa STM32-Discovery a me nā kumu ʻē aʻe. No ka firmware mua o ka clone ST-Link/J-Link-OB/DAP (koho), lawe au i nā laina SWDIO (PA13), SWCLK (PA14), GND. Nui ka poʻe e hoʻohana i ka UART no ka firmware a koi ʻia e huki i nā mea lele BOOT. Akā ʻike wau ʻoi aku ka maʻalahi o ka SWD, a ʻae kēia protocol i ka debugging.

Aneane nā mea a pau o ka papa e hoʻohana ʻia e 3.3 volts, mai ka AMS1117-3.3 voltage regulator. No ke kāohi ʻana i ka hoʻopili electromagnetic a me nā piʻi ʻana o kēia manawa, hoʻohana ʻia nā kānana LC mai nā capacitors a me nā chokes o ka moʻo BLM31PG.

Ma kahi kaʻawale, pono e haʻi i ka mea hoʻokele hōʻike MAX7 7221-segment. Wahi a ka ʻōlelo kikoʻī, ʻo ka mana i manaʻo ʻia mai 4 a 5.5 volts, a ʻo ke kiʻekiʻe kiʻekiʻe o ka hōʻailona (logical one) ma kahi o 3.5V (0.7 x VCC), me kahi lako 5V. No ka mea hoʻoponopono K1986BE1QI (aviation), ʻo ka hoʻopuka ʻana o kahi ʻāpana loiloi e pili ana i ka volta mai 2.8 a i 3.3V. ʻIke ʻia aia ka like ʻole ma waena o nā pae hōʻailona e hoʻopilikia ai i ka hana maʻamau. Ua hoʻoholo wau e mana i ka MAX7221 ma 4V a hoʻemi i nā pae hōʻailona i 2.8V (0.7 x 4 = 2.8). No ka hana ʻana i kēia, ua hoʻokomo ʻia ka diode D4 (RS1A a i ʻole FR103) i ka moʻo i ke kaapuni mana o ka mea hoʻokele. ʻO 0.9V ka hāʻule o ka volta (Schottky diode 0.3V a me ka diode 0.6V), a hana nā mea a pau.

ʻO ka hapa nui o nā awa o ka microcontroller K1986BE1QI (aviation) kūpono me nā hōʻailona a hiki i 5V. No laila, ʻaʻohe pilikia e hoʻohana ana i ka transceiver MCP2551 CAN, e hana pū ana ma 5V. Hōʻike ʻia ka chip MAX232 ma ke ʻano he transceiver RS-3232 i ke kiʻikuhi, akā ʻoiaʻiʻo ua hoʻohana wau iā SN65C3232D mai Texas Instruments, no ka mea hana ia mai 3.3V a hāʻawi i ka wikiwiki a hiki i 1Mbit/s.

Aia i loko o ka papa he 4 quartz resonator - hoʻokahi no ka debugger (8 MHz) a ʻekolu no ka microcontroller target K1986BE1QI (aviation) me nā helu o 32.768 kHz, 16 MHz, 25 MHz. He mau mea pono keia, no ka mea Aia nā palena o ka oscillator RC i kūkulu ʻia i loko o kahi ākea mai 6 a 10 MHz. Pono ka alapine o 25 MHz no ka hana o ka mea hoʻoponopono Ethernet i kūkulu ʻia. No kekahi kumu, ʻo ka pūnaewele ʻo Milandra (ma ke kuhi hewa paha) e ʻōlelo nei ʻaʻohe Ethernet i ka pahu plastik. Akā e hilinaʻi mākou i nā kikoʻī a me nā ʻoiaʻiʻo.

ʻO kahi mea hoʻoikaika nui no ka hana ʻana i kaʻu papa hoʻomohala ponoʻī ʻo ia ka manawa kūpono e hana pū me ka bus system waho EBC (external bus controller), ʻo ia hoʻi he awa like. ʻO ka K1986BE1QI microcontroller (mokulele) hiki iā ʻoe ke hoʻohui a hana pū me nā ʻāpana hoʻomanaʻo waho a me nā ʻaoʻao peripheral, no ka laʻana, nā ADC, FPGA, etc. Nui nā mana o ka ʻōnaehana ʻōnaehana waho - hiki iā ʻoe ke hana me 8-bit, 16-bit a me 32-bit static RAM, ROM a me NAND Flash. No ka heluhelu/kākau ʻana i ka ʻikepili 32-bit, hiki i ka mea hoʻoponopono ke hana i nā hana like ʻelua no nā ʻāpana 2-bit, a me 16 mau hana no nā ʻāpana 8-bit. ʻIke loa, e hoʻopau wikiwiki ʻia kahi hana 4-bit I/O me kahi pahi data 32-bit. Loaʻa nā hemahema i ka pono o ka papahana e hana me ka ʻikepili 32-bit, a pono ka papa e waiho i 32 tracks.

Ka hoʻomohala ʻana o kahi papa hoʻomohala no K1986BE1QI (lele)
ʻO nā pāpaʻi RAM Static, hoʻohana ʻia (e manaʻo ʻoe i kahi hemahema)

ʻO kahi hoʻonā kaulike e hoʻohana i nā pahu hoʻomanaʻo 16-bit. Ua loaʻa iaʻu nā ʻāpana ʻāpana Integrated Silicon Solutions Inc. (ISSI IS61LV25616AL, 16 x 256k, 10 ns, 3.3V). ʻOiaʻiʻo, aia ka hui ʻo Milander i kāna mau pahu hoʻomanaʻo static moʻo 1645RU, akā, ua nui ke kumu kūʻai a loaʻa ʻole. ʻO kahi ʻē aʻe, aia nā pin-compatible Samsung K6R4016V1D. Ma mua, ua ʻōlelo wau ua hoʻohana ʻia nā microcircuits a ʻo ke kope aʻu i hoʻokomo mua ai i hāʻawi i nā hemahema a me nā waiwai chaotic i ka laina data 15th. Ua hala kekahi mau lā no ka ʻimi ʻana i nā hewa lako, a ʻoi aku ka nui o ka manaʻo o ka hauʻoli i ka wā i hoʻololi ai au i ka puʻupuʻu pōʻino me kahi mea hana. E like me ia, ʻo ka wikiwiki o ka hana ʻana me ka hoʻomanaʻo waho e waiho nui i ka makemake.

Kaʻa kaʻa waho a me ke ʻano KūʻokoʻaLoaʻa i ka K1986BE1QI microcontroller (mokulele) kahi ʻano StandAlone kū hoʻokahi, i hoʻolālā ʻia no ke komo pololei ʻana i waho i ka Ethernet a me nā mea hoʻokele MKIO (MIL_STD_1553) ma o kahi kaʻa waho, me ke kumu i ke kūlana hoʻonohonoho, ʻo ia. ʻaʻole i hoʻohana ʻia. He kūpono kēia ʻano no nā kaʻina hana a me nā FPGA ʻaʻohe Ethernet a / a i ʻole MKIO.
Penei ke kii pili.

  • kaʻa ʻikepili MCU(D0-D15) => SRAM(I/O0-I/O15),
  • kaʻa helu wahi MCU(A1-A18) => SRAM(A0-A17),
  • mana MCU(nWR,nRD,PortC2) => SRAM (WE,OE,CE),
  • Hoʻopili ʻia ʻo SRAM(UB,LB) a huki ʻia i ka lepo ma o kahi pale.

Hoʻopili ʻia ka laina CE i ka lako mana ma o kahi pale; ʻaʻole hoʻohana ʻia nā pine no ka laʻana i ka MCU byte (BE0-BE3). Ma lalo o ka mea hao, hāʻawi wau i ke code no ka hoʻomaka ʻana i nā awa a me ka mea hoʻokele kaʻa kaʻa waho.

Ke hoʻomaka nei i nā awa a me ka mea hoʻoponopono EBC (ka mea hoʻokele kaʻa waho waho)

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

ʻO ka microcontroller i loko o ka pūʻolo LQFP-144 a me ka hoʻomanaʻo i loko o ka pūʻolo TSOP-44 he nui nā pine e pili ana a lawe i kahi nui ma ka papa kaapuni paʻi. I ka loaʻa ʻana o ka ʻike i ka hoʻoponopono ʻana i nā pilikia optimization ma ke kahua o ka ʻoihana, ua maopopo iaʻu he pono ke kau mua i kēia mau microcircuits ma ka papa. Ma nā kumu like ʻole ua loaʻa iaʻu nā loiloi laudatory e pili ana CAD TopoR (Topological Router). Ua hoʻoiho au i ka mana hoʻāʻo a ua hiki iaʻu ke lawe aku i kaʻu papahana mai Eagle CAD ma laila wale nō ma hope o koʻu wehe ʻana i nā mea āpau. ʻO ka mea pōʻino, ʻaʻole i kōkua ka papahana TopoR iaʻu e kau i nā mea he 10 ma ka papa. ʻO ka mea mua, ua kau ʻia nā mea āpau i kahi kihi, a laila hoʻonohonoho ʻia ma ka ʻaoʻao. ʻAʻole au i ʻoluʻolu i kēia koho, a no ka manawa lōʻihi ua ʻimi au i ka papa me ka lima ma ka ʻenehana Eagle CAD maʻamau.

ʻO kahi mea koʻikoʻi o ka papa kaapuni paʻi ʻia ka paʻi kilika. ʻAʻole pono e loaʻa i ka papa hoʻomohala nā lepili no nā ʻāpana uila, akā pono pū nā mea hoʻohui a pau. Ma ke kua o ka papa ua kau au i nā papa me nā hana o nā awa hoʻomalu (nui, koho, overridden, maoli). Ua kauoha au i ka hana ʻana i nā papa kaapuni paʻi ma Kina mai ke keʻena PCBWay kaulana. ʻAʻole wau e hoʻomaikaʻi iā ia no ka mea maikaʻi ka maikaʻi. Hiki iā lākou ke hana i ka maikaʻi, me ka hoʻomanawanui ʻoi aku, akā no ka uku.

Ka hoʻomohala ʻana o kahi papa hoʻomohala no K1986BE1QI (lele)
Hana ʻia nā papa kaapuni paʻi MDB1986, (c) Na ka mea kākau ke kiʻi

Pono wau e kūʻai aku i nā ʻāpana "ma koʻu mau kuli" me kahi hao hao 40-watt a me POS-61 solder, no ka mea ʻaʻole liʻiliʻi wau e kūʻai aku, 1-2 mau manawa i ka makahiki, a ua maloʻo ka paʻi. Pono au e hoʻololi i ka mana CS32F103 Kina i ka STM32F103 kumu, a laila hoʻololi i ka hoʻomanaʻo. Ma keʻano laulā, ua hauʻoli loa wau i ka hopena, ʻoiai ʻaʻole wau i nānā i ka hana o RS-232 a me CAN.

Ka hoʻomohala ʻana o kahi papa hoʻomohala no K1986BE1QI (lele)
MDB1986 debug papa i ka hana - ia e alohilohi a mehana, (c) Kiʻi na ka mea kākau

Ma ka pūnaewele Milandra hiki iā ʻoe ke loaʻa lawa mea hoʻonaʻauao no nā mea hoʻokele aʻo moʻo 1986BE9 (Cortex-M3 core), akā no ka microcontroller K1986BE1QI (aviation) ʻaʻole wau ʻike i kekahi mea ma laila. Ma hope o ka nānā ʻana i nā mea hana, nā manual a me nā hana hoʻokolohua no nā kulanui i paʻi ʻia ma laila, hauʻoli wau i ka hoʻomaʻamaʻa ʻia ʻana o nā limahana ma ka ʻāina e hana pū me nā mea hoʻokele Lūkini. Hoʻomākaukau ka hapa nui o nā mea hoʻomaʻamaʻa no ka hana ʻana me nā awa I/O, timers, ADC, DAC, SPI, UART. Hoʻohana ʻia nā wahi hoʻomohala IDE like ʻole (Keil, IAR, CodeMaster). Ma kahi e hoʻohana ai lākou i nā papa inoa CMSIS, a ma kahi e hoʻohana ai lākou i ka MDR Library. Pono e haʻi ʻia nā kumuwaiwai E hoʻomaka iā Milandr, aia nā ʻatikala he nui mai ka hoʻomaʻamaʻa ʻana i nā mea polokalamu. A, ʻoiaʻiʻo, ʻaʻole pono mākou e poina Huina Milandra.

Manaʻo e pili ana iā MilandraKe ulu nei ka Microelectronics ma Rūsia, a he kuleana koʻikoʻi ka hui ʻo Milander i kēia kaʻina hana. Ke ʻike ʻia nei nā microcontrollers hoihoi hou, no ka laʻana, 1986BE81T a me Elektrosila me SpaceWire a me MKIO interfaces (e like me 1986BE1 a me nā pilikia like ʻole), etc. Akā ʻaʻole hiki i nā haumāna maʻamau, nā kumu a me nā ʻenekini kīwila ke kūʻai i kēlā microcircuits. ʻO ke ʻano kēia ʻaʻole hiki i ke kaiāulu ʻenekinia ke ʻike koke i nā hewa a me nā pilikia me kēia chip. Me he mea lā iaʻu ka mea mua e pono ai e hana i nā microcircuits i loko o kahi pahu plastik, e hāʻawi iā lākou i nā poʻe makemake āpau, a ma hope o ka ʻae ʻia (Latin approbatio - ʻae ʻia, ʻike ʻia) e nā loea, hiki iā lākou ke hoʻomākaukau i ka hoʻoponopono hou ʻana i kahi pahu metala-ceramic. palekana mai nā mea weliweli a pau. Manaʻo wau i ka wā e hiki mai ana e ʻoliʻoli mākou i nā papahana hou i hoʻolaha ʻia ma nā hōʻike.
Hiki ke hana hou, hoʻololi a hoʻohana ʻia ka papa debug aʻu i kūkulu ai e kekahi i ke kaʻina hoʻonaʻauao. ʻO ka mea mua, ua hana wau i ka papa noʻu iho, akā maikaʻi loa ia Ua hoʻoholo wau e kaʻana like me nā mea a pau.

ʻO K1986BE1QI (air) he mea hoʻoponopono hoihoi loa me nā loulou kū hoʻokahi i hiki ke hoʻohana ʻia i nā kulanui e aʻo i nā haumāna. Manaʻo wau ma hope o ka hoʻoponopono ʻana i nā hewa i ʻike ʻia i loko o ka mea hoʻoponopono a me ka hele ʻana i nā hoʻokolohua hōʻoia, e lele ka mea hoʻoponopono i ke ʻano maoli o ka ʻōlelo!

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka