
Մի քանի տարի առաջ ես ծանոթացա ռուսական միկրոcontroller-ներին «Միլանդր» ընկերությունից։ Դա 2013 թվականն էր, երբ մասնագետները խռովային քննարկում էին «Էլեկտրոնային բաղադրիչների հիմքերի ու ռադիոէլեկտրոնիկայի զարգացումը» պետական ծրագրի (ՖԾՊ) առաջին արդյունքները՝ 2008-2015 թվականների համար։ Մդա գիտակցության մեջ արդեն եղել էր միկրոկոնտրոլեր Կ1986ՎԵ9x (Cortex-M3) և թարմ սկսված միկրոկոնտրոլեր 1986ՎԵ1Տ (Cortex-M1)։ Այն նույնպես պլաստիկ LQFP-144 կորպուսում նշվում էր որպես Կ1986ՎԵ1QI (օդային), իսկ միկրոսխեմայի վրա՝ MDR32F1QI։ Բնակիչ վարչապետի կայքում նա ունի «օդային» հավելված, քանի որ ունի ավիաշինության հատուկ ինտերֆեյսներ (ARINC 429, MIL_STD_1553)।
Անհավատալի է, բայց այն ժամանակ, երբ «Միլանդր» ընկերությունը տարածում էր այդ միկրոկոնտրոլերները, պատրաստված էին զարգացման հավաքածուներ և ենթակառուցման ծրագրային գրադարան, «բայց առանց որևէ լրացուցիչ երաշխիքների և պարտավորությունների գրադարանից ճիշտ աշխատանքի համար»։ Գրադարանն աղել STMicroelectronics-ի Standard Peripheral Library-ի նման։ Ընդհանուր առմամբ, բոլոր ARM-հիմունքով միկրոcontroller-ները շատ նմանություններ ունեն։ Դրա հետևանքով նոր ռուսական միկրոcontroller-ների ծանոթությունը հեշտացավ։ Եւ որ նրանք, ովքեր գնել էին ընկերային զարգացման հավաքածուներ, ստանում էին տեխնիկական աջակցություն օգտագործման ընթացքում։

1986ՎԵ1Տ միկրոcontroller-ի զարգացման հավաքածու, © Միլանդր
Որպեսզի ժամանակի ընթացքում այս նոր միկրոսխեմաների և գրադարանների «բազմանշանակաբառերը» սկսվեցին երևալ։ Մարերտենք պրակտիկաներում խնդիրների լուծման օրինակները չէին երևում սպասված խնդիրներով, բայց զգալի փոփոխությունների հետ սկսվեցին աբիոներ և սխալներ։ Առաջին «խմբի» իմ պրակտիկայում անօգուտ խափանում էր CAN-կոնտրոլերի աշխատանքում։ 1986ՎԵ1Տ (օդային) վաղ տարբերակներոմ մի տարի անց հայտնվեց մոդուլի խնդիրը . Ընդհանուր առմամբ, այս միկրոկոնտրոլերներին առնչվող բոլոր տարբերակները 2016 թվականից սահմանափակ էին։ Շատ ժամանակ և նյարդեր ծախսվեցին այդ խնդիրների հայտնաբերմանը, որոնց հաստատումը այժմ կարելի է գտնել .
Անհարմար ռեկորդ էր, որ աշխատելը և սխալների հետ աշխատելը պետք էր իրականացնել ոչ զարգացած պլատաներով, այլ սարքերի նախատիպերի պլատաներով, որոնք նախատեսվում էին շարքային արտադրանքային արտադրության համար։ Բացի JTAG կապից, այնտեղ սովորաբար ոչինչ չկար։ Լոգիկ անալիզատորին միանալը դժվար և անհարմար էր, իսկ լուսադիոդներն ու էկրանները սովորաբար չկար։ Դրա պատճառով ինձ մոտ հայտնվեց մտքուխրիչի իմաստ՝ ստեղծելու սեփական զարգացող պլատա։
Մեկ կողմից շուկայում առկա էին ապրանքանիշային դեբագերային հավաքածուներ, ինչպես նաև ԼԴՄ-Սիստեմس ընկերության հրաշալի ռուսական պատմությունը։ Մյուս կողմից, այդ արտադրանքների գները շockedինում են, իսկ հիմնական գործառույթը առանց ընդլայնվող կրիչների չի համապատասխանում ակնկալիքներին։ Կառավարիչով և դանկ հանրաճանաչ շփմամբ платы ինձ հետաքրքրում չեն։ Իսկ ավելի հետաքրքիր պլատներ շատ թանկ են։

Դեբագերային պլատ MILANDR LDM-HELPER-K1986BE1QI-FULL, © LDM Systems
«Միլանդր» ընկերության գների քաղաքականությունն ու մարկետինգը յուրահատուկ են։ Այդ հաջողությամբ կարող եք անվճար վերցնել մի քանի գործիքների նմուշները, բայց դա միայն իրավաբանական անձանց համար է հասանելագույն, և կապված է բյուրոկրատական մրցավազքով։ Ընդհանուր առմամբ, մետալոկերամիկ խորուրդների մեջ գտնվող համապատասխան ընկարկումները իրականում ոսկի են թե՛ ուղիղ, թե՛ ուղղակի իմաստով։ Օրինակ, 1986ВЕ1Т կառավարը Մոսկվայում արժե 14,000-ից 24,000 ռուբլի։ 1645РУ6У ստատիկական հիշողության չիպը արժե 15,000 ռուբլի։ Եվ այս գների կարգը վերաբերում է ողջ արտադրությանը։ Ի վերջո, անգամ մասնագիտական գիտահետազոտական ինստիտուտները պետական պատվերով խնայում են և դիմում են նման գներին։ Պլաստիկ պատյանով միկրոպրովիչները քաղաքացիական կիրառման համար զգալիորեն մատչելի են, բայց նշված են հայտնի մատակարարներում։ Նրա մեջ, պլաստիկ պատյաններով միկրոպրովիչների որակը մի շարք դեպքերում, ինչպես ինձ թվում է, schlechter է «ոսկի»։ Օրինակ, ես չէի կարողացնել լիարժեք աշխատեցնել K1986BE1QI կառավարը 128ՄՄՀց հաճախորդում առանց կրկին ավելացնել flash latency պարամետրը։ Միաժամանակ, այդ կարգավիճակով այս կառավարման ջերմաստիճանը բարձրացավ 40-50С։ Եվ 1986BE1T («ոսկի») կառավարիչը սկսել է աշխատել 128ՄՀց առանց լրացուցիչ կարգավորումների և մնացել է սառը։ Նա իսկապես լավ է։

«Ոսկի» միկրոքառավարիչ 1986BE1T, (с) Միլանդր
Միայն ինձ բախտ վիճակվեց, որ պլաստիկ պատյանով միկրոքառավարիչը կարող եմ գնել մանրամասերով ԼԴՄ Սիստեմս ընկերությունից, իսկ բոլոր վահանակների սխեմաները ազատ հասանելի են։ Ցավալի չէ, որ կայքի լուսանկարներում տեսնում եմ կառավարման նշումը, որը նշում է, որ սա 2014 թվականի 4-րդ փոխարկումն է, այսինքն՝ հետագա խնդիրներով։ Ես երկար մտածեցի՝ գնալու, թե ոչ։ Այսպես անցավ մի քանի տարի ...
Դեբագերային պլատ ստանալու միտքը չես համարել։ Հետագայում ես հավաքեցի բոլոր պահանջները և մտածեցի, թե ինչպես դա ըստ այնմ տեղադրել մեկ պլատում, որպեսզի ստացվի կոմպակտ և մատչելի։ Պարալելապես ես ստացա Չինաստանից համապատասխան նշումներ։ Ես ոչ մի կողմ չէի շտապում՝ ամեն ինչ արեցի իմ համար։ Չինական մատակարարները հայտնի են իրարանցումների մեջ՝ ինձ ստիպված եղավ նույնը պատվիրել տարբեր վայրերից, որպեսզի ստանամ անհրաժեշտ բոլոր մասերը։ Բացի այդ, մի մաս միկրոշեմերը պարզվում են եղել են բանջարեղենային կազմին փոխակերպված, ակնհայտորեն կտրված կոտրված սարքերից։ Դա ինձ հետագա վնաս պատճառեց։
Միկրոարտադրող որդի Միլանդ Կ1986ՎԵ1QI (արհեստական) գնելը հեշտ գործ չէ։ «Չիպ և Դիպ» խանութի «Պատվերների բաժնում» միակ ամփոփումը, որը գտավ, K1986BE92QI-ն էր, որը 740 ռուբլի արժեր, բայց ինձ չէր հարմար։ Միակ տարբերակն էր գնել LDM-Systems ընկերությունից 2000 ռուբլի արժեքով, բայց ոչ նոր տարբերակ։ Քանի որ այլ տեղում այլընտրանք գտնել չէի կարող, որոշեցի գնել այն, ինչ գտա։ Իմ հաճելի զարմանքի համար, ինձ վաճառեցին նոր միկրոկոնտրոլեր, որը թողարկված էր 2018 թվականի դեկտեմբերի համար, 6+ (1820) տարբերակ։ Իսկ կայքում դեռ կա հին լուսանկարը, և այս հոդվածը գրելու պահին կոնտրոլերը արդեն չկար ...

Կ1986ՎԵ1QI (արհեստական) միկրոարտադրող տեխնոլոգիական փաթեթավորմամբ, (գ) Լուսանկար հեղինակից
Իմ դեբլացիկ խմբման հիմնական տեխնիկական բնութագրերը MDB1986 հաջորդները՝
- ապահովված դեբլացման-պրոգրայացման սարք, համատեղելի J-Link և CMSIS-DAP-ի հետ;
- վիճակված հիշողություն 4 Մբ (256k x 16, 10 ns);
- ֆլեշ հիշողության միկրոսխեմա 64 Մբիտ, Winbond 25Q64FVSIG;
- RS-232 մուտք-հանող ու RTS և CTS գծերով;
- Ethernet, USB, CAN接口ներ և միացումներ;
- MAX7221 7-պորտային ցուցիչիմիկրոկոնտրոլեր;
- MKIO (MIL_STD_1553) և ARINC429 հետ աշխատելու համար պտուտակային միակցիչ;
- Everlight PT17-21C լուսադիոդային անցուղի;
- հինգ գույնով LED-ներ, վերականգնման կոճակ և երկու օգտագործողի կոճակ;
- USB պորտի 5 վոլտ սնուցում;
- մեկ բարձիկի չափերն են 100 × 80 մմ
Ես սիրում էի STM-Discovery շարքի բլոկները, քանի որ այնտեղ կա ներառված ST-Link ծրագրավորող-դեբլացնող։ Բրենդային ST-Link-ը աշխատում է միայն STMicroelectronics ընկերության կոնտրոլերների հետ, սակայն մի քանի տարի առաջ ST-Link-ի固件-ն թարմացնելու հնարավորություն առաջացավ, և կարող եք ստանալ SEGGER J-Link OB (նշված) Debugger։ Օրենսդրորեն սահմանափակում կա նման դեբլացողի օգտագործման համար միայն STMicroelectronics բլոկների հետ, սակայն գործնականում կարողությունները սահմանափակված չեն։ Այսպիսով, J-Link OB-ի միջոցով կարող եք ունենալ ներառված ծրագրավորող-դեբլացնող դեբլացիունում։ Կնշեմ, որ «LDM-Systems» ընկերության արտադրությունում օգտագործվում է CP2102 (Usb2Uart) փոխարկիչ, որը կարող է միայն ծրագրավորել։

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

Սխալ դեբլացողի աշխատանքը ոչ օրիգինալ կոնտրոլերի վրա
Ես դրանով չհանգստացա և նախ գրել եմ LED-ների мигания համար программировка, իսկ հետո իրականացնում IDCODE-ի запросը JTAG протоколով: ST-Link програмատորը, որը ես ունեի Discovery պլատայում, և ST-Link Utility ծրագիրը խնդիրներ չունեցան CS32F103C8T6-ի ձեռնարկմամբ. Արդյունքում ես համոզվեցի, որ իմ պլատան աշխատում է: Իմ ուրախությամբ, թիրախային կոնտրոլլերը Կ1986ՎԵ1QI (օդային) ակտիվորեն մատակարարվում էր իր IDCODE-ն TDO գծով.

TDO ազդանշանի գծի oscilloscope-ի աղյուսակը, (с) Գեղանկարիչ

Այդ곳ում ժառանգվեց SWD պորտը, որտեղ պետք էր debug վառային ծրագրական
Մնաց այլ տարբերակ debug վառային մշակման համար . ARM-ից ծրագրային աղբյուրը հավաքել՝ հեշտ գործ չէ, ես վերցնում էի նախագիծ , իսկ հետո փորձեցի DAP42: Ցավոք, Keil uVision-ը կախվում էր և չէր ցանկանում աշխատել նրանց հետ: Արդյունքում ես փոխեցի debug microcontroller-ին STM32F103C8T6-ի մարկան և այլևս այդ հարցին չեմ վերադարձել.

J-Link STLink V2-ի ներդրված debug-ի հաջող գործողություն
Երբ բոլոր հիմնական բաղադրիչները ապագա debug պլատայի համար եղել են, ես անցա Eagle CAD և հանգիստ հայտնեցի, որ դրանք պիտանիություներում չկան: Գործողություն չունեցող էր, ես ստիպված էի դրանք(ն) ինքնուրույն նկարել: Մեկ էլ ես արեցի տեղադիրքների տեղեր հիշողության, HanRun-ի Ethernet համար, իսկ ճնշիչների և կոնդենսատորների համար ավելացրեցի շրջանակներ: Ձևի ֆայլին և բաղադրիչների գրադարան կարող եք գտնել .
MDB1986 debug պլատայի սկզբնական սխեման
Պլատան սնվում է 5 վոլտ լարման շարունակական ռեսուրսից, որը ստացվում է USB պորտից: Ընդհանուր համադրության մեջ պլատայում կա երկու USB Type-B պորտ: Մի տոկոսը – програматорի համար, երկրորդը – K1986BE1QI կոնտրոլլերի համար. Պլատան կարող է աշխատել այս ռեսուրսներից մեկից կամ երկուսից միաժամանակ: Լիովին ցածր լիցքավորման և պաշտպանված հաղորդման գծերն իրականացված են Շոթտկի diodներով, սխեմայում D2 և D3 (SS24): Այլ մեթոդներով կարող եք տեսնել ինքնավերականգնող ապահովիչներ F1 և F2 500մԱ-ի համար: USB պորտի ազդանշանային գծերը պաշտպանված են USBLC6-2SC6 diodներից:
ST-Link programmer-debugger սխեման շատերին հայտնի է, այն կարելի է գտնել STM32-Discovery պլատաների և այլ աղբյուրների փաստաթղթերում: ST-Link/J-Link-OB/DAP (ընտրության համաձայն) կլանի սկզբնական прошәы կոչելու համար ես կատարա SWDIO (PA13), SWCLK (PA14), GND գծերը: Շատերը օգտագործում են UART прошայման համար և ստիպված են անջատել BOOT jumper-ները: Բայց ինձ համար հարմար է SWD-ը, թեև այդ պրոտոկոլը թույլ է տալիս debug.-ը անցկացնել:
Պլատայի գրեթե բոլոր բաղադրիչներն սնվում են 3.3 վոլտից, որոնք հասնում են AMS1117-3.3-ի լարման կարգավորիչից: Էլեկտրամագնիսական աղետների և հոսքային խանգարումների նվազեցնելու համար օգտագործվում են LC-ֆիլտրեր, որը բաղկացած է կոնդենսատորներից և BLM31PG շարքից դրսևորված դրվածքներից:
Հատուկ նշվում է MAX7221 յոթ սեգմենտային ցուցադրիչի դադրը: Շնորհիվ տեխնիկական բնութագրերի, խորհուրդ տրվում է սնուցել 4-ից 5.5 վոլտ, իսկ բարձր ազդանշանի մակարդակը (տրամաբառային միավոր) չի կարող լինել ցածր քան 3.5Վ (0.7 x VCC)՝ 5Վ սնուցմամբ: К1986ВЕ1QI (օդաչու) կառավարման միավորի տրամաբառային միավորը համապատասխանում է 2.8-ից 3.3Վ լարման: Նյութի նշումները ցույց են տալիս, որ ազդանշանների մակարդակները կարող են խախտել նորմալ աշխատանքը: Ես որոշեցի սնուցել MAX7221-ը 4Վ-ից և իջեցնել ազդանշանի մակարդակը 2.8Վ-ի (0.7 x 4 = 2.8): Այս համար սնուցման շղթայի մեջ տեղադրված է D4 (RS1A կամ FR103) դիոդ: Ընդհանուր լարման անկումը 0.9Վ է (Շոթտքի դիոդ 0.3Վ և դիոդ 0.6Վ), և ամեն ինչ աշխատում է:
К1986ВЕ1QI (օդաչու) միկրոքառավարման մեծամասնության պորտերը համադրվում են 5Վ-ի ազդանշանների հետ: Այդ պատճառով MCP2551 CAN ընդունիչ-հաղորդիչի օգտագործումը խնդիր չի առաջացնում, որը նույնպես գործում է 5Վ-ից: Սхեմայում RS-232 ընդունիչ-հաղորդիչի համար նշված սպասարկման միկրոսխեման MAX3232-ն է, սակայն իսկապես ես օգտագործել եմ Texas Instruments-ի SN65C3232D միկրոսխեման, քանի որ այն աշխատում է 3.3Վ-ից և ապահովում է մինչև 1Mbit/s արագություն:
Միկրոչիպում տեղադրված են 4 քվարց ռեզոնատոր՝ մեկը դետալների համար (8ՄՀց) և երեք К1986ВЕ1QI (օդաչու) նպատակային միկրոչիպի համար՝ 32.768կՀց, 16ՄՀց, 25ՄՀց են: Այս բաղադրվողներ անհրաժեշտ են, քանի որ ինտեգրված RC-գեներատորի պարամետրերը առկա են 6-ից 10 ՄՀց մեծ սահմաններում: 25ՄՀց հաճախությունը անհրաժեշտ է ինտեգրված Ethernet կառավարման համար: Միասնական կայքում (թերևս, սխալով) նշվել է, որ պլաստիկ կորպուսում Ethernet-ը բացակայում է: Սակայն մենք ի վերջո հիմնվում ենք տեխնիկական բնույթի և փաստերի:
Նախնական բարդելը ստեղծելու կարևոր խթանը EBC (external bus controller) արտաքին համակարգային բուսի հետ աշխատելու հնարավորությունն էր, որը ըստ էության համարվում է զուգահեռային պորտ: К1986ВЕ1QI (օդաչու) միկրոքառավարման միավորը թույլ է տալիս միացնել և աշխատել արտաքին հիշողության միկրոչիպերի ու périphériques սարքերի, ինչպիսիք են ԱՏԲ, FPGA և այլն: Արտաքին համակարգային բուսի հնարավորությունները բավականին մեծ են. կարելի է աշխատել 8-բիտային, 16-բիտային և 32-բիտային ստատիկական RAM, ROM և NAND Flash: 32-բիտային տվյալների կարդալու/գրելը կառավարիչը կարող է ավտոմատ իրականացնել 16-բիտային միկրոչիպերի 2 համապատասխան գործողություններ, իսկ 8-բիտայինների համար՝ 4 գործողություն: Անցանելի է, որ 32-բիտային հոսքի տվյալները առավել արագ կկատարվեն 32-բիտային տվյալների բուսով: Պաշտոնները կարելի է տրամադրել, որ 32-բիտային տվյալների հետ աշխատելու համար ծրագրավորումը պետք է շատ սարքեր վերականգնել, իսկ պլատֆորմում պետք է պատրաստել 32 ուղիներ:

Ստատիկ RAM միկրոչիպեր, օգտագործված (ռազմավարական թե ինչում է թերությունը)
Բալանսված լուծումն է 16-բիտային հիշողության միկրոչիպերի օգտագործումը: Ես ունեմ Integrated Silicon Solutions Inc. (ISSI IS61LV25616AL, 16 x 256k, 10 ns, 3.3V) միկրոչիպեր: Կան, իհարկե, «Միլանդր» ընկերության իր սեփական ստատիկ հիշողության միկրոչիպերը: , բայց դրանք շատ թանկ են և անհասանելի: Այցելուների փոխարեն կան Samsung K6R4016V1D մասնակիցներ: Հիմա ես նշեցի, որ չիպերը նախկինում օգտագործվել են, և առաջին անգամ տեղադրածը սխալներ էր տալիս և քաոսային արժեքներ 15-րդ տվյալների գծում: Մի քանի օր անց գտել եմ սարքային սխալներ, և որքան մեծ էր գոհունակության զգացողությունը, երբ փոխեցի վերացած չիպը: Բայց, ինչ ասեմ, արտաքին հիշողության աշխատեցման արագությունն սպառնում է բավարար չլինել:
Արտաքին շին և StandAlone ռեժիմՄիկրոակն Հայ К1986ВЕ1QI (վերահսկող) ունի յուրահատուկ 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 թաղանթի վրա ունեն բազմաթիվ կապված ելքայիններ և շատ տեղ են զբաղեցնում տպագիր շերտի վրա: Հաշվի առնելով տնտեսական ոլորտում օպտիմալացման խնդիրների լուծման փորձը, ինձ ակնհայտ էր, որ այս միկրոօգտագործիչները տեղավորել տպագիր շերտի վրա պետք է լինի առաջին հերթին: Բազմաթիվ աղբյուրներում ես հանդիպել եմ գովերունակ մեկնաբանությունների: . Ես ներբեռնում եմ փորձնական տարբերակը (trial) և կարողացել եմ արտահանել իմ նախագիծը Eagle CAD-ից միայն այն ժամանակ, երբ հեռացրեցի գրեթե բոլոր բաղադրիչները: Ցավոք, նույնիսկ 10 տարրերը TopoR ծրագիրը չհաջողվեց տեղավորել տպագիր շերտի վրա: Սկզբում բոլոր բաղադրիչները տեղավորվել են անկյունում, իսկ հետո կողքի երկայնքով դրված: Այս տարբերակը ինձ չի բավարարել, և ես երկար ժամանակ կատարել եմ տպագիր շերտի трасировка մը ձեռքով իմ սովորական Eagle CAD միջավայրում։
Տպարանային քարտի կարևոր բաղադրիչն է սիլկոգրաֆիան: Բարդացման քարտում պետք է լինեն ոչ միայն էլեկտրոնային բաղադրիչների գրառումները, այլ նաև բոլոր միակցիչները պետք է լինեն նշված: Քարտի ետնամասում տեղադրում եմ գիտակցման աղբյուրների աղյուսակներ կառավարման պորտերի (հիմնական, համընթաց, վերադասավորված, իրականացված). Տպարանային քարտերի պատրաստումը ինձ համար պատվիրել եմ Չինաստանում հայտնի PCBWay կոմպանիայից: Խոսելու եմ նրանց մասին ոչ ոք, որովհետև որակը լավ է: Նրանք կարող են ավելի լավ անել, ավելի փոքր արտադրողականությամբ, սակայն .

Պատրաստված տպարանային քարտեր MDB1986, (կ) հեղինակի լուսանկար
Բաղադրիչները ստիպված էի «նայում սաղիկով» համատեղվող 40-վատտային հիդրան և ПОС-61 օգտագործելով, որովհետև հազվադեպ եմ փայլեցնել, 1-2 անգամ տարի, և հիդրա հյութը չորացել էր: Ստիպված եղա նաև չինական CS32F103 կառույցը փոխարինել բնօրինակ STM32F103-ի, իսկ հետո նաև հիշողությունը փոխել: Ընդհանուր առմամբ, այժմ ինձ գոհացնում է արդյունքը, նույնիսկ RS-232 և CAN-ի աշխատանքը դեռ չեմ փորձել.

MDB1986 կարգավորման քարտն աշխատանքին — լուսավորում և տաքացնում է, (կ) հեղինակի լուսանկար
«Միլանդր» կայքում կարելի է գտնել բավականաչափ 1986BE9 (Cortex-M3 ядր) շարք, սակայն ես այդտեղ չեմ տեսնում ոչ մի բան Կ1986ВЕ1QI (օդային) հսկիչի համար: Թեքելով այնտեղ հրապարակված նյութերը, մեթոդներ և համալսարանական լաբորատոր աշխատանքներ, ուրախ եմ, որ ամբողջ երկրում պատրաստվում են անձնակազմը՝ ռուսական գործերին: Ամենից շատ ուսումնական նյութերը պատրաստում են մուտքային-հետադարձի պորտերի, ժամանականիշների, ADC, DAC, SPI, UART աշխատանքի: Используются разные среды разработки IDE (Keil, IAR, CodeMaster). Որտեղի՞ համա գրել CMSIS գրանցման միջոցով, իսկ որտեղ MDR Library օգտագործվում է: Պետք է հիշատակել , որը բավականին հոդվածներ ունի պրակտիկ ծրագրավորողների կողմից: Եվ, իհարկե, պետք չէ մոռանալ .
Միլանդր լուրըՄիկրոէլեկտրոնիկան Ռուսաստանում զարգանում է, և այս գործընթացում «Միլանդր» ընկերությունը նկատելի դերն ունի: Հայտնվում են նոր հետաքրքիր միկրոկառավարիչներ, օրինակ, 1986ВЕ81Т և «Էլեկտրոսիլա» SpaceWire և MKIO ինտերֆեյսներով (այն, ինչի նման է 1986BE1-ին և, հնարավոր է, նույն խնդիրներով), և այլնի: Բայց սովորական ուսանողներին, դասախոսներին և շինարարական ինժեներներին այդպիսի սխեմաներ ձեռք բերել չէ իրական: Ուրեմն, ինժեներների հանրությունը չի կարող արագ հետևել սխեմաների սխալներին և խնդիրներին: Օրին, կարծում եմ, առաջինը պետք է թողնել միկրոսխեմաներ պլաստիկ կորպուսում, տարածել բոլոր հետաքրքրված կողմերի մեջ, իսկ այնուհետ փորձերից հետո (լատ. approbatio — հաստատում, ճանաչում) մասնագետների կողմից կարելի է պատրաստել գիտությունների մետալերով պաշտպանված տարբերակը բոլոր սարսափելի գործոններից: Հուսով եմ, մոտ ապագայում մեզ բոլորին ուրախացնելու են ցուցահանդեսներում հայտարարված նոր նախագծերը.
Միավորած իմ Debugging պլատան ցանկացածի կողմից կարող է կրկնիմացվել, փոփոխվել և օգտագործվել ուսումնական գործընթացում։ Վերևում ես պլատան արել եմ իմ համար, սակայն այն իրավամբ ցուցադրական էր, որ .
К1986ВЕ1QI (ավիացիոն) – այս շատ հետաքրքիր վերահսկիչ է յուրահատուկ ինտերֆեյսներով, որն օգտագործվում է բարձրագույն ուսումնական հաստատություններում ուսանողական ծրագրերի համար։ Կարծում եմ, որ վերահսկիչը, ճշտելուց հետո հայտնաբերված սխալները եւ անցնելով սերտիֆիկացման թեստերը, իրականում « uçacaktır »։
Ընտանիք: habr.com
