K1986BE1QI (ավիացիա) զարգացման տախտակի մշակում

K1986BE1QI (ավիացիա) զարգացման տախտակի մշակում

Մի քանի տարի առաջ միլանդերից ծանոթացա ռուսական միկրոկոնտրոլերների հետ։ 2013 թվականն էր, երբ ինժեներները ակտիվորեն քննարկում էին 2008-2015 թվականների Դաշնային թիրախային ծրագրի «Էլեկտրոնային բաղադրիչների բազայի և ռադիոէլեկտրոնիկայի զարգացում» առաջին արդյունքները: Այդ ժամանակ արդեն թողարկվել էր K1986BE9x կարգավորիչը (Cortex-M3 core), իսկ 1986BE1T կարգավորիչը (Cortex-M1 միջուկը) նոր էր հայտնվել։ Պլաստիկ պատյանում՝ LQFP-144, փաստաթղթերում այն ​​ուներ K1986BE1QI (ավիացիան), իսկ բուն չիպի վրա՝ MDR32F1QI նշումը: Արտադրողի կայքում այն ​​ունի «avia» վերջածանցը, քանի որ այն ունի ինքնաթիռների արդյունաբերության համար հատուկ միջերեսներ (ARINC 429, MIL_STD_1553):

Զարմանալիորեն, այս կարգավորիչների բաշխման ժամանակ Միլանդեր ընկերությունը պատրաստեց վրիպազերծման հավաքածուներ և ենթածրագրերի գրադարան՝ ծայրամասային սարքերի հետ աշխատելու համար, «բայց առանց գրադարանի ճշգրտության վերաբերյալ լրացուցիչ երաշխիքների կամ պարտավորությունների»: Գրադարանը նման է STMicroelectronics-ի ստանդարտ ծայրամասային գրադարանին: Ընդհանուր առմամբ, Cortex-M միջուկի վրա կառուցված բոլոր ARM կարգավորիչները շատ ընդհանրություններ ունեն: Այդ իսկ պատճառով ռուսաստանյան նոր կարգավարների հետ ծանոթացումը արագ ընթացավ։ Իսկ նրանց համար, ովքեր գնել են վրիպազերծման ֆիրմային փաթեթներ, օգտագործման ընթացքում տրամադրվել է տեխնիկական աջակցություն:

K1986BE1QI (ավիացիա) զարգացման տախտակի մշակում
Վրիպազերծման հավաքածու միկրոկոնտրոլերի համար 1986BE1T, © Milander

Սակայն ժամանակի ընթացքում սկսեցին ի հայտ գալ նոր միկրոսխեմաների և գրադարանների «մանկական հիվանդություններ»։ Որոնվածի փորձնական օրինակներն աշխատեցին առանց տեսանելի խնդիրների, բայց զգալի փոփոխություններով, տեղի ունեցան վթարներ և սխալներ: Իմ պրակտիկայում առաջին «կուլը» անբացատրելի ձախողումներ էին CAN կարգավորիչի աշխատանքի մեջ: Մեկ տարի անց մոդուլի հետ կապված խնդիր հայտնաբերվեց վաղաժամկետ վերանայման 1986BE1T (ավիացիոն) կարգավորիչում: MKIO (մուլտիպլեքս տեղեկատվության փոխանակման ալիք). Ընդհանուր առմամբ, այս միկրոկոնտրոլերների բոլոր վերանայումները մինչև 2016 թվականը սահմանափակ կիրառություն ունեին: Շատ ժամանակ և նյարդեր են ծախսվել այս խնդիրները բացահայտելու համար, որոնց հաստատումն այժմ կարելի է գտնել այստեղ սխալների ցուցակներ (Errata).

Տհաճ առանձնահատկությունն այն էր, որ անհրաժեշտ էր աշխատել և սխալներով զբաղվել ոչ թե վրիպազերծող տախտակների, այլ սարքերի նախատիպային տախտակների վրա, որոնք նախատեսված էին սերիական գործարանային արտադրության համար: Այնտեղ սովորաբար ոչինչ չկար, բացի JTAG միակցիչից: Տրամաբանական անալիզատորով միանալը դժվար էր և անհարմար, և սովորաբար չկար լուսադիոդներ կամ էկրաններ: Այդ իսկ պատճառով գլխումս հայտնվեց իմ սեփական կարգաբերման տախտակի ստեղծման գաղափարը:

Մի կողմից, շուկայում կային ֆիրմային կարգաբերման հավաքածուներ, ինչպես նաև Զելենոգրադից LDM-Systems ընկերության հիանալի տախտակներ: Մյուս կողմից, այս ապրանքների գները ցնցող են, և առանց ընդլայնման քարտերի հիմնական ֆունկցիոնալությունը չի արդարացնում սպասելիքները: Զոդված կարգավորիչով և փին միակցիչով տախտակն ինձ չի հետաքրքրում: Իսկ ավելի հետաքրքիր տախտակները թանկ են։

K1986BE1QI (ավիացիա) զարգացման տախտակի մշակում
Մշակման տախտակ MILANDR LDM-HELPER-K1986BE1QI-FULL, © LDM Systems

Միլանդեր ընկերությունն ունի յուրահատուկ գնային քաղաքականություն և շուկայավարում: Այսպիսով, որոշ միկրոսխեմաների անվճար նմուշներ կարելի է ստանալ, բայց դա հասանելի է միայն իրավաբանական անձանց և կապված է բյուրոկրատական ​​որոնումների հետ: Ընդհանուր առմամբ, մետաղ-կերամիկական պատյանում միկրոսխեմաները ոսկի են բառացի և փոխաբերական իմաստով: Օրինակ, 1986BE1T կարգավորիչը Մոսկվայում արժե 14-ից 24 հազար ռուբլի: 1645RU6U ստատիկ հիշողության չիպն արժե 15000 ռուբլիից: Եվ սա բոլոր ապրանքների գնային կարգն է: Արդյունքում, նույնիսկ պետական ​​պատվերներով մասնագիտացված գիտահետազոտական ​​ինստիտուտները գումար են խնայում և խուսափում նման գներից: Քաղաքացիական օգտագործման համար պլաստիկ տուփի միկրոսխեմաները զգալիորեն ավելի էժան են, բայց դրանք հասանելի չեն հանրաճանաչ մատակարարներից: Բացի այդ, պլաստիկ պատյանում միկրոսխեմաների որակը, ինձ թվում է, ավելի վատ է, քան «ոսկին»: Օրինակ, ես չկարողացա գործարկել K1986BE1QI կարգավորիչը 128 ՄՀց հաճախականությամբ՝ առանց ֆլեշ ուշացման պարամետրի մեծացման: Միաժամանակ այս կարգավորիչի ջերմաստիճանը բարձրացել է մինչև 40-50C։ Բայց 1986BE1T («ոսկի») կարգավորիչը սկսեց աշխատել 128 ՄՀց հաճախականությամբ՝ առանց լրացուցիչ կարգավորումների և մնաց սառը: Նա իսկապես լավն է:

K1986BE1QI (ավիացիա) զարգացման տախտակի մշակում
«Ոսկե» միկրոկոնտրոլեր 1986BE1T, (գ) Միլանդեր

Ես բախտավոր էի, որ պլաստմասե պատյանում միկրոկառավարիչը դեռ կարելի է գնել մանրածախ վաճառքից LDM Systems-ից, և տախտակի բոլոր գծապատկերները անվճար հասանելի են: Վատն այն է, որ կայքում վերահսկիչի լուսանկարում երևում է մակնշում, որտեղ ասվում է, որ սա 4 թվականի 2014-րդ վերանայումն է, այսինքն. թերություններով. Երկար մտածում էի՝ գնե՞լ, թե՞ ոչ։ Մի քանի տարի անցավ այսպես...

Վրիպազերծման տախտակի ստեղծման գաղափարը ոչ մի տեղ չի անհետացել: Աստիճանաբար ձևավորեցի բոլոր պահանջները և մտածեցի, թե ինչպես պետք է այդ ամենը տեղադրեմ մեկ տախտակի վրա, որպեսզի այն լինի կոմպակտ և ոչ թանկ: Միաժամանակ չինացիներից պատվիրեցի բացակայող բաղադրիչները։ Ես չէի շտապում, ամեն ինչ արեցի ինձ համար: Չինացի մատակարարները տխրահռչակ անփույթ են. ես ստիպված էի նույն բանը պատվիրել տարբեր վայրերից, որպեսզի ստանայի այն ամենը, ինչ անհրաժեշտ էր: Ավելին, պարզվեց, որ հիշողության չիպերից մի քանիսը օգտագործվել են, որոնք, ըստ երևույթին, զոդված են կոտրված սարքերից: Սա վերադարձավ ինձ ավելի ուշ:

Milander K1986BE1QI (օդ) միկրոկոնտրոլեր գնելը հեշտ գործ չէ: Նույն Chip and Dip խանութում, «Պատվիրվող իրեր» բաժնում ես գտա միայն K1986BE92QI 740 ռուբլով, բայց դա ինձ չէր համապատասխանում: Միակ տարբերակը LDM-Systems-ից ոչ թարմ տարբերակ գնելն է 2000 ռուբլով: Քանի որ ես այլ տեղ չէի կարող փոխարինող գտնել, որոշեցի գնել այն, ինչ ունեի: Ի զարմանս ինձ, նրանք ինձ վաճառեցին 2018 թվականի դեկտեմբերին արտադրված բոլորովին նոր կարգավորիչ, վերանայում 6+ (1820): Բայց կայքը դեռ հին լուսանկար ունի, և գրելու պահին կարգավորիչը հասանելի չէ...

K1986BE1QI (ավիացիա) զարգացման տախտակի մշակում
Microcontroller K1986BE1QI (ավիացիան) տեխնոլոգիական փաթեթավորման մեջ, (գ) Լուսանկարը՝ հեղինակի

Իմ վրիպազերծման տախտակի հիմնական տեխնիկական բնութագրերը MDB1986 հետո:

  • ներկառուցված վրիպազերծիչ-ծրագրավորող, համատեղելի J-Link-ի և CMSIS-DAP-ի հետ;
  • ստատիկ հիշողություն 4 Մբիթ (256k x 16, 10 ns);
  • ֆլեշ հիշողության չիպ 64 Մբիթ, Winbond 25Q64FVSIG;
  • RS-232 ինտերֆեյսի հաղորդիչ RTS և CTS գծերով;
  • ինտերֆեյսներ և միակցիչներ Ethernet-ի, USB-ի, CAN-ի համար;
  • MAX7 7221 հատվածի ցուցադրման կարգավորիչ;
  • PIN միակցիչ MKIO (MIL_STD_1553) և ARINC429-ի հետ աշխատելու համար;
  • ֆոտոտրանզիստոր Everlight PT17-21C;
  • հինգ գունավոր LED-ներ, վերակայման կոճակ և երկու օգտվողի կոճակ;
  • USB պորտին էներգիայի մատակարարումը 5 վոլտ է;
  • տպագիր տպատախտակի չափսերը 100 x 80, մմ

Ինձ դուր եկավ STM-Discovery շարքի տախտակները, քանի որ դրանք ունեն ներկառուցված ծրագրավորող-դեբագեր՝ ST-Link: Բրենդավորված ST-Link-ն աշխատում է միայն STMicroelectronics-ի կարգավորիչների հետ, բայց մի քանի տարի առաջ հնարավոր եղավ թարմացնել որոնվածը ST-Link-ում և ստանալ SEGGER J-Link OB (on-board) Debugger: Օրինականորեն նման կարգաբերիչ օգտագործելու սահմանափակում կա միայն STMicroelectronics տախտակների հետ, բայց իրականում ներուժը սահմանափակված չէ։ Այսպիսով, ունենալով J-Link OB, դուք կարող եք ունենալ ներկառուցված ծրագրավորող-վրիպազերծիչ վրիպազերծման տախտակի վրա: Ես նշում եմ, որ LDM-Systems-ի արտադրանքներում օգտագործվում է CP2102 (Usb2Uart) փոխարկիչը, որը կարող է միայն թարթել:

K1986BE1QI (ավիացիա) զարգացման տախտակի մշակում
STM32F103C8T6 միկրոկոնտրոլերներ՝ իրական և ոչ այնքան իրական, (գ) Լուսանկարը՝ հեղինակի

Այսպիսով, անհրաժեշտ էր գնել բնօրինակ STM32F103C8T6, քանի որ ֆիրմային որոնվածը ճիշտ չի աշխատի կլոնի հետ: Ես կասկածեցի այս թեզին և որոշեցի փորձել չինական CKS ընկերության CS32F103C8T6 վերահսկիչը: Ես բողոք չունեմ ինքնին վերահսկիչից, բայց սեփական ST-Link որոնվածը դրանում չէր աշխատում: J-Link-ը մասամբ աշխատեց. USB սարքը հայտնաբերվեց, բայց ծրագրավորողը չէր կատարում իր գործառույթները և անընդհատ հիշեցնում էր, որ այն «թերի» է։

K1986BE1QI (ավիացիա) զարգացման տախտակի մշակում
Սխալ՝ վրիպազերծիչը ոչ օրիգինալ կարգավորիչի վրա գործարկելիս

Ես չբավարարվեցի դրանով և նախ գրեցի լուսադիոդը թարթելու որոնվածը, իսկ հետո իրականացրեցի IDCODE հարցումը՝ օգտագործելով JTAG արձանագրությունը։ ST-Link ծրագրավորողը, որը ես ունեի Discovery տախտակի վրա, և ST-Link Utility ծրագիրը առանց որևէ խնդրի թարթեցին CS32F103C8T6, վերջում ես համոզվեցի, որ իմ տախտակը աշխատում է։ Ի ուրախություն ինձ, թիրախային կարգավորիչը K1986BE1QI (ավիացիան) ուրախությամբ թողարկեց իր IDCODE-ը TDO գծի միջոցով:

K1986BE1QI (ավիացիա) զարգացման տախտակի մշակում
TDO ազդանշանային գծի օսցիլոգրամ՝ կոդավորված IDCODE պատասխանով, (գ) Լուսանկարը՝ հեղինակի

K1986BE1QI (ավիացիա) զարգացման տախտակի մշակում
Այսպիսով, SWD նավահանգիստը հարմար էր ինքնին կարգաբերիչի վրիպազերծման և IDCODE-ը ստուգելու համար

Կար մի տարբերակ վրիպազերծիչով CMSIS-DAP (վրիպազերծման մուտքի միացք). ARM-ի աղբյուրներից նախագիծ կառուցելը հեշտ գործ չէ, ես նախագիծը վերցրել եմ այնտեղից X893, և հետո ես փորձեցի DAP42-ը: Ցավոք, Keil uVision-ը սառեց և չցանկացավ աշխատել նրանց հետ: Արդյունքում, ես փոխարինեցի վրիպազերծիչ չիպը հատուկ STM32F103C8T6-ով և երբեք չվերադարձա այս խնդրին:

K1986BE1QI (ավիացիա) զարգացման տախտակի մշակում
Ներկառուցված վրիպազերծիչ J-Link STLink V2-ի հաջող շահագործում

Երբ ապագա զարգացման տախտակի բոլոր հիմնական բաղադրիչները հասանելի էին, ես մտա Eagle CAD և հայտնաբերեցի, որ դրանք տարրերի գրադարանում չեն: Գնալու տեղ չկար, ես ինքս պետք է նկարեի դրանք: Միևնույն ժամանակ, ես պատրաստեցի մոնտաժային կետեր հիշողության համար, HanRun միակցիչ Ethernet-ի համար և ավելացրեցի շրջանակներ ռեզիստորների և կոնդենսատորների համար: Ծրագրի ֆայլը և բաղադրիչ գրադարանը կարելի է գտնել իմ GitHub-ում.

MDB1986 մշակման տախտակի սխեմատիկ դիագրամK1986BE1QI (ավիացիա) զարգացման տախտակի մշակում

Տախտակը սնուցվում է 5 վոլտ DC աղբյուրից, որը ստացվել է USB պորտից: Տախտակի վրա կա ընդհանուր երկու USB Type-B պորտ: Մեկը ծրագրավորողի համար է, երկրորդը՝ K1986BE1QI կարգավորիչի համար։ Խորհուրդը կարող է գործել այս աղբյուրներից որևէ մեկից կամ երկուսն էլ միաժամանակ: Բեռի ամենապարզ կարգավորումը և էլեկտրահաղորդման գծի պաշտպանությունն իրականացվում են Schottky դիոդների միջոցով, D2 և D3 (SS24) շղթայում: Նաև գծապատկերում կարող եք տեսնել F1 և F2 ինքնավերականգնվող ապահովիչներ 500 մԱ հզորությամբ: USB պորտի ազդանշանային գծերը պաշտպանված են USBLC6-2SC6 դիոդային հավաքույթով:

ST-Link կարգաբերիչ-ծրագրավորող սխեման հայտնի է շատերին, այն կարելի է գտնել STM32-Discovery տախտակների և այլ աղբյուրների փաստաթղթերում: ST-Link/J-Link-OB/DAP կլոնի սկզբնական որոնվածի համար (ըստ ցանկության), ես դուրս բերեցի SWDIO (PA13), SWCLK (PA14), GND տողերը: Շատերն օգտագործում են UART-ը որոնվածի համար և ստիպված են քաշել BOOT jumper-ները: Բայց ես գտնում եմ, որ SWD-ն ավելի հարմար է, և այս արձանագրությունը թույլ է տալիս վրիպազերծել:

Տախտակի գրեթե բոլոր բաղադրիչները սնուցվում են 3.3 վոլտով, որոնք գալիս են AMS1117-3.3 լարման կարգավորիչից: Էլեկտրամագնիսական միջամտությունը և հոսանքի ալիքները ճնշելու համար օգտագործվում են LC ֆիլտրեր BLM31PG շարքի կոնդենսատորներից և խեղդուկներից:

Առանձին-առանձին, հարկ է նշել MAX7 7221 հատվածի ցուցադրման դրայվերը: Ըստ սպեցիֆիկացիայի՝ առաջարկվող սնուցումը 4-ից 5.5 վոլտ է, իսկ ազդանշանի բարձր մակարդակը (տրամաբանականը) առնվազն 3.5 Վ (0.7 x VCC) է՝ 5 Վ սնուցմամբ: K1986BE1QI (ավիացիոն) կարգավորիչի համար տրամաբանական միավորի ելքը համապատասխանում է 2.8-ից մինչև 3.3 Վ լարման: Ակնհայտ է, որ ազդանշանի մակարդակների միջև անհամապատասխանություն կա, որը կարող է խանգարել նորմալ աշխատանքին: Ես որոշեցի միացնել MAX7221-ը 4V-ով և նվազեցնել ազդանշանի մակարդակը մինչև 2.8V (0.7 x 4 = 2.8): Դրա համար D4 դիոդը (RS1A կամ FR103) տեղադրվում է վարորդի հոսանքի միացումում շարքով: Լարման ընդհանուր անկումը 0.9V է (Schottky diode 0.3V և diode 0.6V), և ամեն ինչ աշխատում է:

K1986BE1QI (ավիացիոն) միկրոկառավարիչի պորտերի մեծ մասը համատեղելի են մինչև 5 Վ ազդանշանների հետ: Հետևաբար, խնդիր չկա օգտագործելու MCP2551 CAN հաղորդիչ, որը նույնպես աշխատում է 5V-ով: Դիագրամում MAX232 չիպը նշված է որպես RS-3232 հաղորդիչ, բայց իրականում ես օգտագործել եմ SN65C3232D Texas Instruments-ից, քանի որ այն աշխատում է 3.3 Վ-ից և ապահովում է մինչև 1 Մբիթ/վ արագություն:

Տախտակը պարունակում է 4 քվարցային ռեզոնատորներ՝ մեկը վրիպազերծիչի համար (8 ՄՀց) և երեքը՝ թիրախային միկրոկոնտրոլերի K1986BE1QI (ավիացիայի) համար՝ 32.768 կՀց, 16 ՄՀց, 25 ՄՀց հաճախականությամբ: Սրանք անհրաժեշտ բաղադրիչներ են, քանի որ Ներկառուցված RC oscillator-ի պարամետրերը գտնվում են 6-ից 10 ՄՀց լայն տիրույթում: Ներկառուցված Ethernet կարգավորիչի աշխատանքի համար պահանջվում է 25 ՄՀց հաճախականություն: Չգիտես ինչու, Միլանդրայի կայքում (գուցե սխալմամբ) նշվում է, որ պլաստիկ պատյանը Ethernet չունի: Բայց մենք կհիմնվենք ճշգրտման և փաստերի վրա:

Իմ սեփական զարգացման տախտակի ստեղծման կարևոր խթան հանդիսացավ արտաքին համակարգի ավտոբուսի EBC (արտաքին ավտոբուսի վերահսկիչ) հետ աշխատելու հնարավորությունը, որն ըստ էության զուգահեռ նավահանգիստ է: K1986BE1QI միկրոկառավարիչը (ինքնաթիռը) թույլ է տալիս միանալ և աշխատել արտաքին հիշողության չիպերի և ծայրամասային սարքերի հետ, օրինակ՝ ADC, FPGA և այլն: Արտաքին համակարգի ավտոբուսի հնարավորությունները բավականին մեծ են՝ կարելի է աշխատել 8-բիթանոց, 16-բիթանոց և 32-բիթանոց ստատիկ RAM-ով, ROM-ով և NAND Flash-ով: 32-բիթանոց տվյալներ կարդալու/գրելու համար կարգավորիչը կարող է ավտոմատ կերպով կատարել 2 համապատասխան գործողություն 16-բիթանոց չիպերի համար, և 8 գործողություն 4-բիթանոց չիպերի համար: Ակնհայտ է, որ 32-բիթանոց I/O գործողությունը կավարտվի ամենաարագը 32-բիթանոց տվյալների ավտոբուսով: Թերությունները ներառում են ծրագրի 32-բիթանոց տվյալների հետ աշխատելու անհրաժեշտությունը, և տախտակը պետք է տեղադրի 32 հետքեր:

K1986BE1QI (ավիացիա) զարգացման տախտակի մշակում
Ստատիկ RAM չիպեր, օգտագործված (գուշակեք, թե որն է թերի)

Հավասարակշռված լուծում է 16-բիթանոց հիշողության չիպերի օգտագործումը: Ես պատահաբար պահեստում ունեի Integrated Silicon Solutions Inc. չիպեր: (ISSI IS61LV25616AL, 16 x 256k, 10 ns, 3.3V): Իհարկե, Milander ընկերությունն ունի իր ստատիկ հիշողության չիպերը շարք 1645RU, բայց դրանք չափազանց թանկ են և անհասանելի։ Որպես այլընտրանք, կան pin-համատեղելի Samsung K6R4016V1D: Ավելի վաղ ես նշել էի, որ պարզվեց, որ միկրոսխեմաները օգտագործվել են, և իմ տեղադրած պատճենը սկզբում տվել է ձախողումներ և քաոսային արժեքներ 15-րդ տվյալների տողում: Մի քանի օր պահանջվեց ապարատային սխալներ գտնելու համար, և այնքան ավելի մեծ էր բավարարվածության զգացումը, երբ ես վնասված չիպը փոխարինեցի աշխատողով: Ինչ էլ որ լինի, արտաքին հիշողության հետ աշխատելու արագությունը շատ ցանկալի է թողնում:

Արտաքին ավտոբուս և StandAlone ռեժիմK1986BE1QI միկրոկառավարիչը (ինքնաթիռը) ունի եզակի StandAlone ռեժիմ, որը նախատեսված է արտաքին ավտոբուսի միջոցով Ethernet և MKIO կարգավորիչներ (MIL_STD_1553) ուղղակի արտաքին մուտքի համար, միջուկը վերականգնված վիճակում է, այսինքն. չի օգտագործվում. Այս ռեժիմը հարմար է պրոցեսորների և FPGA-ների համար, որոնք չունեն Ethernet և/կամ MKIO:
Միացման դիագրամը հետևյալն է.

  • տվյալների ավտոբուս MCU(D0-D15) => SRAM(I/O0-I/O15),
  • հասցեի ավտոբուս MCU(A1-A18) => SRAM(A0-A17),
  • վերահսկել MCU (nWR, nRD, PortC2) => SRAM (WE, OE, CE),
  • SRAM (UB, LB) միացված են կամ քաշվում են գետնին ռեզիստորի միջոցով:

CE գիծը միացված է էլեկտրամատակարարմանը ռեզիստորի միջոցով, MCU բայթի նմուշառման կապում (BE0-BE3) չի օգտագործվում: Սփոյլերի տակ ես տրամադրում եմ նավահանգիստների և արտաքին ավտոբուսի վերահսկիչի սկզբնավորման կոդը:

Նախաձեռնող նավահանգիստներ և EBC վերահսկիչ (արտաքին ավտոբուսի վերահսկիչ)

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

LQFP-144 փաթեթի միկրոկոնտրոլերը և TSOP-44 փաթեթի հիշողությունը ունեն բազմաթիվ կապակցված կապիչներ և շատ տեղ են զբաղեցնում տպագիր տպատախտակի վրա: Ունենալով տնտեսագիտության ոլորտում օպտիմալացման խնդիրների լուծման փորձ՝ ինձ համար ակնհայտ էր, որ անհրաժեշտ է նախ այդ միկրոսխեմաները տեղադրել տախտակի վրա։ Տարբեր աղբյուրներում ես հանդիպել եմ գովեստի ակնարկների մասին CAD TopoR (Տոպոլոգիական երթուղիչ). Ես ներբեռնեցի փորձնական տարբերակը և կարողացա այնտեղ արտահանել իմ նախագիծը Eagle CAD-ից միայն այն բանից հետո, երբ հեռացրի գրեթե բոլոր բաղադրիչները: Ցավոք, TopoR ծրագիրը չօգնեց ինձ նույնիսկ 10 տարր տեղադրել տախտակի վրա: Սկզբում բոլոր բաղադրիչները տեղադրվեցին անկյունում, այնուհետև դասավորվեցին եզրագծի երկայնքով: Ինձ չբավարարեց այս տարբերակը, և երկար ժամանակ ես ձեռքով հետագծում էի տախտակը ծանոթ Eagle CAD միջավայրում:

Տպագիր տպատախտակի կարևոր տարրը մետաքսյա տպագրությունն է: Մշակման տախտակը ոչ միայն պետք է ունենա էլեկտրոնային բաղադրիչների պիտակներ, այլ նաև բոլոր միակցիչները պետք է պիտակավորված լինեն: Տախտակի հետևի մասում տեղադրեցի աղյուսակներ՝ կարգավորիչի պորտերի գործառույթներով (հիմնական, այլընտրանքային, վերացված, փաստացի): Ես պատվիրել եմ տպագիր տպատախտակների արտադրություն Չինաստանում հայտնի PCBWay գրասենյակից: Չեմ գովի, որովհետեւ որակը լավն է։ Նրանք կարող են ավելի լավ անել, ավելի խիստ հանդուրժողականությամբ, բայց վճարի դիմաց.

K1986BE1QI (ավիացիա) զարգացման տախտակի մշակում
Արտադրված MDB1986 տպագիր տպատախտակներ, (գ) Լուսանկարը՝ հեղինակի

Ստիպված էի բաղադրիչները «ծնկներիս» զոդել 40 վտ հզորությամբ զոդման երկաթով և POS-61 զոդով, քանի որ հազվադեպ եմ զոդում, տարին 1-2 անգամ, իսկ զոդման մածուկը չորացել էր։ Ես նույնպես ստիպված էի փոխել չինական CS32F103 կարգավորիչը օրիգինալ STM32F103-ի, իսկ հետո նաև փոխարինել հիշողությունը: Ընդհանուր առմամբ, հիմա ես լիովին գոհ եմ արդյունքից, չնայած դեռ չեմ ստուգել RS-232-ի և CAN-ի աշխատանքը։

K1986BE1QI (ավիացիա) զարգացման տախտակի մշակում
MDB1986 վրիպազերծման տախտակը գործում է. այն փայլում և տաքանում է, (գ) Լուսանկարը՝ հեղինակի

Միլանդրայի կայքում դուք կարող եք բավականաչափ գտնել ուսումնական նյութեր ուսումնական վերահսկիչների համար սերիա 1986BE9 (Cortex-M3 միջուկ), բայց K1986BE1QI (ավիացիոն) միկրոկառավարիչի համար ես այնտեղ ոչինչ չեմ տեսնում: Նայելով այնտեղ հրատարակված բուհերի նյութերին, ձեռնարկներին և լաբորատոր աշխատանքներին, ես ուրախ եմ, որ անձնակազմը վերապատրաստվում է ամբողջ երկրում՝ ռուս վերահսկիչների հետ աշխատելու համար: Ուսուցման նյութերի մեծ մասը պատրաստվում է I/O պորտերի, ժամանակաչափերի, ADC, DAC, SPI, UART հետ աշխատելու համար: Օգտագործվում են IDE մշակման տարբեր միջավայրեր (Keil, IAR, CodeMaster): Ինչ-որ տեղ նրանք ծրագրավորում են CMSIS ռեգիստրների միջոցով, և ինչ-որ տեղ օգտագործում են MDR գրադարանը: Պետք է նշել ռեսուրսը Սկսեք Milandr, որը պարունակում է բազմաթիվ հոդվածներ պրակտիկ ծրագրավորողների կողմից։ Եվ, իհարկե, չպետք է մոռանալ Միլանդրայի ֆորում.

Մտածեցի Միլանդրայի մասինՌուսաստանում զարգանում է միկրոէլեկտրոնիկան, և այդ գործընթացում կարևոր դեր է խաղում Միլանդեր ընկերությունը: Նոր հետաքրքիր միկրոկառավարիչներ են հայտնվում, օրինակ՝ 1986BE81T և Elektrosila՝ SpaceWire և MKIO ինտերֆեյսներով (նույնը, ինչ 1986BE1-ում և, հնարավոր է, նույն խնդիրներով) և այլն։ Բայց սովորական ուսանողները, ուսուցիչները և ինժեներները չեն կարող գնել նման միկրոսխեմաներ: Սա նշանակում է, որ ինժեներական հանրությունը չի կարողանա արագ բացահայտել այս չիպի հետ կապված սխալներն ու խնդիրները: Ինձ թվում է, որ նախ անհրաժեշտ է միկրոսխեմաներ արտադրել պլաստիկ պատյանով, բաժանել բոլոր շահագրգիռ կողմերին, իսկ մասնագետների կողմից հաստատվելուց հետո (լատիներեն approbatio - հաստատում, ճանաչում) կարող են պատրաստել վերանայում մետաղ-կերամիկական պատյանով։ պաշտպանություն բոլոր սարսափելի գործոններից: Հուսով եմ մոտ ապագայում բոլորս գոհ կլինենք ցուցահանդեսներում հայտարարված նոր նախագծերից։
Իմ մշակած վրիպազերծման տախտակը կարող է կրկնվել, փոփոխվել և օգտագործվել ցանկացած անձի կողմից ուսումնական գործընթացում: Առաջին հերթին տախտակն ինձ համար պատրաստեցի, բայց այնքան լավ ստացվեց, որ Ես որոշեցի կիսվել բոլորի հետ.

K1986BE1QI (օդ) շատ հետաքրքիր կարգավորիչ է յուրահատուկ ինտերֆեյսներով, որը կարող է օգտագործվել համալսարաններում ուսանողներին դասավանդելու համար: Կարծում եմ, որ վերահսկիչում հայտնաբերված սխալները շտկելուց և հավաստագրման թեստեր անցնելուց հետո վերահսկիչը կթռչի բառի բուն իմաստով:

Source: www.habr.com

Добавить комментарий