Projektowanie płyty testowej dla K1986ВЕ1QI (lotnictwo)

Projektowanie płyty testowej dla K1986ВЕ1QI (lotnictwo)

Kilka lat temu poznałem rosyjskie mikrokontrolery firmy Milandr. Był to rok 2013, kiedy inżynierowie intensywnie omawiali pierwsze wyniki FCP „Rozwoju elektronicznej bazy komponentów i radioelektroniki” na lata 2008-2015. W tym czasie wydany został już kontroler K1986ВЕ9x (rdzeń Cortex-M3), a dopiero co pojawił się kontroler 1986ВЕ1Т (rdzeń Cortex-M1). W plastikowej obudowie LQFP-144 miał on oznaczenie K1986ВЕ1QI (lotniczy) w dokumentacji, a na samej kostce oznaczenie MDR32F1QI. Na stronie producenta widnieje sufiks „lotniczy”, ponieważ posiada interfejsy specyficzne dla przemysłu lotniczego (ARINC 429, MIL_STD_1553).

Zadziwiające, ale w momencie wprowadzenia tych kontrolerów firma „Milandr” przygotowała zestawy deweloperskie oraz bibliotekę podprogramów do obsługi peryferiów, „ale bez jakichkolwiek dodatkowych gwarancji i zobowiązań dotyczących poprawności biblioteki”. Biblioteka jest podobna do Standard Peripheral Library firmy STMicroelectronics. Ogólnie rzecz biorąc, wszystkie mikrokontrolery ARM oparte na rdzeniu Cortex-M mają wiele wspólnego. Z tego powodu zaznajomienie się z nowymi rosyjskimi kontrolerami przebiegało szybko. A dla tych, którzy zakupili oryginalne zestawy deweloperskie, oferowano wsparcie techniczne w trakcie użytkowania.

Projektowanie płyty testowej dla K1986ВЕ1QI (lotnictwo)
Zestaw deweloperski dla mikrokontrolera 1986ВЕ1Т, © Milandr

Jednak z czasem zaczęły ujawniać się „choroby wieku dziecięcego” nowych układów scalonych i bibliotek. Przykłady testowe programów działały bez widocznych problemów, ale przy znacznej modyfikacji pojawiały się błędy i awarie. Pierwszym „sygnałem” w mojej praktyce były niewytłumaczalne awarie w pracy kontrolera CAN. Po roku na kontrolerze 1986ВЕ1Т (lotniczy) wczesnej rewizji odkryto problem z modułem MKIO (multiplexowany kanał wymiany informacji). Ogólnie rzecz biorąc, wszystkie rewizje tych mikrokontrolerów do 2016 roku były ograniczone do użytku. Wiele czasu i nerwów zajęło wykrycie tych problemów, których potwierdzenie można teraz znaleźć w listach błędów (Errata).

Niekorzystną cechą było to, że pracować i rozwiązywać błędy trzeba było nie na płytkach testowych, a na płytkach prototypowych urządzeń, które planowano do seryjnej produkcji. Oprócz złącza JTAG tam zwykle nic nie było. Podłączenie analizatora logicznego było trudne i niewygodne, a diod i ekranów zazwyczaj nie było. Z tego powodu w mojej głowie pojawiła się myśl o stworzeniu własnej płytki testowej.

Z jednej strony na rynku dostępne były firmowe zestawy testowe oraz świetne płytki od firmy LDM-Systems z Zielonej Góry. Z drugiej strony, ceny tych produktów wprawiają w osłupienie, a podstawowa funkcjonalność bez płyt rozszerzeń nie spełnia oczekiwań. Płytka z wlutowanym kontrolerem i złączem typu pin nie jest dla mnie interesująca. A bardziej interesujące płytki są drogie.

Projektowanie płyty testowej dla K1986ВЕ1QI (lotnictwo)
Płytka testowa MILANDR LDM-HELPER-K1986BE1QI-FULL, © LDM Systems

Firma «Milandr» ma specyficzną politykę cenową i marketingową. Tak, można bezpłatnie otrzymać próbki niektórych układów scalonych, ale dostępne jest to tylko dla osób prawnych i związane z biurokratycznym questem. Ogólnie rzecz biorąc, układy scalone w metaloceramicznych obudowach są złote w dosłownym i przenośnym sensie. Na przykład kontroler 1986ВЕ1Т kosztuje w Moskwie od 14 do 24 tysięcy rubli. Układ scalony pamięci statycznej 1645РУ6У kosztuje od 15 000 rubli. I taka jest cena za cały asortyment. W rezultacie nawet wyspecjalizowane instytuty Naukowe z zamówieniami państwowymi oszczędzają i boją się takich cen. Układy scalone w plastikowych obudowach do zastosowań cywilnych są znacznie tańsze, ale nie ma ich w ofercie popularnych dostawców. Ponadto wydaje mi się, że jakość układów scalonych w plastikowych obudowach jest gorsza niż „złotych”. Na przykład nie udało mi się uruchomić kontrolera K1986BE1QI na częstotliwości 128MHz bez zwiększenia parametru opóźnienia flash. Jednocześnie temperatura tego kontrolera wzrosła do 40-50°C. A kontroler 1986BE1T („złoty”) uruchomił się na 128MHz bez dodatkowych ustawień i pozostawał zimny. Jest naprawdę dobry.

Projektowanie płyty testowej dla K1986ВЕ1QI (lotnictwo)
„Złoty” mikrokontroler 1986BE1T, (c) Milandr

Miałem szczęście, że mikrokontroler w plastikowej obudowie można kupić detalicznie w firmie LDM Systems, a wszystkie schematy płyt są ogólnodostępne. Szkoda, że na zdjęciu kontrolera na stronie widnieje oznaczenie, które wskazuje, że to 4 edycja z 2014 roku, czyli z wadami. Długo się zastanawiałem – kupować czy nie kupować. Tak minęło kilka lat...

Myśl o stworzeniu płytki testowej nie zniknęła. Stopniowo sformułowałem wszystkie wymagania i myślałem, jak wszystko umieścić na jednej płytce, aby było to kompaktowe i niedrogie. Równocześnie zamawiałem brakujące komponenty od Chińczyków. Nie spieszyłem się – wszystko robiłem dla siebie. Chińscy dostawcy słyną z bałaganiarstwa – musiałem zamawiać to samo w różnych miejscach, aby zdobyć wszystko, czego potrzebowałem. Co więcej, część pamięci okazała się być używana – najwyraźniej wyjęta z zepsutych urządzeń. To później miało swoje konsekwencje.

Zakup mikrokontrolera Milandr К1986ВЕ1QI (lotniczy) to niełatwe zadanie. W tym samym sklepie 'Chip i Dip' w dziale 'Pozycje na zamówienie' znalazłem tylko K1986BE92QI za 740 rubli, ale nie odpowiadał mi. Jedyną opcją było zakupu w firmie LDM-Systems za 2000 rubli nieświeżej edycji. Ponieważ nigdzie indziej nie mogłem znaleźć zamiennika, postanowiłem kupić to, co było. Ku mojemu miłemu zaskoczeniu sprzedano mi nowy kontroler wydany w grudniu 2018 roku, wersja 6+ (1820). A na stronie wciąż widniało stare zdjęcie, i w momencie pisania artykułu kontroler nie był dostępny...

Projektowanie płyty testowej dla K1986ВЕ1QI (lotnictwo)
Mikrokontroler К1986ВЕ1QI (lotniczy) w opakowaniu technologicznym, (c) Fot. autora

Główne parametry techniczne mojej płytki testowej MDB1986 następujące:

  • wbudowany debuger-programator, kompatybilny z J-Link i CMSIS-DAP;
  • pamięć statyczna 4Mbit (256k x 16, 10 ns);
  • układ pamięci flash 64Mbit, Winbond 25Q64FVSIG;
  • odbiornik-nadajnik interfejsu RS-232 z liniami RTS i CTS;
  • interfejsy i złącza dla Ethernet, USB, CAN;
  • kontroler wyświetlacza 7-segmentowego MAX7221;
  • gniazdo do pracy z MKIO (MIL_STD_1553) i ARINC429;
  • fototranzystor Everlight PT17-21C;
  • pięć kolorowych diod LED, przycisk reset i dwa przyciski użytkownika;
  • zasilanie z portu USB 5 woltów;
  • wymiary płytki drukowanej 100 x 80 mm

Podobały mi się płytki serii STM-Discovery, ponieważ mają wbudowany programator-debugger – ST-Link. Firmowy ST-Link działa tylko z kontrolerami firmy STMicroelectronics, ale kilka lat temu pojawiła się możliwość zaktualizowania oprogramowania w ST-Link i uzyskania SEGGER J-Link OB (on-board) Debuggera. Prawnie istnieje ograniczenie korzystania z tego debuggera tylko z płytami STMicroelectronics, ale w praktyce potencjał nie jest ograniczony. W ten sposób, mając J-Link OB, można mieć wbudowany programator-debugger na płytce testowej. Zaznaczam, że w produktach „LDM-Systems” zastosowano konwerter CP2102 (Usb2Uart), który może jedynie programować.

Projektowanie płyty testowej dla K1986ВЕ1QI (lotnictwo)
Mikrokontrolery STM32F103C8T6, oryginalne i nie tylko, (c) zdjęcie autora

Tak więc, konieczne było zakupienie oryginalnego STM32F103C8T6, ponieważ firmowe oprogramowanie nie będzie poprawnie działać z klonem. Wątpiłem w to stwierdzenie i postanowiłem spróbować w praktyce kontroler CS32F103C8T6 chińskiej firmy CKS. Do samego kontrolera nie mam zastrzeżeń, ale firmowe oprogramowanie ST-Link nie działało w nim. J-Link działał częściowo – urządzenie USB było wykrywane, ale programator nie spełniał swoich funkcji i stale przypominał, że jest "uszkodzony".

Projektowanie płyty testowej dla K1986ВЕ1QI (lotnictwo)
Błąd podczas pracy debuggera na nieoryginalnym kontrolerze

Nie zamierzałem na tym poprzestać i najpierw napisałem oprogramowanie do migania diodą LED, a potem zaimplementowałem zapytanie IDCODE zgodnie z protokołem JTAG. Programator ST-Link, który miałem na płytce Discovery, oraz program ST-Link Utility programowały bez problemów CS32F103C8T6. W rezultacie przekonałem się, że moja płytka działa. Ku mojej radości docelowy kontroler K1986BE1QI (lotniczy) sprawnie wydawał swój IDCODE przez linię TDO.

Projektowanie płyty testowej dla K1986ВЕ1QI (lotnictwo)
Oscylogram linii sygnałowej TDO z zakodowaną odpowiedzią IDCODE, (c) zdjęcie autora

Projektowanie płyty testowej dla K1986ВЕ1QI (lotnictwo)
Oto przydał się port SWD do debugowania samego debuggera i sprawdzenia IDCODE

Pozostała opcja z debuggerem CMSIS-DAP (Debug Access Port). Skonstruowanie projektu z źródeł od ARM to niełatwe zadanie, wziąłem projekt od X893, a potem jeszcze próbowałem DAP42. Niestety, Keil uVision zawieszał się i nie chciał z nimi współpracować. W końcu wymieniłem układ debuggera na oryginalny STM32F103C8T6 i nie wróciłem do tej kwestii.

Projektowanie płyty testowej dla K1986ВЕ1QI (lotnictwo)
Udana praca wbudowanego debuggera J-Link STLink V2

Gdy wszystkie kluczowe komponenty przyszłej płytki prototypowej były już dostępne, zwróciłem się do Eagle CAD i odkryłem, że brakuje ich w bibliotece elementów. Nie było wyjścia – musiałem je samodzielnie zaprojektować. Przy okazji stworzyłem miejsca montażowe dla pamięci, złącza HanRun do Ethernetu, a dla rezystorów i kondensatorów dodałem ramki. Plik projektu i bibliotekę komponentów można znaleźć u mnie na GitHubie.

Schemat zasadniczy płytki prototypowej MDB1986Projektowanie płyty testowej dla K1986ВЕ1QI (lotnictwo)

Płytka jest zasilana z zasilacza stałego o napięciu 5 woltów, pozyskiwanego z portu USB. Na płytce znajdują się dwa porty USB Type-B. Jeden – do programatora, drugi – do kontrolera K1986BE1QI. Płytka może działać z dowolnego z tych źródeł lub z obu jednocześnie. Najprostsza regulacja obciążenia i ochrona linii zasilających są realizowane na diodach Schottky’ego, na schemacie D2 i D3 (SS24). Na schemacie można także zobaczyć samoregenerujące się bezpieczniki F1 i F2 na 500 mA. Linia sygnałowa portu USB jest chroniona przez zespół diod USBLC6-2SC6.

Schemat debuggera-programatora ST-Link jest wielu znany, można go znaleźć w dokumentacji płytek STM32-Discovery i innych źródłach. Do wstępnego programowania klona ST-Link/J-Link-OB/DAP (do wyboru) wyprowadziłem linie SWDIO (PA13), SWCLK (PA14), GND. Wiele osób używa UART do programowania i musi przełączać zworki BOOT. Ale dla mnie wygodniejsze jest SWD, tym bardziej, że ten protokół pozwala na prowadzenie debugowania.

Prawie wszystkie komponenty płytki są zasilane napięciem 3.3 woltów, które pochodzi z regulatora napięcia AMS1117-3.3. Aby tłumić zakłócenia elektromagnetyczne i skoki prądu, używane są filtry LC z kondensatorów i dławików serii BLM31PG.

Osobno warto wspomnieć o sterowniku wyświetlacza 7-segmentowego MAX7221. Zgodnie ze specyfikacją, zalecane zasilanie wynosi od 4 do 5.5 woltów, a poziom wysokiego sygnału (logiczna jedynka) wynosi nie mniej niż 3.5 V (0.7 x VCC), przy zasilaniu 5 V. W kontrolerze K1986BE1QI (aviacja) wyjście logicznej jedynki odpowiada napięciu od 2.8 do 3.3 V. Oczywiście różnice w poziomach sygnałów mogą zakłócać normalną pracę. Postanowiłem zasilić MAX7221 z 4 V i obniżyć poziomy sygnałów do 2.8 V (0.7 x 4 = 2.8). W tym celu w szereg zasilania sterownika wstawiono diodę D4 (RS1A lub FR103). W sumie spadek napięcia wynosi 0.9 V (dioda Schottky’ego 0.3 V i dioda 0.6 V), i wszystko działa.

Większość portów mikrokontrolera K1986ВЕ1QI (aviation) jest zgodna z sygnałami do 5V. Dlatego używanie transceivera CAN MCP2551, który również działa na 5V, nie stanowi problemu. Jako odbiornik-nadajnik RS-232 w schemacie podano układ MAX3232, ale w rzeczywistości użyłem SN65C3232D firmy Texas Instruments, ponieważ działa on na 3.3V i zapewnia prędkość do 1Mbit/s.

Na płycie znajdują się 4 rezonatory kwarcowe – jeden dla debuggera (8MHz) i trzy dla docelowego mikrokontrolera K1986ВЕ1QI (aviation) o częstotliwościach 32.768kHz, 16MHz i 25MHz. To niezbędne komponenty, ponieważ parametry wbudowanego generatora RC są w dużych granicach od 6 do 10 MHz. Częstotliwość 25MHz jest potrzebna do pracy wbudowanego kontrolera Ethernet. Na stronie Milandra (prawdopodobnie przez pomyłkę) wskazano, że w plastikowej obudowie Ethernet nie ma. Jednak będziemy opierać się na specyfikacji i faktach.

Ważnym bodźcem do stworzenia własnej płyty testowej była możliwość pracy z zewnętrzną magistralą systemową EBC (external bus controller), która w zasadzie jest portem równoległym. Mikrokontroler K1986ВЕ1QI (aviation) pozwala na podłączanie i pracę z zewnętrznymi układami pamięci oraz urządzeniami peryferyjnymi, takimi jak ADC, FPGA itp. Możliwości zewnętrznej magistrali systemowej są dość duże – można pracować z 8-bitowymi, 16-bitowymi i 32-bitowymi statycznymi RAM, ROM i NAND Flash. Aby odczytać/zapisać dane 32-bitowe, kontroler potrafi automatycznie wykonać 2 odpowiednie operacje dla 16-bitowych układów, a dla 8-bitowych – 4 operacje. Oczywiste jest, że operacja wejścia-wyjścia 32-bitowa zostanie wykonana najszybciej z 32-bitową magistralą danych. Do wad można zaliczyć konieczność używania 32-bitowych danych w programie, a na płycie trzeba będzie poprowadzić 32 ścieżki.

Projektowanie płyty testowej dla K1986ВЕ1QI (lotnictwo)
Układy statycznej pamięci RAM, używane (zgadnij, który z defektem)

Zrównoważonym rozwiązaniem jest wykorzystanie 16-bitowych układów pamięci. Miałem w dostępności układy Integrated Silicon Solutions Inc. (ISSI IS61LV25616AL, 16 x 256k, 10 ns, 3.3V). Oczywiście, firma 'Milandr' ma swoje układy pamięci statycznej. serii 1645РУ, ale są zbyt drogie i niedostępne. Jako alternatywę można użyć kompatybilnych układów Samsung K6R4016V1D. Wcześniej wspomniałem, że układy były używane i egzemplarz, który zainstalowałem na początku, powodował błędy i chaotyczne wartości na 15. linii danych. Zajęło mi kilka dni znalezienie błędów sprzętowych, a uczucie satysfakcji było jeszcze większe, gdy wymieniłem uszkodzony układ na sprawny. Tak czy inaczej, prędkość pracy z pamięcią zewnętrzną pozostawia wiele do życzenia.

Zewnętrzna szyna i tryb StandAloneMikrokontroler K1986VE1QI (lotniczy) ma unikalny tryb StandAlone, który jest przeznaczony do bezpośredniego dostępu zewnętrznego do kontrolerów Ethernet i MKIO (MIL_STD_1553) przez zewnętrzną szynę, przy czym rdzeń znajduje się w stanie resetu, tzn. nie jest używany. Ten tryb jest wygodny dla procesorów i FPGA, w których nie ma Ethernetu i/lub MKIO.
Schemat podłączenia jest następujący:

  • szyna danych MCU(D0-D15) => SRAM(I/O0-I/O15),
  • szyna adresowa MCU(A1-A18) => SRAM(A0-A17),
  • sterowanie MCU(nWR,nRD,PortC2) => SRAM (WE,OE,CE),
  • SRAM(UB,LB) jest podłączone lub podciągnięte do masy przez rezystor.

Linia CE jest podciągnięta do zasilania przez rezystor, wyprowadzenia do wybierania bajta MCU(BE0-BE3) nie są używane. Pod spoilerem przedstawiam kod inicjalizacji portów i kontrolera zewnętrznej szyny.

Inicjalizacja portów i kontrolera EBC (kontroler zewnętrznej szyny)

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

Mikrokontroler w obudowie LQFP-144 i pamięć w obudowie TSOP-44 mają wiele powiązanych wyprowadzeń i zajmują dużo miejsca na płytce drukowanej. Mając doświadczenie w rozwiązywaniu problemów optymalizacyjnych w ekonomii, było dla mnie oczywiste, że umiejscowienie tych układów na płytce powinno być priorytetem. W różnych źródłach spotkałem się z pochlebnymi recenzjami na temat CAD TopoR (Topological Router). Pobranie wersji próbnej (trial) umożliwiło mi eksportowanie mojego projektu z Eagle CAD tylko wtedy, gdy usunąłem prawie wszystkie komponenty. Niestety, nawet 10 elementów program TopoR nie pomógł mi umieścić na płytce. Początkowo wszystkie komponenty były umieszczone w rogu, a potem wzdłuż krawędzi. Taki układ mnie nie zadowolił, więc długo wykonywałem trasowanie płytki ręcznie w znanym mi środowisku Eagle CAD.

Ważywartym elementem płytki drukowanej jest sitodruk. Na płytce prototypowej nie powinny być tylko napisy do komponentów elektronicznych, ale wszystkie złącza również powinny być opisane. Na odwrocie płytki umieściłem tabele referencyjne z funkcjami portów kontrolera (podstawowym, alternatywnym, nadpisanym, rzeczywistym). Produkcję płytek zamówiłem w Chinach w znanej firmie PCBWay. Nie będę chwalić, bo jakość jest dobra. Mogą zrobić lepiej, z mniejszymi tolerancjami, ale za dodatkową opłatą.

Projektowanie płyty testowej dla K1986ВЕ1QI (lotnictwo)
Wyprodukowane płytki drukowane MDB1986, (c) Zdjęcie autora

Montaż komponentów musiałem wykonać «na kolanie» lutownicą 40-watową i cyną POS-61, ponieważ lutuję rzadko, 1-2 razy w roku, a pasta lutownicza wyschła. Musiałem również wymienić chiński kontroler CS32F103 na oryginalny STM32F103, a potem także pamięć. Generalnie obecny rezultat całkowicie mnie satysfakcjonuje, chociaż jeszcze nie sprawdziłem działania RS-232 i CAN.

Projektowanie płyty testowej dla K1986ВЕ1QI (lotnictwo)
Płytka prototypowa MDB1986 w akcji — świeci i grzeje, (c) Zdjęcie autora

Na stronie «Milandra» można znaleźć wystarczającą ilość materiałów edukacyjnych do nauki kontrolerów Seria 1986BE9 (rdzeń Cortex-M3), ale dla mikroprocesora K1986ВE1QI (lotniczy) nie widzę tam nic. Przeglądając opublikowane tam materiały, metodologie i prace laboratoryjne dla uczelni, cieszę się, że przygotowywane są kadry w całym kraju do pracy z rosyjskimi kontrolerami. Większość materiałów edukacyjnych przygotowuje do pracy z portami wejścia-wyjścia, timerami, ADC, DAC, SPI, UART. Używane są różne środowiska programowania IDE (Keil, IAR, CodeMaster). Gdzieś programują z użyciem rejestrów CMSIS, a gdzie indziej korzystają z biblioteki MDR. Należy wspomnieć o zasobie Start Milandr, który zawiera wiele artykułów od programistów-praktyków. I oczywiście, nie można zapominać o forum Milandra.

Duma o MilandrzeMikroelektronika w Rosji rozwija się, a w tym procesie firma „Milandr” odgrywa znaczącą rolę. Pojawiają się nowe interesujące mikroprocesory, na przykład 1986ВЕ81Т i „Elektrosila” z interfejsami SpaceWire i MKIO (takim same jak w 1986BE1 i, być może, z tymi samymi problemami), itp. Ale zwykłym studentom, nauczycielom i inżynierom cywilnym zakup takich układów scalonych jest niemożliwy. To oznacza, że społeczność inżynierów nie będzie w stanie szybko zidentyfikować błędów i problemów z tym układem scalonym. Wydaje mi się, że najpierw należy wprowadzić układy scalone w plastikowej obudowie, rozpowszechniać wśród wszystkich zainteresowanych, a dopiero po zatwierdzeniu (łac. approbatio — zatwierdzenie, uznanie) przez specjalistów można przygotować rewizję w obudowie metalowo-ceramicznej z zabezpieczeniami przed wszystkimi straszliwymi czynnikami. Mam nadzieję, że w najbliższej przyszłości wszyscy nas ucieszą nowymi projektami zaprezentowanymi na targach.
Opracowaną przeze mnie płytkę stykową każdy może powtórzyć, zmodyfikować i wykorzystać w procesie edukacyjnym. Przede wszystkim robiłem płytkę dla siebie, ale wyszło to tak dobrze, że postanowiłem podzielić się tym z wszystkimi.

K1986ВE1QI (lotniczy) – to bardzo interesujący kontroler z unikalnymi interfejsami, który może być używany na uczelniach do nauczania studentów. Myślę, że po poprawieniu błędów wykrytych w kontrolerze i przejściu testów certyfikacyjnych, kontroler poleci w dosłownym tego słowa znaczeniu!

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster