K1986ВЕ1QI (avia) üçün debuq kartının hazırlanması

K1986ВЕ1QI (avia) üçün debuq kartının hazırlanması

Bir neçə il əvvəl Миландр şirkətinin rus mikrokontrolçularıyla tanış oldum. Bu, 2013-cü ildır, mühəndislər 2008-2015-ci illərdə "Elektron komponent bazasının və radioelektronikanın inkişafına dair Dövlət Proqramı" çərçivəsində ilk nəticələr üzərində qızğın müzakirələr aparırdılar. O vaxt artıq K1986ВЕ9x (Cortex-M3 mərkəzi) mikroçipi buraxılmışdı və yalnız K1986ВЕ1Т (Cortex-M1 mərkəzi) mikroçipi meydana çıxmışdı. Bu, plastik LQFP-144 housing içində MDR32F1QI adı ilə vinhoşüdür, istehsalçı saytında isə “avia” suffixi ilə təqdim olunur, çünki bu mikrokontrolçular aviasiya üçün spesifik interfeyslərə (ARINC 429, MIL_STD_1553) sahibdir.

Təəccüblüdür ki, bu mikrokontrolçuların yayılma dövründə Миландр şirkəti periferiyalardan istifadə üçün debuq kitləri və proqram kitabxanası hazırlamışdı, "lakin kitabxananın doğruluq təminatı və məsuliyyətləri olmadan". Kitabxana STMicroelectronics şirkətinin Standard Peripheral Library-sinə bənzəyir. Bütün Cortex-M nüvəsində qurulmuş ARM mikroçiplerinin bir çox bağlılığı vardır. Bu səbəbdən yeni rus mikrokontrolçularıyla tanışlıq sürətlə baş verdi. Brend debuq kitlərini alanlar üçün istifadə zamanı texniki dəstək təqdim edilirdi.

K1986ВЕ1QI (avia) üçün debuq kartının hazırlanması
1986ВЕ1Т mikroçipi üçün debuq komplekti, © Миландр

Amma, zamanla yeni mikroçiplər və kitabxanaların "uşaq xəstəlikləri" meydana çıxdı. Test proqramlarının örnəkləri heç bir görünən problemi olmadan işləyirdi, amma əhəmiyyətli dəyişikliklərdə səhvlər və xətalar baş verirdi. Mənim praktikamdakı ilk МКИО (informasiya mübadiləsi üçün çoxlayn kanal). Ümumilikdə, bu mikrokontrolçuların 2016-cı ilə qədər olan bütün versiyaları məhdud istifadə üçün yararlı idi. Bu problemləri anlamaq üçün çox vaxt və nerv sərf olundu, onların təsdiqləri indi, xətalar siyahısında (Errata).

Gözlənilməz bir xüsusiyyət isə о idi ki, səhvlərlə işləmək və onların səbəblərini araşdırmaq debuq kartlarında deyil, seriyalı istehsal üçün planlaşdırılan cihazların prototip kartlarında həyata keçirilməli idi. Orada adətən JTAG portu vardı, başqa heç nə yox idi. Loqik analizatoruna qoşulmaq çətin və rahat deyildi, işıqlı diodlar və ekranlar adətən yox idi. Bu səbəbdən öz debuq kartımın yaradılması fikri başıma gəlmişdi.

Bir tərəfdən, bazarda brendik düzəliş dəstləri var, digər tərəfdən, Moskvanın LDM-Systems şirkətinin fantastik plataları var. Lakin, bu məhsulların qiymətləri şok edici dərəcədə yüksəkdir və genişlənmə kartları olmadan əsas funksional imkanlar gözləntiləri qarşılamır. İçi bağlanmış kontrolçusu və uğur qozalı birləşməsi olan plata mənim üçün maraqlı deyil. Daha maraqlı platalar isə baha başa gəlir.

K1986ВЕ1QI (avia) üçün debuq kartının hazırlanması
Düzəliş kartı MILANDR LDM-HELPER-K1986BE1QI-FULL, © LDM Systems

Milan şirkətinin qiymət strategiyası və marketinqi özünəməxsusdur. Bəzi mikrosxemlərin pulsuz nümunələrini almaq mümkündür, lakin bu yalnız hüquqi şəxslərə təqdim olunur və bürokratik bir proseslə bağlıdır. Ümumilikdə, metal-keramika korpusundakı mikrosxemlər həm birbaşa, həm də məcazi mənada qiymətlidir. Məsələn, 1986ВЕ1Т kontrolçusunun Moskva qiyməti 14.000-24.000 rubl arasındadır. Statik yaddaş mikrosxeması 1645РУ6У-nın qiyməti isə 15.000 rubldan başlayır. Və bütün məhsul üçün belə qiymətləri var. Nəticədə, hətta ixtisaslaşmış TİM-lərlə dövlət sifarişləri belə bu qiymətlərdən qaçır. Plastik korpusdakı mikrosxemlər mülki istifadəyə çatdırılmada əhəmiyyətli dərəcədə ucuzdur, amma populyar tədarükçülərdə mövcud deyil. Bundan əlavə, plastik korpusdakı mikrosxemlərin keyfiyyətinin daha

K1986ВЕ1QI (avia) üçün debuq kartının hazırlanması
«Qızıl» mikrokontrolçusu 1986BE1T, (c) Milandr

Mən şanslıyam ki, plastik korpusdakı mikrokontrolçunu LDM Systems şirkətində pərakəndə olaraq alına bilir. Həmçinin bütün plataların sxemləri sərbəst şəkildə əldə edilə bilər. Pis olan odur ki, saytın üzərindəki kontrolçunun şəkilində 2014-cü ilin 4-cü reviziyasının işarəsi görünür, yəni, defekti var. Uzun müddət düşündüm – almalıyam, ya yox. Beləliklə, bir neçə il keçdi...

Düzəliş kartı yaratmaq fikri heç vaxt yox olmadı. Tədricən bütün tələbləri formalaşdırdım və bunları necə bir plata üzərində sıx yerləşdirmək barədə düşündüm ki, kompaktn vacibdir. Eyni zamanda, çinlilərdən çatışmayan komponentləri sifariş edirdim. Tez isdəmirdim – hər şeyi özüm üçün edirdim. Çin tədarükçüləri tənbehlilərlə məşhurdur – mən eyni şeyi müxtəlif yerlərdən sifariş etməyə məcbur oldum ki, lazım olan hər şeyi əldə edim. Daha əhəmiyyətlisi, bəzi yaddaş mikrosxemləri istifadə olunmuş olaraq çıxdı - aydın görünür ki, pozulmuş cihazlardan çıxarılıb. Bu, sonra mənə özünü göstərdi.

Mikrokontroller Milandr K1986ВЕ1QI (aviya) almaq - asan bir iş deyil. Eyni "Chip və Dip" mağazasında "Sifarişdəki mövqelər" bölməsində yalnız 740 rubla K1986BE92QI tapdım, amma bu mənə uyğun deyil. Yeganə variant LDM-Systems şirkətindən 2000 rubla köhnə versiyanı almaq idi. Yerində bir əvəz tapmadığım üçün mövcud olanı almağa qərar verdim. Məni sevindirən bir təəccüblə, dekabr 2018-ci ildə buraxılmış yeni kontrolçünü aldım, versiya 6+ (1820). Və sayt hələ də köhnə fotonu saxlayır, məqalə yazıldıqda kontrolçunun anbarında yoxdur...

K1986ВЕ1QI (avia) üçün debuq kartının hazırlanması
K1986ВЕ1QI (aviya) mikrokontrolleri texnoloji qablaşdırmada, (c) Müəllifin şəkli

Mənim debuq platasının əsas texniki xüsusiyyətləri MDB1986 növbəti:

  • J-Link və CMSIS-DAP ilə uyğun olan daxili debuq proqramı;
  • statik yaddaş 4Mbit (256k x 16, 10 ns);
  • 64Mbit fləş yaddaş çipi, Winbond 25Q64FVSIG;
  • RS-232 interfeysi üçün göndərici qəbul edici, RTS və CTS xətləri ilə;
  • Ethernet, USB, CAN üçün interfeyslər və soketlər;
  • MAX7221 7-segmentli ekran kontrolçüsü;
  • MKIO (MIL_STD_1553) və ARINC429 ilə işləmək üçün pin soketi;
  • Everlight PT17-21C fototransistor;
  • beş rəngli LED, reset düyməsi və iki istifadəçi düyməsi;
  • USB portundan 5 volt güc;
  • çap platasının ölçüləri 100 x 80 mm

Mən STM-Discovery seriyasının platalarını bəyəndim, çünki orada daxili debuq proqramı – ST-Link var. Brend ST-Link yalnız STMicroelectronics şirkətinin kontrolçüləri ilə işləyir, lakin bir neçə il əvvəl ST-Link-in firmware-ni yeniləmə imkanı oldu və SEGGER J-Link OB (on-board) Debugger əldə edildi. Hüquqi olaraq belə bir debuq proqramından yalnız STMicroelectronics plataları ilə istifadə edilməsi məhdudiyyət var, amma faktiki potensial məhdud deyil. Beləliklə, J-Link OB ilə daxili debuq proqramı olan bir debuq platasına sahib ola bilərsiniz. Qeyd edim ki, "LDM-Systems" məhsullarında yalnız fləşləmək üçün CP2102 (Usb2Uart) çeviricisi istifadə olunur.

K1986ВЕ1QI (avia) üçün debuq kartının hazırlanması
STM32F103C8T6 mikrokontrollerləri, gerçək və bəlkə də olmayan, (c) Müəllifin şəkli

Beləliklə, orijinal STM32F103C8T6 almaq lazım idi, çünki brend firmware-lər klonla düzgün işləməyəcək. Bu tezisdə şübhələrim vardı və Çin şirkəti CKS-in CS32F103C8T6 kontrolçüsünü sınamağa qərar verdim. Kontrolçünün özünə heç bir iradım yoxdur, amma brend firmware ST-Link onunla fəaliyyət göstərmədi. J-Link qismən işləyirdi - USB cihazı tanınırdı, lakin öz funksiyalarını yerinə yetirmirdi və daim "defective" olduğunu xatırladırdı.

K1986ВЕ1QI (avia) üçün debuq kartının hazırlanması
orijinal olmayan kontrolçü ilə debuq proqramının işləməsi zamanı xətalar

Bununla yetinmedim, öncelikle bir LED'in yanıp sönmesi için bir yazılım yazdım ve ardından JTAG protokolü ile IDCODE talebi gerçekleştirdim. ST-Link programlayıcım, Discovery kartımda mevcut olan ve ST-Link Utility programı ile CS32F103C8T6'yı sorunsuz bir şekilde programladı. Sonuç olarak, kartımın çalıştığından emin oldum. Sevincime, hedef denetleyici K1986BE1QI (havacılık) TDO hattı üzerinden IDCODE'sunu sağlam bir şekilde veriyordu.

K1986ВЕ1QI (avia) üçün debuq kartının hazırlanması
TDO sinyal hattının IDCODE yanıtını kodlayan osiloskop dalga biçimi, (c) Yazarın fotoğrafı

K1986ВЕ1QI (avia) üçün debuq kartının hazırlanması
Evet, SWD portu, debug'cıyı ve IDCODE'yi kontrol etmek için yararlı oldu.

Debug'cı ile başka bir seçenek kalmıştı. CMSIS-DAP (Debug Access Port). ARM'den kaynak kodları ile projeyi toplamak kolay bir iş değil, ben de X893'tan projeyi aldım. X893, sonra DAP42'yi denedim. Ne yazık ki, Keil uVision donup kaldı ve onlarla çalışmak istemedi. Sonuç olarak, debug'cı entegresini orijinal STM32F103C8T6 ile değiştirdim ve bu konuyla bir daha ilgilenmedim.

K1986ВЕ1QI (avia) üçün debuq kartının hazırlanması
Gömülü J-Link STLink V2 debug'cısının başarılı çalışması

Tüm gelecekteki debug kartının ana bileşenleri mevcut olduğunda, Eagle CAD'e daldım ve bunların kütüphane öğelerinde olmadığını keşfettim. Geri dönmek yok - onları kendim çizmek zorunda kaldım. Ayrıca, hafıza, Ethernet için HanRun konektörünün montaj yerlerini uyguladım ve dirençler ile kapasitörler için çerçeveler ekledim. Proje dosyası ve bileşen kütüphanesini bulabilirsiniz. benim GitHub'ımda.

MDB1986 debug kartının devre şemasıK1986ВЕ1QI (avia) üçün debuq kartının hazırlanması

Kart, USB portundan elde edilen 5 voltluk bir doğru akım kaynağı ile beslenmektedir. Kartta toplamda iki adet USB Type-B portu bulunmaktadır. Biri programlayıcı için, diğeri K1986BE1QI denetleyicisi içindir. Kart, bu kaynaklardan herhangi biriyle veya her ikisiyle birlikte çalışabilir. En basit yük ayarı ve güç hatlarını koruma, D2 ve D3 (SS24) şemasında yer alan Schottky diyotlar ile gerçekleştirilmiştir. Şemada ayrıca 500mA'lik otomatik geri dönüşümlü sigortalar F1 ve F2'yi görebilirsiniz. USB portunun sinyal hatları, USBLC6-2SC6 diyot montajı ile korunmaktadır.

ST-Link programlayıcısının şeması birçok kişi tarafından bilinmektedir, STM32-Discovery kartlarının dokümantasyonunda ve diğer kaynaklarda bulunabilir. ST-Link/J-Link-OB/DAP (seçim) klonunu ilk kez programlamak için SWDIO (PA13), SWCLK (PA14), GND hatlarını çıkardım. Birçok kişi programlama için UART kullanıyor ve BOOT jumper'ını çekmek zorunda kalıyor. Ancak, benim için SWD daha rahat, ayrıca bu protokol hata ayıklama yapmayı da sağlıyor.

Kartın neredeyse tüm bileşenleri, AMS1117-3.3 gerilim regülatöründen gelen 3.3 volt ile beslenmektedir. Elektromanyetik parazitleri ve akım dalgalanmalarını bastırmak için BLM31PG serisi kondansatörler ve indüktörlerden oluşan LC filtreleri kullanılmaktadır.

MAX7221 7-segment display driver is worth mentioning. According to the specifications, the recommended power supply ranges from 4 to 5.5 volts, and the high signal level (logical one) is at least 3.5V (0.7 x VCC) when powered at 5V. For the K1986VE1QI (aviation) controller, the logical one output corresponds to a voltage between 2.8 and 3.3V. This discrepancy in signal levels can disrupt normal operation. I decided to supply the MAX7221 with 4V and lower the signal levels to 2.8V (0.7 x 4 = 2.8). For this purpose, a diode D4 (RS1A or FR103) is installed in series in the driver's power supply circuit. The total voltage drop is 0.9V (Schottky diode 0.3V and diode 0.6V), and everything works.

Most of the ports of the K1986VE1QI microcontroller (aviation) are compatible with signals up to 5V. Therefore, using the MCP2551 CAN transceiver, which also operates at 5V, is not problematic. The circuit specifies the MAX3232 chip as the RS-232 transceiver, but I actually used the SN65C3232D from Texas Instruments since it works at 3.3V and supports speeds up to 1Mbit/s.

The board has 4 quartz resonators placed – one for the debugger (8MHz) and three for the target K1986VE1QI microcontroller (aviation) with nominal frequencies of 32.768kHz, 16MHz, and 25MHz. These are essential components since the parameters of the built-in RC generator are significantly spread between 6 and 10 MHz. The 25MHz frequency is necessary for the built-in Ethernet controller to function. The Milandr website mistakenly states that Ethernet is absent in the plastic case. However, we will rely on the specifications and facts.

An important motivation for creating my debugging board was the ability to work with the external bus controller (EBC), which is essentially a parallel port. The K1986VE1QI (aviation) microcontroller allows connecting and working with external memory chips and peripheral devices, such as ADCs, FPGAs, etc. The possibilities of the external system bus are quite broad – one can work with 8-bit, 16-bit, and 32-bit static RAM, ROM, and NAND Flash. For reading/writing 32-bit data, the controller can automatically perform 2 corresponding operations for 16-bit chips and 4 operations for 8-bit ones. It is evident that the 32-bit input/output operation will be performed fastest with a 32-bit data bus. Among the drawbacks is the need for the program to handle 32-bit data, and 32 tracks will need to be laid on the board.

K1986ВЕ1QI (avia) üçün debuq kartının hazırlanması
Static RAM chips, used (guess which one has a defect)

A balanced solution is the use of 16-bit memory chips. I have available chips from Integrated Silicon Solutions Inc. (ISSI IS61LV25616AL, 16 x 256k, 10 ns, 3.3V). Of course, Milandr has its own static memory chips. series 1645PY, lakin çox bahalı və əlçatmazdır. Alternativ olaraq, Samsung K6R4016V1D uyğun pin konfiqurasiyalı versiyası mövcuddur. Əvvəllər qeyd etdiyim kimi, çiplər ikinci əl idi və mənim ilk quraşdırdığım çip 15-ci məlumat xəttində səhvlər və nizamsız dəyərlər yaratmışdı. Avadanlıq xətalarını tapmaq üçün bir neçə gün keçdi və zədələnmiş çipi işlək birləşmə ilə əvəz edəndə əldə etdiyim məmnuniyyət daha da artdı. Hər halda, xarici yaddaşla işləmək sürəti gözləniləndən aşağıdır.

Xarici magistral və StandAlone rejimiK1986ВЕ1QI (aviakompaniya) mikrokontrolleri unikal StandAlone rejiminə malikdir ki, bu da xarici Ethernet və MKİO (MIL_STD_1553) kontrollerlərinə xarici magistral vasitəsilə birbaşa giriş imkanı təqdim edir, bununla belə, CPU sıfırlanmış vəziyyətdədir, yəni istifadə edilmir. Bu rejim, Ethernet və ya MKİO olmayan prossesler və FPGA-lar üçün əlverişlidir.
Bağlantı sxemi belədir:

  • MCU məlumat magistralı (D0-D15) => SRAM (I/O0-I/O15),
  • MCU ünvan magistralı (A1-A18) => SRAM (A0-A17),
  • MCU idarəsi (nWR, nRD, PortC2) => SRAM (WE, OE, CE),
  • SRAM (UB, LB) yerə bağlanıb və ya müqavimət vasitəsilə yerə çəkilib.

CE xətti müqavimət vasitəsilə enerji mənbəyinə bağlanılıb, MCU üçün bayt seçim çıxışları (BE0-BE3) istifadə edilmir. Spoiler altında xarici magistral kontrollerinin və portların başlanğıc kodunu verirəm.

EBC (xarici magistral kontrolleri) başlangıcı

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 controller                   //
	//--------------------------------------------//
	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 korpusundaki mikrokontrolör ve TSOP-44 korpusundaki bellek, birçok bağlı pini var ve baskılı devre kartında çok fazla yer kaplıyor. Ekonomik optimizasyon konularında deneyimim olduğundan, bu entegre devrelerin kartta öncelikle yerleştirilmesi gerektiği açıktı. Farklı kaynaklarda bu konuda övgü dolu yorumlar buldum. CAD TopoR (Topolojik Yönlendirici). Deneme sürümünü (trial) indirdim ve Eagle CAD'den projemi oraya aktarmayı ancak neredeyse tüm bileşenleri sildikten sonra başarabildim. Ne yazık ki, 10 bileşen bile program olan TopoR'un bana kartta yerleştirme konusunda yardımcı olamadı. Önce tüm bileşenler köşeye yerleştirildi, ardından kenarlara dizildi. Bu durum beni tatmin etmedi ve uzun süre Eagle CAD'de alışkın olduğum ortamda manuel olarak kart izleme işlemini gerçekleştirdim.

Çap board-un vacib elementi serigrafiyadır. Test board-da elektron komponentlərin adları ilə yanaşı, bütün bağlantılar da imzalanmalıdır. Board-un arxa tərəfində mən kontroller portlarının funksiyalarını əks etdirən xatırlatma cədvəllərini yerləşdirmişəm (əsas, alternativ, yenidən müəyyənləşdirilmiş, faktiki). Çap board-larını Çin-də tanınmış PCBWay şirkətində sifariş vermişəm. Keyfiyyət yaxşıdır, bunu sizə tərifləmək istəmirəm. Onlar daha yaxşısını, daha kiçik toleranslarla edə bilərlər, amma əlavə ödənişlə.

K1986ВЕ1QI (avia) üçün debuq kartının hazırlanması
İstehsal olunmuş çap board MDB1986, (c) Müəllifin fotosu

Komponentləri 40-vattlıq lehimləmə cihazı və ПОС-61 lehimi ilə "çiy" şəkildə lehimləməli oldum, çünki nadir hallarda lehimləyirəm, ildən ilədəyə 1-2 dəfə, və lehim pastası qurumuşdu. Həmçinin, Çin istehsalı olan CS32F103 kontrollerini orijinal STM32F103 ilə dəyişdirmək, daha sonra isə yaddaşı dəyişmək lazım oldu. Ümumiyyətlə, hazırda nəticə məni tamamilə qane edir, baxmayaraq ki, hələ RS-232 və CAN-in işləməsini yoxlamamışam.

K1986ВЕ1QI (avia) üçün debuq kartının hazırlanması
MDB1986 test board-u işlək vəziyyətdə — işıqlı və isinir, (c) Müəllifin fotosu

Milandr saytında kontrollerlərin öyrənilməsi üçün kifayət qədər 1986BE9 seriyası (Cortex-M3 nüvəsi) haqqında, lakin K1986ВЕ1QI (aviya) mikrokontrolleri üçün orada heç nə görmürəm. Orada dərc olunmuş materialları, metodikaları və ali məktəblər üçün laboratoriya işlərini nəzərdən keçirərək, ölkə boyunca Rusiya kontrollerləri ilə işləmək üçün hazırlanan kadrların olduğunu görərək sevinirəm. Əksəriyyətin öyrənmə materialları giriş-çıxış portları, zamanlayıcılar, ADC, DAC, SPI, UART ilə işləməyə hazırlandığını göstərir. Fərqli IDE (Keil, IAR, CodeMaster) inkişaf mühitləri istifadə olunur. Bəziləri CMSIS registrləri ilə proqramlayır, digərləri isə MDR Kitabxanasından istifadə edir. Mütləq qeyd edilməli olan mənbə Start Milandr, proqramçılar tərəfindən xeyli məqalə ehtiva edən bir resursdur. Və əlbəttə ki, unutmamalıyıq ki, Milandr forumu.

Milandr haqqında müzakirəMikroelektronika Rusiyada inkişaf edir və bu prosesdə "Milandr" şirkəti əhəmiyyətli rol oynayır. Yeni maraqlı mikrokontrollerlər, məsələn, 1986ВЕ81Т və SpaceWire və MКİO interfeysləri olan "Elektrosila" meydana gəlir (bu, 1986BE1-də olduğu kimi eynidir və bəlkə də eyni problemlərlə), və s. Lakin sadə tələbələr, müəllimlər və vətəndaş mühəndisləri belə mikrosxemləri əldə etməkdə çətinlik çəkirlər. Bu, mühəndis cəmiyyətinin bu mikrosxemin səhvlərini və problemlərini tez bir zamanda aşkar edə bilməyəcəyi deməkdir. Mənim fikrimcə, ilk öncə plastik korpusda mikrosxemləri istehsal etmək, onları maraqlı olan şəxslər arasında yaymaq və yalnız sonra (latınca approbatio — təsdiqləmə, tanıma) mütəxəssislər tərəfindən sınaqdan keçiriləndən sonra metal-keramika korpusda reviziya hazırlamaq lazımdır. Ümid edirəm ki, yaxın gələcəkdə bizi SİZƏXLAYAN sərgilərdə təqdim olunan yeni layihələrlə sevindirəcəklər.
Hər kəs tərəfindən təkrarlana, modifikasiyaya uğradıla və təhsil prosesində istifadə oluna bilən inkişaf etdirdiyim debuq lövhəsi. İlk növbədə, bu lövhəni özüm üçün hazırlamışdım, amma nəticə o qədər yaxşı oldu ki, bunu hamı ilə bölüşmək qərarına gəldim.

K1986BE1QI (aviya) – unikal interfeysləri olan, ali təhsil müəssisələrində tələbələrin öyrənməsi üçün istifadə oluna bilən, çox maraqlı bir kontrollerdir. Düşünürəm ki, kontrollerdəki tapılan səhvlər düzəldildikdən və sertifikasiya sınaqlarından keçdikdən sonra, kontroller həqiqətən uçmağa başlayacaq!

Mənbə: habr.com

DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər 🔥 DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər | ProHoster