K1986BE1QI (aviatsiya) uchun rivojlanish kengashini ishlab chiqish

K1986BE1QI (aviatsiya) uchun rivojlanish kengashini ishlab chiqish

Bir necha yil oldin men Milander kompaniyasining rus mikrokontrollerlari bilan tanishdim. Bu 2013 yil edi, muhandislar 2008-2015 yillarga mo'ljallangan "Elektron komponentlar bazasi va radioelektronikani rivojlantirish" Federal maqsadli dasturining birinchi natijalarini qizg'in muhokama qilishdi. O'sha paytda K1986BE9x boshqaruvchisi (Cortex-M3 yadrosi) allaqachon chiqarilgan va 1986BE1T boshqaruvchisi (Cortex-M1 yadrosi) endigina paydo bo'lgan edi. Plastik korpusda, LQFP-144, hujjatlarda K1986BE1QI (aviatsiya) belgisi va chipning o'zida MDR32F1QI belgisi mavjud edi. Ishlab chiqaruvchining veb-saytida u "avia" qo'shimchasiga ega, chunki u samolyot sanoatiga xos interfeyslarga ega (ARINC 429, MIL_STD_1553).

Ajablanarlisi shundaki, ushbu kontrollerlarni tarqatish vaqtida Milander kompaniyasi disk raskadrovka to'plamlari va tashqi qurilmalar bilan ishlash uchun kichik dasturlar kutubxonasini tayyorladi, ammo "lekin kutubxonaning to'g'riligi bo'yicha qo'shimcha kafolatlar yoki majburiyatlarsiz". Kutubxona STMicroelectronics kompaniyasining standart periferik kutubxonasiga o'xshaydi. Umuman olganda, Cortex-M yadrosida qurilgan barcha ARM kontrollerlari umumiy jihatlarga ega. Shu sababli, yangi rus kontrollerlari bilan tanishish tezda davom etdi. Va markali disk raskadrovka to'plamlarini sotib olganlar uchun foydalanish paytida texnik yordam ko'rsatildi.

K1986BE1QI (aviatsiya) uchun rivojlanish kengashini ishlab chiqish
1986BE1T mikrokontrolleri uchun disk raskadrovka to'plami, © Milander

Biroq, vaqt o'tishi bilan yangi mikrosxemalar va kutubxonalarning "bolalik kasalliklari" paydo bo'la boshladi. Mikrodasturning sinov namunalari ko'rinadigan muammolarsiz ishladi, ammo sezilarli o'zgarishlar, buzilishlar va xatolar yuzaga keldi. Mening tajribamdagi birinchi "qaldirg'och" CAN boshqaruvchisining ishlashidagi tushunarsiz nosozliklar edi. Bir yil o'tgach, modul bilan bog'liq muammo erta reviziyaning 1986BE1T (aviatsiya) boshqaruvchisida aniqlandi. MKIO (multipleks axborot almashish kanali). Umuman olganda, 2016 yilgacha ushbu mikrokontrollerlarning barcha qayta ko'rib chiqishlari cheklangan edi. Ushbu muammolarni aniqlash uchun ko'p vaqt va asablar ketdi, ularning tasdig'ini hozir topish mumkin xatolar ro'yxati (xato).

Noxush xususiyat shundaki, xatolarni tuzatish platalarida emas, balki zavodda seriyali ishlab chiqarish rejalashtirilgan qurilmalarning prototip taxtalarida ishlash va ularni hal qilish kerak edi. Odatda JTAG ulagichidan boshqa hech narsa yo'q edi. Mantiqiy analizator bilan ulanish qiyin va noqulay edi va odatda LEDlar yoki ekranlar yo'q edi. Shu sababli, mening boshimda o'zimning disk raskadrovka taxtasini yaratish g'oyasi paydo bo'ldi.

Bir tomondan, bozorda markali disk raskadrovka to'plamlari, shuningdek, Zelenograddagi LDM-Systems kompaniyasining ajoyib taxtalari bor edi. Boshqa tomondan, ushbu mahsulotlarning narxi hayratlanarli va kengaytirish kartalarisiz asosiy funksionallik kutganlarga javob bermaydi. Lehimli boshqaruvchi va pin ulagichi bo'lgan taxta meni qiziqtirmaydi. Va yanada qiziqarli taxtalar qimmat.

K1986BE1QI (aviatsiya) uchun rivojlanish kengashini ishlab chiqish
Rivojlanish kengashi MILANDR LDM-HELPER-K1986BE1QI-FULL, © LDM Systems

Milander kompaniyasi o'ziga xos narx siyosati va marketingiga ega. Shunday qilib, ba'zi mikrosxemalarning bepul namunalarini olish mumkin, ammo bu faqat yuridik shaxslar uchun mavjud va byurokratik qidiruv bilan bog'liq. Umuman olganda, metall-keramika korpusidagi mikrosxemalar tom ma'noda va majoziy ma'noda oltindir. Misol uchun, 1986BE1T boshqaruvchisi Moskvada 14 dan 24 ming rublgacha turadi. 1645RU6U statik xotira chipining narxi 15000 1986 rubldan. Va bu barcha mahsulotlar uchun narx tartibi. Natijada, hatto davlat buyurtmasiga ega ixtisoslashgan ilmiy-tadqiqot institutlari ham pulni tejashadi va bunday narxlardan qochishadi. Fuqarolik foydalanish uchun plastik qutidagi mikrosxemalar sezilarli darajada arzon, ammo ular mashhur etkazib beruvchilarda mavjud emas. Bundan tashqari, plastik qutidagi mikrosxemalarning sifati, menimcha, "oltin" dan ham yomonroq. Misol uchun, men K1BE128QI kontrollerini flesh kechikish parametrini oshirmasdan 40 MGts chastotada ishga tushira olmadim. Shu bilan birga, bu kontrollerning harorati 50-1986C gacha ko'tarildi. Ammo 1BE128T ("oltin") kontrolleri qo'shimcha sozlamalarsiz XNUMX MGts da ishga tushirildi va sovuq bo'lib qoldi. U haqiqatan ham yaxshi.

K1986BE1QI (aviatsiya) uchun rivojlanish kengashini ishlab chiqish
"Oltin" mikrokontroller 1986BE1T, (c) Milander

Menga omad kulib boqdi: plastik qutidagi mikrokontroller hali ham LDM Systems-dan chakana savdoda sotib olinishi mumkin va barcha platalar diagrammalari bepul mavjud. Yomon tomoni shundaki, veb-saytda tekshirgichning fotosuratida siz bu 4 yilning 2014-chi tahriri ekanligini ko'rsatadigan belgini ko'rishingiz mumkin, ya'ni. nuqsonlar bilan. Sotib olish yoki olmaslik haqida uzoq o'yladim. Bir necha yillar shunday o'tdi...

Nosozliklarni tuzatish kengashini yaratish g'oyasi hech qayerda yo'qolgan emas. Asta-sekin, men barcha talablarni shakllantirdim va ixcham va qimmat bo'lmasligi uchun hammasini bitta doskaga qanday joylashtirish haqida o'yladim. Shu bilan birga, men xitoyliklardan etishmayotgan komponentlarni buyurtma qildim. Men shoshilmadim - men hamma narsani o'zim uchun qildim. Xitoylik yetkazib beruvchilar e’tiborsizligi bilan mashhur – o‘zimga kerak bo‘lgan hamma narsani olish uchun turli joylardan bir xil narsaga buyurtma berishga majbur bo‘ldim. Bundan tashqari, ba'zi xotira chiplari ishlatilgan - aftidan, buzilgan qurilmalardan lehimlangan. Bu menga keyinroq qaytib keldi.

Milander K1986BE1QI (havo) mikrokontrollerini sotib olish oson ish emas. Xuddi shu Chip va Dip do'konida, "Buyurtma berish uchun narsalar" bo'limida men faqat K1986BE92QI ni 740 rublga topdim, lekin bu menga mos kelmadi. Yagona variant - LDM-Systems-dan 2000 rublga yangi bo'lmagan reviziyani sotib olish. Boshqa joydan o'rinbosar topa olmaganim uchun men bor narsamni sotib olishga qaror qildim. Yoqimli ajablanib, ular menga 2018 yil dekabr oyida ishlab chiqarilgan, 6+ (1820) versiyasida ishlab chiqarilgan yangi kontrollerni sotishdi. Ammo saytda hali ham eski fotosurat bor va yozish paytida kontroller mavjud emas ...

K1986BE1QI (aviatsiya) uchun rivojlanish kengashini ishlab chiqish
Texnologik qadoqdagi mikrokontroller K1986BE1QI (aviatsiya), (c) muallif surati

Mening disk raskadrovka panelining asosiy texnik xususiyatlari MDB1986 quyidagilar:

  • o'rnatilgan tuzatuvchi-dasturchi, J-Link va CMSIS-DAP bilan mos keladi;
  • statik xotira 4Mbit (256k x 16, 10 ns);
  • flesh xotira chipi 64Mbit, Winbond 25Q64FVSIG;
  • RTS va CTS liniyalari bilan RS-232 interfeysi qabul qiluvchi;
  • Ethernet, USB, CAN uchun interfeyslar va ulagichlar;
  • MAX7 7221-segmentli displey boshqaruvchisi;
  • MKIO (MIL_STD_1553) va ARINC429 bilan ishlash uchun pinli ulagich;
  • fototransistor Everlight PT17-21C;
  • besh rangli LED, qayta o'rnatish tugmasi va ikkita foydalanuvchi tugmasi;
  • USB portiga quvvat manbai 5 volt;
  • bosilgan elektron plataning o'lchamlari 100 x 80, mm

Menga STM-Discovery seriyali platalar yoqdi, chunki ularda o'rnatilgan dasturchi-debugger - ST-Link mavjud. Brendli ST-Link faqat STMicroelectronics kontrollerlari bilan ishlaydi, ammo bir necha yil oldin ST-Link-da proshivkani yangilash va SEGGER J-Link OB (bortda) tuzatuvchini olish mumkin bo'ldi. Qonuniy ravishda, bunday tuzatuvchini faqat STMicroelectronics platalari bilan ishlatishda cheklov mavjud, ammo aslida potentsial cheklanmagan. Shunday qilib, J-Link OB-ga ega bo'lsangiz, disk raskadrovka taxtasida o'rnatilgan dasturchi-debugger bo'lishi mumkin. Shuni ta'kidlash kerakki, LDM-Systems mahsulotlari faqat miltillovchi CP2102 (Usb2Uart) konvertoridan foydalanadi.

K1986BE1QI (aviatsiya) uchun rivojlanish kengashini ishlab chiqish
STM32F103C8T6 mikrokontrollerlari, haqiqiy va unchalik haqiqiy emas, (c) Muallif surati

Shunday qilib, original STM32F103C8T6 ni sotib olish kerak edi, chunki xususiy proshivka klon bilan to'g'ri ishlamaydi. Men bu tezisga shubha qildim va Xitoyning CKS kompaniyasidan CS32F103C8T6 kontrollerini sinab ko'rishga qaror qildim. Menda kontrollerning o'zi haqida hech qanday shikoyat yo'q, lekin xususiy ST-Link proshivkasi unda ishlamadi. J-Link qisman ishladi - USB qurilmasi aniqlandi, ammo dasturchi o'z funktsiyalarini bajarmadi va uning "nuqsonli" ekanligini doimo eslatib turdi.

K1986BE1QI (aviatsiya) uchun rivojlanish kengashini ishlab chiqish
Asl bo'lmagan kontrollerda tuzatuvchini ishga tushirishda xato

Men bundan qoniqmadim va avval LEDni miltillash uchun dasturiy ta'minotni yozdim va keyin JTAG protokoli yordamida IDCODE so'rovini amalga oshirdim. Men Discovery platasida bo'lgan ST-Link dasturchisi va ST-Link Utility dasturi CS32F103C8T6 ni muammosiz yondirdi.Oxirida platam ishlayotganiga amin bo'ldim. Xursand bo'lganim uchun, maqsadli boshqaruvchi K1986BE1QI (aviatsiya) TDO liniyasi orqali IDCODE-ni xursandchilik bilan chiqardi.

K1986BE1QI (aviatsiya) uchun rivojlanish kengashini ishlab chiqish
Kodlangan IDCODE javobiga ega TDO signal liniyasining oscillogrammasi, (c) muallif surati

K1986BE1QI (aviatsiya) uchun rivojlanish kengashini ishlab chiqish
Shunday qilib, SWD porti tuzatuvchining o'zini disk raskadrovka qilish va IDCODE ni tekshirish uchun foydali bo'ldi

Tuzatish vositasi bilan variant bor edi CMSIS-DAP (disk raskadrovka kirish porti). ARM manbalaridan loyiha yaratish oson ish emas, men loyihani oldim X893, va keyin men DAP42 ni sinab ko'rdim. Afsuski, Keil uVision qotib qoldi va ular bilan ishlashni xohlamadi. Natijada, men tuzatuvchi chipni xususiy STM32F103C8T6 bilan almashtirdim va hech qachon bu masalaga qaytmadim.

K1986BE1QI (aviatsiya) uchun rivojlanish kengashini ishlab chiqish
O'rnatilgan J-Link STLink V2 tuzatuvchisining muvaffaqiyatli ishlashi

Kelajakdagi rivojlanish kengashining barcha asosiy komponentlari mavjud bo'lganda, men Eagle CAD-ga kirdim va ular elementlar kutubxonasida yo'qligini aniqladim. Boradigan joyi yo'q edi - men ularni o'zim chizishim kerak edi. Shu bilan birga, men xotira uchun o'rnatish joylarini, Ethernet uchun HanRun ulagichini va rezistorlar va kondensatorlar uchun ramkalarni qo'shdim. Loyiha fayli va komponentlar kutubxonasini topish mumkin mening GitHub-da.

MDB1986 ishlab chiqish kengashining sxematik diagrammasiK1986BE1QI (aviatsiya) uchun rivojlanish kengashini ishlab chiqish

Kengash USB portidan olingan 5 voltli doimiy tok manbaidan quvvatlanadi. Bortda jami ikkita USB Type-B porti mavjud. Ulardan biri dasturchi uchun, ikkinchisi K1986BE1QI kontrolleri uchun. Kengash ushbu manbalardan birida yoki ikkalasidan bir vaqtning o'zida ishlashi mumkin. Eng oddiy yukni tartibga solish va elektr uzatish liniyasini himoya qilish D2 va D3 (SS24) sxemalarida Schottky diodlari yordamida amalga oshiriladi. Shuningdek, diagrammada siz 1 mA da F2 va F500 o'z-o'zidan tiklanadigan sigortalarni ko'rishingiz mumkin. USB portining signal liniyalari USBLC6-2SC6 diyot majmuasi bilan himoyalangan.

ST-Link tuzatuvchi-dasturchi sxemasi ko'pchilikka ma'lum, uni STM32-Discovery platalari uchun hujjatlarda va boshqa manbalarda topish mumkin. ST-Link/J-Link-OB/DAP klonining dastlabki dasturiy ta'minoti (ixtiyoriy) uchun men SWDIO (PA13), SWCLK (PA14), GND qatorlarini chiqardim. Ko'p odamlar proshivka uchun UART-dan foydalanadilar va BOOT jumperlarini tortib olishga majbur bo'lishadi. Lekin men SWDni qulayroq deb bilaman va bu protokol nosozliklarni tuzatishga imkon beradi.

Kengashning deyarli barcha komponentlari AMS3.3-1117 voltaj regulyatoridan keladigan 3.3 voltdan quvvatlanadi. Elektromagnit shovqinlarni va oqim kuchlanishini bostirish uchun BLM31PG seriyali kondansatör va choklardan LC filtrlari qo'llaniladi.

Alohida-alohida, MAX7 7221-segmentli displey drayverini eslatib o'tish kerak. Spetsifikatsiyaga ko'ra, tavsiya etilgan quvvat manbai 4 dan 5.5 voltgacha va yuqori signal darajasi (mantiqiy) kamida 3.5 V (0.7 x VCC), 5 V quvvat manbai bilan. K1986BE1QI (aviatsiya) boshqaruvchisi uchun mantiqiy blokning chiqishi 2.8 dan 3.3 V gacha bo'lgan kuchlanishga to'g'ri keladi. Oddiy ishlashga xalaqit berishi mumkin bo'lgan signal darajalari o'rtasida nomuvofiqlik borligi aniq. Men MAX7221 ni 4V da quvvatlantirishga va signal darajasini 2.8V ga kamaytirishga qaror qildim (0.7 x 4 = 2.8). Buning uchun D4 diodi (RS1A yoki FR103) haydovchi quvvat pallasida ketma-ket o'rnatiladi. Umumiy kuchlanish pasayishi 0.9V (Schottky diode 0.3V va diyot 0.6V) va hamma narsa ishlaydi.

K1986BE1QI (aviatsiya) mikrokontrollerining aksariyat portlari 5V gacha bo'lgan signallarga mos keladi. Shu sababli, 2551V da ishlaydigan MCP5 CAN qabul qiluvchi qurilmasidan foydalanishda hech qanday muammo yo'q. MAX232 chipi diagrammada RS-3232 qabul qiluvchi sifatida ko'rsatilgan, lekin aslida men Texas Instruments-dan SN65C3232D-dan foydalanganman, chunki u 3.3V dan ishlaydi va 1Mbit/s gacha tezlikni ta'minlaydi.

Kengashda 4 ta kvarts rezonatori mavjud - biri tuzatuvchi (8 MGts) va uchtasi 1986 kHz, 1 MGts, 32.768 MGts chastotali K16BE25QI (aviatsiya) maqsadli mikrokontrolleri uchun. Bu zarur komponentlar, chunki O'rnatilgan RC osilatorining parametrlari 6 dan 10 MGts gacha keng diapazonda. O'rnatilgan Ethernet kontrollerining ishlashi uchun 25 MGts chastotasi talab qilinadi. Ba'zi sabablarga ko'ra, Milandra veb-saytida (ehtimol xatolik tufayli) plastik korpusda Ethernet yo'qligi aytilgan. Lekin biz spetsifikatsiya va faktlarga tayanamiz.

O'zimning rivojlanish platamni yaratish uchun muhim rag'bat, aslida parallel port bo'lgan tashqi tizim avtobusi EBC (tashqi avtobus boshqaruvchisi) bilan ishlash imkoniyati bo'ldi. K1986BE1QI mikrokontrolleri (samolyot) sizga tashqi xotira chiplari va periferik qurilmalar, masalan, ADC, FPGA va boshqalarni ulash va ular bilan ishlash imkonini beradi. Tashqi tizim shinasining imkoniyatlari ancha katta - siz 8-bit, 16-bit va 32-bitli statik RAM, ROM va NAND Flash bilan ishlashingiz mumkin. 32-bitli maʼlumotlarni oʻqish/yozish uchun boshqaruvchi avtomatik ravishda 2-bitli chiplar uchun 16 ta tegishli operatsiyani va 8-bitli chiplar uchun 4 ta amalni bajarishi mumkin. Shubhasiz, 32-bitli I/U operatsiyasi 32-bitli maʼlumotlar shinasi bilan eng tez bajariladi. Kamchiliklari dasturning 32-bitli ma'lumotlar bilan ishlashi zarurligini o'z ichiga oladi va taxta 32 ta trekni yotqizishi kerak bo'ladi.

K1986BE1QI (aviatsiya) uchun rivojlanish kengashini ishlab chiqish
Statik RAM chiplari, ishlatilgan (qaysi biri nuqsonli ekanligini taxmin qiling)

Balansli yechim 16 bitli xotira chiplaridan foydalanishdir. Menda Integrated Silicon Solutions Inc. chiplari bor edi. (ISSI IS61LV25616AL, 16 x 256k, 10 ns, 3.3V). Albatta, Milander kompaniyasi o'zining statik xotira chiplariga ega seriyali 1645RU, lekin ular juda qimmat va mavjud emas. Shu bilan bir qatorda, pin-mos keluvchi Samsung K6R4016V1D mavjud. Ilgari men mikrosxemalar ishlatilganligini va men o'rnatgan nusxa dastlab 15-chi ma'lumotlar qatorida nosozliklar va xaotik qiymatlarni berganligini aytdim. Uskuna xatolarini topish uchun bir necha kun kerak bo'ldi va shikastlangan chipni ishlaydigan chip bilan almashtirganimda qoniqish hissi shunchalik ko'p bo'ldi. Qanday bo'lmasin, tashqi xotira bilan ishlash tezligi juda ko'p narsani talab qiladi.

Tashqi avtobus va StandAlone rejimiK1986BE1QI mikrokontrolleri (samolyot) o'ziga xos StandAlone rejimiga ega bo'lib, u tashqi avtobus orqali Ethernet va MKIO kontrollerlariga (MIL_STD_1553) bevosita tashqi kirish uchun mo'ljallangan, yadro reset holatida, ya'ni. ishlatilmayapti. Ushbu rejim Ethernet va/yoki MKIO ga ega bo'lmagan protsessorlar va FPGAlar uchun qulay.
Ulanish diagrammasi quyidagicha:

  • ma'lumotlar avtobusi MCU(D0-D15) => SRAM (I/O0-I/O15),
  • manzil avtobusi MCU(A1-A18) => SRAM(A0-A17),
  • boshqaruv MCU(nWR,nRD,PortC2) => SRAM (WE,OE,CE),
  • SRAM (UB, LB) rezistor orqali ulanadi yoki erga tortiladi.

Idoralar liniyasi rezistor orqali quvvat manbaiga ulangan, MCU baytini (BE0-BE3) namuna olish uchun pinlar ishlatilmaydi. Spoyler ostida men portlar va tashqi avtobus boshqaruvchisini ishga tushirish uchun kodni taqdim etaman.

Portlar va EBC tekshirgichini ishga tushirish (tashqi avtobus boshqaruvchisi)

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 paketidagi mikrokontroller va TSOP-44 to'plamidagi xotira ko'plab bog'langan pinlarga ega va bosilgan elektron platada juda ko'p joy egallaydi. Iqtisodiyot sohasida optimallashtirish muammolarini hal qilishda tajribaga ega bo'lganim uchun, men uchun bu mikrosxemalarni birinchi navbatda doskaga joylashtirish kerakligi ayon bo'ldi. Turli manbalarda men maqtovli sharhlarga duch keldim CAD TopoR (Topologik Router). Men sinov versiyasini yuklab oldim va deyarli barcha komponentlarni olib tashlaganimdan keyingina loyihamni Eagle CAD dan eksport qila oldim. Afsuski, TopoR dasturi menga hatto 10 ta elementni doskaga joylashtirishga yordam bermadi. Birinchidan, barcha komponentlar burchakka joylashtirildi, so'ngra chekka bo'ylab joylashtirildi. Men bu variantdan qoniqmadim va uzoq vaqt davomida tanish Eagle SAPR muhitida taxtani qo'lda kuzatdim.

Bosilgan elektron plataning muhim elementi ipak ekranli chop etishdir. Rivojlanish kengashida nafaqat elektron komponentlar uchun yorliqlar bo'lishi kerak, balki barcha ulagichlar ham etiketlangan bo'lishi kerak. Kengashning orqa tomonida men kontroller portlarining funktsiyalari (asosiy, muqobil, bekor qilingan, haqiqiy) bilan jadvallarni joylashtirdim. Men taniqli PCBWay ofisidan Xitoyda bosilgan elektron platalarni ishlab chiqarishga buyurtma berdim. Men uni maqtamayman, chunki sifati yaxshi. Ular yanada qattiqroq toleranslar bilan yaxshiroq qila oladilar, lekin haq evaziga.

K1986BE1QI (aviatsiya) uchun rivojlanish kengashini ishlab chiqish
MDB1986 bosilgan elektron platalar ishlab chiqarilgan, (c) muallif surati

Men 40 vattli lehimli temir va POS-61 lehim bilan "tizzalarimda" komponentlarni lehimlashim kerak edi, chunki men yiliga 1-2 marta kamdan-kam lehim qilaman va lehim pastasi qurib qolgan edi. Men shuningdek, Xitoyning CS32F103 kontrollerini asl STM32F103 ga o'zgartirishim kerak edi, keyin esa xotirani almashtirishim kerak edi. Umuman olganda, hozir men natijadan to'liq qoniqdim, garchi men hali RS-232 va CAN ishlashini tekshirmaganman.

K1986BE1QI (aviatsiya) uchun rivojlanish kengashini ishlab chiqish
MDB1986 disk raskadrovka paneli ishlamoqda - u porlaydi va isitadi, (c) muallifning fotosurati

Milandra veb-saytida siz etarlicha topishingiz mumkin o'quv nazoratchilari uchun o'quv materiallari seriyali 1986BE9 (Cortex-M3 yadrosi), lekin K1986BE1QI (aviatsiya) mikrokontrolleri uchun men u erda hech narsa ko'rmayapman. Universitetlar uchun chop etilgan materiallar, qo‘llanmalar va laboratoriya ishlarini ko‘rib chiqib, butun mamlakat bo‘ylab Rossiya nazoratchilari bilan ishlash uchun kadrlar tayyorlanayotganidan xursandman. Ko'pgina o'quv materiallari kiritish-chiqarish portlari, taymerlar, ADC, DAC, SPI, UART bilan ishlashga tayyorlanadi. Turli xil IDE ishlab chiqish muhitlari qo'llaniladi (Keil, IAR, CodeMaster). Qaerdadir ular CMSIS registrlari yordamida dasturlashadilar, qayerdadir esa MDR kutubxonasidan foydalanadilar. Resursni ko'rsatish kerak Milandrni boshlang, unda amaliyotchi dasturchilarning ko'plab maqolalari mavjud. Va, albatta, biz unutmasligimiz kerak Milandra forumi.

Milandra haqida o'yladimRossiyada mikroelektronika rivojlanmoqda va bu jarayonda Milander kompaniyasi muhim rol o'ynaydi. Yangi qiziqarli mikrokontrollerlar paydo bo'lmoqda, masalan, SpaceWire va MKIO interfeysli 1986BE81T va Elektrosila (1986BE1-dagi kabi va, ehtimol, bir xil muammolar bilan) va boshqalar. Ammo oddiy talabalar, o'qituvchilar va qurilish muhandislari bunday mikrosxemalarni sotib olmaydilar. Bu shuni anglatadiki, muhandislik jamiyati ushbu chip bilan bog'liq xato va muammolarni tezda aniqlay olmaydi. Menimcha, avvalo plastik qutida mikrosxemalarni ishlab chiqarish, ularni barcha manfaatdor tomonlarga tarqatish kerak va mutaxassislar tomonidan aprobatsiyadan (lotincha approbatio - tasdiqlash, tan olish) so'ng, ular metall-keramika korpusida qayta ko'rib chiqishni tayyorlashlari mumkin. barcha dahshatli omillardan himoya qilish. Umid qilamanki, yaqin kelajakda ko'rgazmalarda e'lon qilingan yangi loyihalar barchamizni xursand qiladi.
Men ishlab chiqqan disk raskadrovka panelini har kim takrorlashi, o‘zgartirishi va o‘quv jarayonida foydalanishi mumkin. Avvalo, men o'zim uchun taxta yasadim, lekin bu juda yaxshi chiqdi Men hamma bilan baham ko'rishga qaror qildim.

K1986BE1QI (havo) - bu universitetlarda talabalarni o'qitish uchun ishlatilishi mumkin bo'lgan noyob interfeyslarga ega bo'lgan juda qiziqarli kontroller. O'ylaymanki, nazoratchida aniqlangan xatolarni tuzatib, sertifikatlash testlaridan o'tgandan so'ng, nazoratchi so'zning to'g'ri ma'nosida uchib ketadi!

Manba: www.habr.com

a Izoh qo'shish