Распрацоўка адладкавай платы для К1986ВЕ1QI (авія)

Распрацоўка адладкавай платы для К1986ВЕ1QI (авія)

Некалькі гадоў таму я пазнаёміўся з расійскімі мікракантролерамі фірмы Міландр. Гэта быў 2013 год, калі інжынеры бурна абмяркоўвалі першыя вынікі ФЦП "Развіцця электроннай кампанентнай базы і радыёэлектронікі" на 2008-2015 гады. На той момант ужо быў выпушчаны кантролер К1986ВЕ9x (ядро Cortex-M3) і толькі-толькі з'явіўся кантролер 1986ВЕ1Т (ядро Cortex-M1). Ён жа ў пластыкавым корпусе LQFP-144 меў у дакументацыі абазначэнне К1986ВЕ1QI (авія), а на самай мікрасхеме абазначэнне MDR32F1QI. На сайце вытворцы ў яго варта суфікс "авія", бо ён мае інтэрфейсы спецыфічныя для авіябудавання (ARINC 429, MIL_STD_1553).

Дзіўна, але на момант распаўсюджвання гэтых кантролераў фірмай "Міландр" былі падрыхтаваны адладкавыя наборы і бібліятэка падпраграм для работы з перыферыяй, "але без якіх-небудзь дадатковых гарантый і абавязацельстваў па карэктнасці бібліятэкі". Бібліятэка падобная на Standard Peripheral Library ад кампаніі STMicroelectronics. Увогуле, усе ARM-кантролеры пабудаваныя на ядры Cortex-M маюць шмат агульнага. З гэтай прычыны азнаямленьне з новымі расейскімі кантролерамі ішло хутка. А для тых хто купляў фірмовыя адладкавыя камплекты давалася тэхнічная падтрымка падчас выкарыстанні.

Распрацоўка адладкавай платы для К1986ВЕ1QI (авія)
Адладкавы камплект для мікракантролера 1986ВЕ1Т, © Міландр

Аднак, з цягам часу пачалі праяўляцца "дзіцячыя хваробы" новых мікрасхем і бібліятэк. Тэставыя прыклады прашывак працавалі без бачных праблем, але пры істотнай мадыфікацыі сыпаліся збоі і памылкі. Першай ластаўкай у маёй практыцы былі невытлумачальныя збоі ў працы CAN-кантролера. Праз год на кантролеры 1986ВЕ1Т (авія) ранняй рэвізіі выявілася праблема з модулем МКИО (мультыплексны канал інфармацыйнага абмену). Увогуле, усе рэвізіі гэтых мікракантролераў да 2016 года былі абмежавана прыдатнымі. Шмат часу і нерваў пайшло на выяўленне гэтых праблем, пацвярджэнне якім зараз можна знайсці ў спісах памылак (Errata).

Непрыемнай асаблівасцю было тое, што працаваць і разбірацца з памылкамі прыходзілася не на адладкавых поплатках, а на поплатках прататыпаў прыбораў, якія планаваліся для серыйнага завадскога выраба. Акрамя раздыма JTAG там звычайна нічога не было. Падключыцца лагічным аналізатарам было складана і няёмка, а святлодыёдаў і экранаў звычайна не было. Па гэтай прычыне ў мяне ў галаве з'явілася думка аб стварэнні сваёй адладкавай платы.

З аднаго боку, на рынку былі фірмовыя адладкавыя камплекты, а таксама выдатныя поплаткі ад кампаніі LDM-Systems з Зеленаграда. З іншага боку, кошты на гэтыя вырабы ўганяюць у ступар, а базавы функцыянал без поплаткаў пашырэння не адпавядае чаканням. Поплатак з разлітаваным кантролерам і штыревым раздымам не ўяўляе для мяне цікавасці. А цікавейшыя платы каштуюць дорага.

Распрацоўка адладкавай платы для К1986ВЕ1QI (авія)
Адладкавая плата MILANDR LDM-HELPER-K1986BE1QI-FULL, © LDM Systems

У фірмы "Міландр" коштавая палітыка і маркетынг своеасаблівыя. Так, ёсць магчымасць атрымаць бясплатна ўзоры некаторых мікрасхем, але даступна гэта толькі юрыдычным асобам і звязана з бюракратычным квэстам. У цэлым мікрасхемы ў металакерамічным корпусе з'яўляюцца залатымі ў прамым і пераносным сэнсах. Напрыклад, кантролер 1986ВЕ1Т каштуе ў Маскве ад 14 да 24 тысяч рублёў. Мікрасхема статычнай памяці 1645РУ6У каштуе ад 15000 рублёў. І такі парадак коштаў на ўсю прадукцыю. У выніку, нават профільныя НДІ з дзяржзаказам эканомяць і кідаюцца ад такіх коштаў. Мікрасхемы ў пластыкавым корпусе для грамадзянскага прымянення істотна таннейшыя, але іх няма ў наяўнасці ў папулярных пастаўшчыкоў. Акрамя таго, якасць мікрасхем у пластыкавым корпусе, як мне здаецца, горш "залатых". Напрыклад, я не змог запусціць кантролер K1986BE1QI на частаце 128Мгц без павелічэння параметра flash latency. Адначасова тэмпература гэтага кантролера паднялася да 40-50С. А вось кантролер 1986BE1T («залаты») запусціўся на 128Мгц без дадатковых налад і заставаўся лядоўням. Ён сапраўды добры.

Распрацоўка адладкавай платы для К1986ВЕ1QI (авія)
«Залаты» мікракантролер 1986BE1T, (з) Міландр

Мне павезла, што мікракантролер у пластыкавым корпусе ўсёткі можна купіць у розніцу ў кампаніі LDM Systems, а ўсе схемы поплаткаў ёсць у вольным доступе. Дрэнна тое, што на сайце на фатаграфіі кантролера бачная маркіроўка, якая кажа, што гэта 4 рэвізія 2014 года, г.зн. з дэфектамі. Я доўга думаў - купляць ці не купляць. Так прайшло некалькі гадоў...

Думка аб стварэнні адладкавай платы нікуды не знікла. Паступова я сфарміраваў усе патрабаванні і думаў, як усё гэта размясціць на адной плаце, каб атрымалася кампактна і не дорага. Паралельна я заказваў у кітайцаў адсутнічаюць камплектуючыя. Я нікуды не спяшаўся - усё рабіў для сябе. Кітайскія пастаўшчыкі славяцца разгільдзяйствам - мне прыйшлося заказваць адно і тое ж у розных месцах, каб атрымаць усё, што трэба. Больш таго, частка мікрасхем памяці апынуліся былымі ва ўжыванні відавочна выпаянымі з зламаных прыбораў. Гэта мне пазней адгукнулася.

Купіць мікракантролер Міландр К1986ВЕ1QI (авія) - не простая задача. У той жа краме «Чып і Дып» у раздзеле «Пазіцыі на замову» я знайшоў толькі K1986BE92QI за 740 рублёў, але ён мне не падыходзіў. Адзіны варыянт - купіць у кампаніі LDM-Systems за 2000 рублёў не свежую рэвізію. Бо знайсці замену я нідзе больш не змог, то вырашыў купіць тое, што было. Да майго прыемнага здзіўлення мне прадалі новенькі кантролер выпуску снежань 2018 гады, рэвізія 6+ (1820). А на сайце да гэтага часу старая фатаграфія, і на момант напісання артыкула кантролера ў наяўнасці няма…

Распрацоўка адладкавай платы для К1986ВЕ1QI (авія)
Мікракантролер К1986ВЕ1QI (авія) у тэхналагічным пакаванні, (з) Фота аўтара

Асноўныя тэхнічныя характарыстыкі маёй адладкавай платы MDB1986 наступныя:

  • убудаваны адладчык-праграматар, сумяшчальны з J-Link і CMSIS-DAP;
  • статычная памяць 4Мбіт (256k x 16, 10 ns);
  • мікрасхема флэш памяці 64Мбіт, Winbond 25Q64FVSIG;
  • прыёмаперадатчык інтэрфейсу RS-232 з лініямі RTS і CTS;
  • інтэрфейсы і раздымы для Ethernet, USB, CAN;
  • кантролер 7-сегментнага дысплея MAX7221;
  • штыревой раздым для працы з МКИО (MIL_STD_1553) і ARINC429;
  • фотатранзістар Everlight PT17-21C;
  • пяць каляровых святлодыёдаў, кнопка скіду і дзве прыстасаваныя кнопкі;
  • харчаванне ён порта USB 5 вольт;
  • памеры друкаванай платы 100 х 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), які можа толькі прашываць.

Распрацоўка адладкавай платы для К1986ВЕ1QI (авія)
Мікракантролеры STM32F103C8T6, сапраўдныя і не вельмі, (з) Фота аўтара

Такім чынам, неабходна было купіць арыгінальны STM32F103C8T6, бо фірмовыя прашыўкі не будуць карэктна працаваць з клонам. Я сумняваўся ў гэтай тэзе і вырашыў паспрабаваць у працы кантролер CS32F103C8T6 кітайскай фірмы CKS. Да самога кантролеру ў мяне прэтэнзій няма, але фірмовая прашыўка ST-Link у ім не зарабіла. J-Link працаваў часткова - USB-прылада вызначалася, але свае функцыі программатор не выконваў і ўвесь час нагадваў, што ён "defective".

Распрацоўка адладкавай платы для К1986ВЕ1QI (авія)
Памылка пры працы адладчыка на не арыгінальным кантролеры

Я на гэтым не супакоіўся і напісаў спачатку прашыўку для мігцення святлодыёдам, а потым рэалізаваў запыт IDCODE па пратаколе JTAG. Праграматар ST-Link, які быў у мяне на плаце Discovery, і праграма ST-Link Utility прашывалі без праблем CS32F103C8T6. У выніку я пераканаўся ў тым, што мой поплатак працуе. На маю радасць мэтавай кантролер К1986ВЕ1QI (авія) бадзёра выдаваў свой IDCODE па лініі TDO.

Распрацоўка адладкавай платы для К1986ВЕ1QI (авія)
Асцылаграма сігнальнай лініі TDO з закадаваным адказам IDCODE, (с) Фота аўтара

Распрацоўка адладкавай платы для К1986ВЕ1QI (авія)
Вось і спатрэбіўся порт SWD для адладкі самога адладчыка і праверкі IDCODE

Заставаўся варыянт з адладчыкам CMSIS-DAP (Debug Access Port). Сабраць праект з зыходнікаў ад ARM - справа не простая, я ўзяў праект у X893, а потым яшчэ паспрабаваў DAP42. Нажаль, Keil uVision завісаў і не жадаў з імі працаваць. У выніку я замяніў мікрасхему адладчыка на фірмовую STM32F103C8T6 і больш да гэтага пытання не вяртаўся.

Распрацоўка адладкавай платы для К1986ВЕ1QI (авія)
Паспяховая праца ўбудаванага адладчыка J-Link STLink V2

Калі ўсе ключавыя кампаненты будучай адладкавай платы былі ў наяўнасці, то я палез у Eagle CAD і выявіў, што іх няма ў бібліятэцы элементаў. Дзявацца няма куды - іх прыйшлося чарціць самому. Заадно я зрабіў пасадачныя месцы для памяці, раздыма HanRun для Ethernet, а для рэзістараў і кандэнсатараў дадаў рамачкі. Файл праекта і бібліятэку кампанентаў можна знайсці у мяне на GitHub.

Прынцыповая схема адладкавай платы MDB1986Распрацоўка адладкавай платы для К1986ВЕ1QI (авія)

Сілкуецца поплатак ад крыніцы сталага току напругай 5 вольт, атрымоўваных з порта USB. Усяго на плаце два порта USB Type-B. Адзін – для праграматара, другі – для кантролера K1986BE1QI. Плата можа працаваць ад любой з гэтых крыніц або з абодвума адначасова. Найпростае рэгуляванне нагрузкі і абарона ліній сілкавання рэалізаваны на дыёдах Шотткі, на схеме 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. Але мне зручней SWD, да таго ж гэты пратакол дазваляе весці адладку.

Амаль усе кампаненты поплатка сілкуюцца ад 3.3 вольт, якія паступаюць ад рэгулятара напругі AMS1117-3.3. Для падаўлення электрамагнітных перашкод і кідкоў току выкарыстоўваюцца LC-фільтры з кандэнсатараў і дроселяў серыі BLM31PG.

Асобна варта згадаць аб драйверы 7-сегментнага дысплея 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В. Таму не выклікае праблем выкарыстанне CAN-прыёмаперадатчыка MCP2551, які таксама працуе ад 5В. У якасці RS-232 прыёмаперадатчыка на схеме паказана мікрасхема MAX3232, але насамрэч я выкарыстаў SN65C3232D ад кампаніі Texas Instruments, т.я. яна працуе ад 3.3В і забяспечвае хуткасць да 1Mbit/s.

На плаце размешчаны 4 кварцавых рэзанатара – адзін для адладчыка (8Мгц) і тры для мэтавага мікракантролера К1986ВЕ1QI (авія) наміналамі 32.768кГц, 16МГц, 25Мгц. Гэта неабходныя кампаненты, т.я. параметры ўбудаванага RC-генератара знаходзяцца ў вялікіх межах ад 6 да 10 Мгц. Частата 25Мгц неабходна для працы ўбудаванага Ethernet-кантролера. На сайце Міландра (магчыма, памылкова) чамусьці пазначана, што ў пластыкавым корпусе Ethernet адсутнічае. Але мы будзем абапірацца на спецыфікацыю і факты.

Важным стымулам для стварэння сваёй адладкавай платы была магчымасць папрацаваць з вонкавай сістэмнай шынай EBC (external bus controller), якая ў сутнасці з'яўляецца паралельным портам. Мікракантролер К1986ВЕ1QI (авія) дазваляе падлучаць і працаваць з вонкавымі мікрасхемамі памяці і перыферыйнымі прыладамі, напрыклад, АЛП, Пліс і г.д. Магчымасці вонкавы сістэмнай шыны досыць вялікія – можна працаваць з 8-бітнымі, 16-бітнымі і 32-бітнымі статычнымі АЗП, ПЗУ і NAND Flash. Для счытвання / запісы 32-бітных дадзеных кантролер умее аўтаматычна выконваць 2 адпаведныя аперацыі для 16-бітных мікрасхем, а для 8-бітных - 4 аперацыі. Відавочна, што 32-бітная аперацыя ўводу-высновы выканаецца хутчэй за ўсё з 32-бітнай шынай дадзеных. Да недахопаў можна аднесці неабходнасць у праграме апераваць 32-бітнымі дадзенымі, а на плаце давядзецца пракласці 32 дарожкі.

Распрацоўка адладкавай платы для К1986ВЕ1QI (авія)
Мікрасхемы статычнага АЗП, б/к (угадай якая з дэфектам)

Збалансаваным рашэннем з'яўляецца выкарыстанне 16-бітных мікрасхем памяці. У мяне аказаліся ў наяўнасці мікрасхемы Integrated Silicon Solutions Inc. (ISSI IS61LV25616AL, 16 x 256k, 10 ns, 3.3V). Вядома, у фірмы "Міландра" ёсць свае мікрасхемы статычнай памяці. серыі 1645РУ, Але яны занадта дарагія і недаступныя. У якасці альтэрнатывы ёсць сумяшчальныя па высновах Samsung K6R4016V1D. Раней я згадваў, што мікрасхемы апынуліся былымі ва ўжыванні і асобнік, які я ўсталяваў першапачаткова даваў збоі і хаатычныя значэнні ў 15. Лініі дадзеных. Пайшло некалькі дзён на пошук апаратных памылак, і тым больш было пачуццё задавальнення, калі я замяніў пашкоджаную мікрасхему на спраўную. Як бы там ні было, хуткасць працы са знешняй памяццю пакідае жадаць лепшага.

Вонкавая шына і рэжым StandAloneМікракантролер К1986ВЕ1QI (авія) мае ўнікальны рэжым StandAlone, які прызначаны для прамога доступу звонку да кантролераў Ethernet і МКИО (MIL_STD_1553) па вонкавай шыне, прычым ядро ​​знаходзіцца ў стане скіду, г.зн. не выкарыстоўваецца. Гэты рэжым зручны для працэсараў і Пліса, у якіх няма Ethernet і / або МКИО.
Схема падлучэння наступная:

  • шына дадзеных 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 (external bus controller)

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 маюць шмат звязаных высноў і займаюць шмат месца на друкаваным поплатку. Маючы за плячыма вопыт вырашэння аптымізацыйных задач у галіне эканомікі, мне было відавочна, што размяшчаць на плаце гэтыя мікрасхемы неабходна ў першую чаргу. У розных крыніцах мне сустракаліся хвалебныя водгукі аб САПР TopoR (Topological Router). Я спампаваў выпрабавальную версію (trial) і змог экспартаваць туды свой праект з Eagle CAD толькі тады, калі выдаліў амаль усе кампаненты. Нажаль, нават 10 элементаў праграма TopoR не дапамагла мне размясціць на плаце. Спачатку ўсе кампаненты былі змешчаныя ў кут, а потым па краі расстаўлены. Мяне такі варыянт не задаволіў, і я доўга выконваў трасіроўку платы ў ручным рэжыме ў звыклым асяроддзі Eagle CAD.

Важным элементам друкаванай платы з'яўляецца шаўкаграфія. На адладкавай плаце павінны быць не толькі подпісы да электронных кампанентаў, але і ўсе раздымы павінны быць падпісаны. На адваротным баку платы я размясціў табліцы-напамінкі з функцыямі партоў кантролера (асноўная, альтэрнатыўная, перавызначаная, фактычная). Выраб друкаваных поплаткаў я замовіў у Кітаі ва ўсім вядомай канторы PCBWay. Хваліць не буду, таму што якасць добрая. Яны могуць зрабіць лепш, з меншымі допускамі, але за асобную плату.

Распрацоўка адладкавай платы для К1986ВЕ1QI (авія)
Вырабленыя друкаваныя платы MDB1986, (с) Фота аўтара

Разорваць кампаненты прыйшлося «на каленцы» паяльнікам 40-ват і прыпоем пас-61, таму што паяю я рэдка, 1-2 разы на год, і паяльная паста засохла. Прыйшлося яшчэ мяняць кітайскі кантролер CS32F103 на арыгінальны STM32F103, а потым яшчэ і памяць замяніць. Увогуле зараз мяне вынік цалкам задавальняе, хоць яшчэ не праверыў працу RS-232 і CAN.

Распрацоўка адладкавай платы для К1986ВЕ1QI (авія)
Адладкавая плата MDB1986 у працы - свеціць і грэе, (з) Фота аўтара

На сайце «Міландра» можна знайсці дастаткова навучальных матэрыялаў для вывучэння кантролераў серыі 1986BE9 (ядро Cortex-M3), але для мікракантролера К1986ВЕ1QI (авія) я не бачу там нічога. Прагледзеўшы апублікаваныя тамака матэрыялы, метадычкі і лабараторныя працы для ВНУ, я цешуся, што рыхтуюцца кадры па ўсёй краіне для працы з расійскімі кантролерамі. Большасць навучальных матэрыялаў рыхтуюць да працы з партамі ўводу-высновы, таймерамі, АЛП, ЛАП, SPI, UART. Выкарыстоўваюцца розныя асяроддзі распрацоўкі IDE (Keil, IAR, CodeMaster). Недзе праграмуюць з дапамогай рэгістраў CMSIS, а недзе выкарыстоўваюць MDR Library. Неабходна згадаць рэсурс Start Milandr, які змяшчае нямала артыкулаў ад праграмістаў-практыкаў. І, вядома ж, варта не забываць пра форум Міландра.

Дума пра МіландруМікраэлектроніка ў Расіі развіваецца, і ў гэтым працэсе кампанія "Міландр" гуляе прыкметную ролю. З'яўляюцца новыя цікавыя мікракантролеры, напрыклад, 1986ВЕ81Т і "Электрасіла" з інтэрфейсамі SpaceWire і МКИО (такі ж як у 1986BE1 і, магчыма, з тымі ж праблемамі), і г.д. Але простым студэнтам, выкладчыкам і грамадзянскім інжынерам купіць такія мікрасхемы не рэальна. А значыць, супольнасць інжынераў не зможа хутка выявіць памылкі і праблемы гэтай мікрасхемы. Мне здаецца, што спачатку неабходна выпускаць мікрасхемы ў пластыкавым корпусе, распаўсюджваць сярод усіх зацікаўленых асоб, а ўжо пасля апрабацыі (лац. approbatio - ухвала, прызнанне) спецыялістамі можна рыхтаваць рэвізію ў металакерамічным корпусе з абаронамі ад усіх страшных фактараў. Спадзяюся ў найбліжэйшай будучыні нас УСІХ парадуюць заяўленымі на выставах новымі праектамі.
Распрацаваную мной адладкавую плату любы можа паўтарыць, мадыфікаваць і выкарыстоўваць у навучальным працэсе. У першую чаргу я рабіў поплатак для сябе, але атрымалася настолькі добра, што я вырашыў з усімі падзяліцца.

К1986ВЕ1QI (авія) - гэта вельмі цікавы кантролер з унікальнымі інтэрфейсамі, які можа выкарыстоўвацца ў ВНУ для навучання студэнтаў. Думаю, што пасля выпраўлення выяўленых у кантролеры памылак і мінанні сертыфікацыйных выпрабаванняў, кантролер паляціць у прамым сэнсе гэтага слова!

Крыніца: habr.com

Дадаць каментар