Utveckling av ett utvecklingskort för K1986BE1QI (flyg)

Utveckling av ett utvecklingskort för K1986BE1QI (flyg)

För flera år sedan blev jag bekant med ryska mikrokontroller från Milander. Det var 2013, när ingenjörer intensivt diskuterade de första resultaten av det federala målprogrammet "Utveckling av elektronisk komponentbas och radioelektronik" för 2008-2015. Vid den tiden hade K1986BE9x-kontrollern (Cortex-M3-kärna) redan släppts, och 1986BE1T-kontrollern (Cortex-M1-kärna) hade precis dykt upp. I plastfodralet, LQFP-144, hade den beteckningen K1986BE1QI (flyg) i dokumentationen och på själva chippet beteckningen MDR32F1QI. På tillverkarens webbplats har den suffixet "avia", eftersom den har gränssnitt som är specifika för flygplansindustrin (ARINC 429, MIL_STD_1553).

Överraskande nog, vid tidpunkten för distributionen av dessa kontroller, förberedde Milander-företaget felsökningskit och ett bibliotek med subrutiner för att arbeta med kringutrustning, "men utan några ytterligare garantier eller skyldigheter angående bibliotekets korrekthet." Biblioteket liknar Standard Peripheral Library från STMicroelectronics. I allmänhet har alla ARM-kontroller byggda på Cortex-M-kärnan mycket gemensamt. Av denna anledning gick bekantskapen med de nya ryska kontrollanterna snabbt. Och för dem som köpte märkesfelsökningskit, gavs teknisk support under användning.

Utveckling av ett utvecklingskort för K1986BE1QI (flyg)
Felsökningssats för mikrokontroller 1986BE1T, © Milander

Men med tiden började "barnsjukdomar" i nya mikrokretsar och bibliotek dyka upp. Testexempel på firmware fungerade utan synliga problem, men med betydande modifieringar inträffade krascher och fel. Den första "svalan" enligt min erfarenhet var oförklarliga fel i driften av CAN-styrenheten. Ett år senare upptäcktes ett problem med modulen på 1986BE1T (flyg) styrenheten av en tidig revision MKIO (multiplex informationsutbyteskanal). I allmänhet var alla revisioner av dessa mikrokontroller fram till 2016 av begränsad användning. Mycket tid och nerver gick åt för att identifiera dessa problem, vilket nu kan hittas i fellistor (Errata).

En obehaglig funktion var att det var nödvändigt att arbeta och hantera fel inte på felsökningskort, utan på prototypkort för enheter som var planerade för seriell fabrikstillverkning. Det fanns vanligtvis ingenting där förutom JTAG-kontakten. Att ansluta med en logikanalysator var svårt och obekvämt, och det fanns vanligtvis inga lysdioder eller skärmar. Av denna anledning dök idén om att skapa min egen felsökningstavla upp i mitt huvud.

Å ena sidan fanns det märkesfelsökningskit på marknaden, såväl som underbara kort från företaget LDM-Systems från Zelenograd. Å andra sidan är priserna för dessa produkter svindlande, och den grundläggande funktionaliteten utan expansionskort uppfyller inte förväntningarna. Ett kort med en lödd kontrollenhet och en stiftkontakt är inte av intresse för mig. Och mer intressanta brädor är dyra.

Utveckling av ett utvecklingskort för K1986BE1QI (flyg)
Utvecklingskort MILANDR LDM-HELPER-K1986BE1QI-FULL, © LDM Systems

Milanderföretaget har en unik prispolicy och marknadsföring. Så det är möjligt att få gratisprover av vissa mikrokretsar, men detta är endast tillgängligt för juridiska personer och är förknippat med ett byråkratiskt uppdrag. I allmänhet är mikrokretsar i ett metallkeramiskt hölje guld i bokstavlig och bildlig mening. Till exempel kostar en 1986BE1T-kontroller från 14 till 24 tusen rubel i Moskva. Det statiska minneschippet 1645RU6U kostar från 15000 1986 rubel. Och detta är prisordern för alla produkter. Som ett resultat sparar även specialiserade forskningsinstitut med statliga order pengar och drar sig för sådana priser. Mikrokretsar i ett plastfodral för civilt bruk är betydligt billigare, men de finns inte hos populära leverantörer. Dessutom är kvaliteten på mikrokretsar i ett plasthölje, det verkar för mig, sämre än "guld". Till exempel kunde jag inte köra K1BE128QI-kontrollern på 40 MHz utan att öka parametern för flash latens. Samtidigt steg temperaturen på denna kontroller till 50-1986C. Men 1BE128T (“guld”) styrenheten startade på XNUMX MHz utan ytterligare inställningar och förblev kall. Han är riktigt bra.

Utveckling av ett utvecklingskort för K1986BE1QI (flyg)
"Gyllene" mikrokontroller 1986BE1T, (c) Milander

Jag hade turen att en mikrokontroller i ett plastfodral fortfarande kan köpas i detaljhandeln från LDM Systems, och alla kortdiagram är fritt tillgängliga. Det dåliga är att på hemsidan på fotot av kontrollenheten kan du se en markering som säger att detta är den 4:e revisionen av 2014, d.v.s. med defekter. Jag funderade länge på om jag skulle köpa eller inte. Det gick flera år så här...

Tanken på att skapa ett felsökningskort har inte försvunnit någonstans. Efterhand bildade jag alla krav och funderade på hur jag skulle placera allt på en bräda så att det skulle bli kompakt och inte dyrt. Samtidigt beställde jag de saknade komponenterna från kineserna. Jag hade ingen brådska - jag gjorde allt för mig själv. Kinesiska leverantörer är notoriskt slarviga - jag var tvungen att beställa samma sak från olika ställen för att få allt jag behövde. Dessutom visade sig några av minneschipsen vara använda - uppenbarligen lödda från trasiga enheter. Detta kom tillbaka för att förfölja mig senare.

Att köpa en mikrokontroller Milander K1986BE1QI (luft) är ingen lätt uppgift. I samma Chip and Dip-butik, i avsnittet "Artiklar att beställa" hittade jag bara K1986BE92QI för 740 rubel, men det passade inte mig. Det enda alternativet är att köpa en icke-färsk version från LDM-Systems för 2000 2018 rubel. Eftersom jag inte kunde hitta en ersättare någon annanstans bestämde jag mig för att köpa det jag hade. Till min trevliga överraskning sålde de mig en helt ny kontroller tillverkad i december 6, revision 1820+ (XNUMX). Men sajten har fortfarande ett gammalt foto, och i skrivande stund är kontrollern inte tillgänglig...

Utveckling av ett utvecklingskort för K1986BE1QI (flyg)
Mikrokontroller K1986BE1QI (flyg) i teknisk förpackning, (c) Foto av författaren

De viktigaste tekniska egenskaperna hos mitt felsökningskort MDB1986 följande:

  • inbyggd debugger-programmerare, kompatibel med J-Link och CMSIS-DAP;
  • statiskt minne 4Mbit (256k x 16, 10 ns);
  • flashminne chip 64Mbit, Winbond 25Q64FVSIG;
  • RS-232-gränssnittstransceiver med RTS- och CTS-linjer;
  • gränssnitt och kontakter för Ethernet, USB, CAN;
  • MAX7 7221-segments displaykontroller;
  • stiftkontakt för att arbeta med MKIO (MIL_STD_1553) och ARINC429;
  • fototransistor Everlight PT17-21C;
  • fem färglampor, en återställningsknapp och två användarknappar;
  • strömförsörjningen till USB-porten är 5 volt;
  • kretskortsmått 100 x 80, mm

Jag gillade korten i STM-Discovery-serien eftersom de har en inbyggd programmerare-debugger - ST-Link. Branded ST-Link fungerar bara med kontroller från STMicroelectronics, men för ett par år sedan blev det möjligt att uppdatera firmware i ST-Link och få SEGGER J-Link OB (on-board) Debugger. Rent juridiskt finns det en begränsning för att använda en sådan debugger endast med STMicroelectronics-kort, men i själva verket är potentialen inte begränsad. Med en J-Link OB kan du alltså ha en inbyggd programmerare-debugger på felsökningskortet. Jag noterar att LDM-Systems produkter använder omvandlaren CP2102 (Usb2Uart), som bara kan blixt.

Utveckling av ett utvecklingskort för K1986BE1QI (flyg)
STM32F103C8T6 mikrokontroller, verkliga och inte så verkliga, (c) Foto av författaren

Så det var nödvändigt att köpa den ursprungliga STM32F103C8T6, eftersom proprietär firmware inte kommer att fungera korrekt med klonen. Jag tvivlade på den här tesen och bestämde mig för att prova styrenheten CS32F103C8T6 från det kinesiska företaget CKS. Jag har inga klagomål på själva styrenheten, men den proprietära ST-Link-firmwaren fungerade inte i den. J-Link fungerade delvis - USB-enheten upptäcktes, men programmeraren utförde inte sina funktioner och påminde hela tiden att den var "defekt".

Utveckling av ett utvecklingskort för K1986BE1QI (flyg)
Fel vid körning av felsökaren på en icke-original styrenhet

Jag var inte nöjd med detta och skrev först firmware för att blinka lysdioden och implementerade sedan IDCODE-förfrågan med JTAG-protokollet. ST-Link-programmeraren, som jag hade på Discovery-kortet, och ST-Link Utility-programmet flashade CS32F103C8T6 utan problem. Till slut var jag övertygad om att mitt kort fungerade. Till min glädje utfärdade målstyrenheten K1986BE1QI (flyg) glatt sin IDCODE via TDO-linjen.

Utveckling av ett utvecklingskort för K1986BE1QI (flyg)
Oscillogram av en TDO-signallinje med ett kodat IDCODE-svar, (c) Foto av författaren

Utveckling av ett utvecklingskort för K1986BE1QI (flyg)
Så SWD-porten kom väl till pass för att felsöka själva felsökaren och kontrollera IDCODE

Det fanns ett alternativ med en debugger CMSIS-DAP (Debug Access Port). Att bygga ett projekt från ARM-källor är inte en lätt uppgift, jag tog projektet från X893, och sedan provade jag DAP42. Tyvärr frös Keil uVision och ville inte arbeta med dem. Som ett resultat ersatte jag felsökningschippet med en proprietär STM32F103C8T6 och återvände aldrig till det här problemet.

Utveckling av ett utvecklingskort för K1986BE1QI (flyg)
Framgångsrik drift av den inbyggda debuggern J-Link STLink V2

När alla nyckelkomponenter i det framtida utvecklingskortet var tillgängliga gick jag in i Eagle CAD och upptäckte att de inte fanns i elementbiblioteket. Det fanns ingenstans att ta vägen - jag var tvungen att rita dem själv. Samtidigt gjorde jag monteringsplatser för minne, en HanRun-kontakt för Ethernet och la till ramar för motstånd och kondensatorer. Projektfilen och komponentbiblioteket finns på min GitHub.

Schematiskt diagram över MDB1986-utvecklingskortetUtveckling av ett utvecklingskort för K1986BE1QI (flyg)

Kortet drivs av en 5 volt DC-källa som erhålls från USB-porten. Det finns totalt två USB Type-B-portar på kortet. En är för programmeraren, den andra är för K1986BE1QI-kontrollern. Kortet kan arbeta från någon av dessa källor eller båda samtidigt. Den enklaste lastregleringen och kraftledningsskyddet implementeras med hjälp av Schottky-dioder, i krets D2 och D3 (SS24). Även i diagrammet kan du se självåterställande säkringar F1 och F2 vid 500 mA. USB-portens signallinjer är skyddade av en USBLC6-2SC6 diodenhet.

ST-Link debugger-programmeringskretsen är känd för många, den kan hittas i dokumentationen för STM32-Discovery-kort och andra källor. För den initiala firmwaren för ST-Link/J-Link-OB/DAP-klonen (valfritt) tog jag fram raderna SWDIO (PA13), SWCLK (PA14), GND. Många använder UART för firmware och tvingas dra BOOT-byglarna. Men jag tycker att SWD är bekvämare, och det här protokollet tillåter felsökning.

Nästan alla komponenter på kortet drivs av 3.3 volt, som kommer från spänningsregulatorn AMS1117-3.3. För att undertrycka elektromagnetiska störningar och strömstötar används LC-filter från kondensatorer och chokes i BLM31PG-serien.

Separat är det värt att nämna MAX7 7221-segments displaydrivrutin. Enligt specifikationen är den rekommenderade strömförsörjningen från 4 till 5.5 volt, och den höga signalnivån (logisk) är minst 3.5V (0.7 x VCC), med en 5V-försörjning. För styrenheten K1986BE1QI (flyg) motsvarar utsignalen från en logisk enhet en spänning från 2.8 till 3.3V. Uppenbarligen finns det en oöverensstämmelse mellan signalnivåerna som kan störa normal drift. Jag bestämde mig för att driva MAX7221 på 4V och minska signalnivåerna till 2.8V (0.7 x 4 = 2.8). För att göra detta installeras diod D4 (RS1A eller FR103) i serie i drivkretsen. Det totala spänningsfallet är 0.9V (Schottky-diod 0.3V och diod 0.6V), och allt fungerar.

De flesta portar på K1986BE1QI (flyg) mikrokontroller är kompatibla med signaler upp till 5V. Därför är det inga problem att använda MCP2551 CAN-transceivern, som också fungerar på 5V. MAX232-chippet anges som en RS-3232-transceiver i diagrammet, men jag använde faktiskt SN65C3232D från Texas Instruments, eftersom den fungerar från 3.3V och ger hastigheter upp till 1Mbit/s.

Kortet innehåller 4 kvartsresonatorer - en för debuggern (8 MHz) och tre för målmikrokontrollern K1986BE1QI (flyg) med klassificeringar på 32.768 kHz, 16 MHz, 25 MHz. Dessa är nödvändiga komponenter, eftersom Parametrarna för den inbyggda RC-oscillatorn ligger inom ett brett intervall från 6 till 10 MHz. En frekvens på 25 MHz krävs för driften av den inbyggda Ethernet-styrenheten. Av någon anledning står det på Milandras hemsida (kanske av misstag) att plastfodralet inte har Ethernet. Men vi kommer att förlita oss på specifikationen och fakta.

Ett viktigt incitament för att skapa ett eget utvecklingskort var möjligheten att arbeta med den externa systembussen EBC (extern bussstyrenhet), som i huvudsak är en parallellport. K1986BE1QI mikrokontroller (flygplan) låter dig ansluta och arbeta med externa minneschips och kringutrustning, till exempel ADC, FPGA, etc. Den externa systembussens möjligheter är ganska stora - du kan arbeta med 8-bitars, 16-bitars och 32-bitars statiskt RAM, ROM och NAND Flash. För att läsa/skriva 32-bitars data kan styrenheten automatiskt utföra 2 motsvarande operationer för 16-bitars chips och 8 operationer för 4-bitars chips. Uppenbarligen kommer en 32-bitars I/O-operation att slutföras snabbast med en 32-bitars databuss. Nackdelarna inkluderar behovet av att programmet ska fungera med 32-bitars data, och kortet kommer att behöva lägga 32 spår.

Utveckling av ett utvecklingskort för K1986BE1QI (flyg)
Statiska RAM-chips, används (gissa vilken som är defekt)

En balanserad lösning är att använda 16-bitars minneskretsar. Jag råkade ha Integrated Silicon Solutions Inc. chips i lager. (ISSI IS61LV25616AL, 16 x 256k, 10 ns, 3.3V). Naturligtvis har Milander-företaget sina egna statiska minneskretsar serie 1645RU, men de är för dyra och otillgängliga. Som ett alternativ finns det pin-kompatibla Samsung K6R4016V1D. Tidigare nämnde jag att mikrokretsarna visade sig användas och kopian som jag installerade gav initialt fel och kaotiska värden i den 15:e dataraden. Det tog flera dagar att hitta hårdvarufel, och desto större blev känslan av tillfredsställelse när jag bytte ut det skadade chippet mot ett fungerande. Hur som helst, hastigheten på att arbeta med externt minne lämnar mycket övrigt att önska.

Extern buss och fristående lägeMikrokontrollern K1986BE1QI (flygplan) har ett unikt StandAlone-läge, som är designat för direkt extern åtkomst till Ethernet- och MKIO-kontroller (MIL_STD_1553) via en extern buss, med kärnan i återställningstillstånd, d.v.s. inte använd. Detta läge är praktiskt för processorer och FPGA:er som inte har Ethernet och/eller MKIO.
Anslutningsschemat är som följer:

  • databuss MCU(D0-D15) => SRAM(I/O0-I/O15),
  • adressbuss MCU(A1-A18) => SRAM(A0-A17),
  • styr MCU(nWR,nRD,PortC2) => SRAM (WE,OE,CE),
  • SRAM(UB,LB) ansluts eller dras till jord genom ett motstånd.

CE-ledningen är ansluten till strömförsörjningen via ett motstånd; stiften för sampling av MCU-byten (BE0-BE3) används inte. Under spoilern tillhandahåller jag koden för att initiera portarna och den externa bussstyrenheten.

Initieringsportar och EBC-styrenhet (extern bussstyrenhet)

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

Mikrokontrollern i LQFP-144-paketet och minnet i TSOP-44-paketet har många tillhörande stift och tar upp mycket plats på kretskortet. Med erfarenhet av att lösa optimeringsproblem inom ekonomiområdet var det uppenbart för mig att det var nödvändigt att placera dessa mikrokretsar på kortet först. I olika källor har jag stött på lovordande recensioner om CAD TopoR (topologisk router). Jag laddade ner testversionen och kunde exportera mitt projekt från Eagle CAD dit först efter att jag tagit bort nästan alla komponenter. Tyvärr hjälpte TopoR-programmet mig inte att placera ens 10 element på tavlan. Först placerades alla komponenter i ett hörn och arrangerades sedan längs kanten. Jag var inte nöjd med det här alternativet, och under lång tid spårade jag brädet manuellt i den välbekanta Eagle CAD-miljön.

En viktig del av ett kretskort är silkscreentryck. Utvecklingskortet ska inte bara ha etiketter för de elektroniska komponenterna, utan alla kontakter ska också vara märkta. På baksidan av kortet placerade jag bord med funktionerna för kontrollerportarna (huvud, alternativ, åsidosatt, faktisk). Jag beställde tillverkning av tryckta kretskort i Kina från det välkända PCBWay-kontoret. Jag kommer inte att berömma den eftersom kvaliteten är bra. De kan bättre, med snävare toleranser, men för en avgift.

Utveckling av ett utvecklingskort för K1986BE1QI (flyg)
Tillverkade MDB1986 kretskort, (c) Foto av författaren

Jag var tvungen att löda komponenterna "på knäna" med en 40-watts lödkolv och POS-61-lod, eftersom jag sällan löder, 1-2 gånger om året, och lödpastan hade torkat ut. Jag var också tvungen att byta den kinesiska CS32F103-kontrollern till den ursprungliga STM32F103, och sedan även byta ut minnet. I allmänhet är jag nu helt nöjd med resultatet, även om jag ännu inte har kontrollerat driften av RS-232 och CAN.

Utveckling av ett utvecklingskort för K1986BE1QI (flyg)
MDB1986 felsökningskort i drift - det lyser och värmer, (c) Foto av författaren

På Milandras hemsida kan du hitta tillräckligt utbildningsmaterial för inlärningskontrollanter serie 1986BE9 (Cortex-M3-kärna), men för mikrokontrollern K1986BE1QI (flyg) ser jag ingenting där. Efter att ha tittat på material, manualer och laboratoriearbete för universitet som publicerats där, är jag glad att personal utbildas i hela landet för att arbeta med ryska kontrollanter. De flesta utbildningsmaterial förbereder för arbete med I/O-portar, timers, ADC, DAC, SPI, UART. Olika IDE-utvecklingsmiljöer används (Keil, IAR, CodeMaster). Någonstans programmerar de med CMSIS-register, och någonstans använder de MDR-biblioteket. Resurs måste nämnas Starta Milandr, som innehåller många artiklar från praktiserande programmerare. Och det ska vi naturligtvis inte glömma Milandra forum.

Tänkte på MilandraMicroelectronics utvecklas i Ryssland och Milander-företaget spelar en framträdande roll i denna process. Nya intressanta mikrokontroller dyker upp, till exempel 1986BE81T och Elektrosila med SpaceWire- och MKIO-gränssnitt (samma som i 1986BE1 och möjligen med samma problem), etc. Men vanliga studenter, lärare och civilingenjörer kan inte köpa sådana mikrokretsar. Detta innebär att ingenjörsgemenskapen snabbt kommer att kunna identifiera fel och problem med detta chip. Det förefaller mig som att det först är nödvändigt att producera mikrokretsar i ett plastfodral, distribuera dem till alla intresserade parter, och efter godkännande (latin approbatio - godkännande, erkännande) av specialister, kan de förbereda en revision i ett metallkeramiskt fall med skydd från alla hemska faktorer. Jag hoppas att vi inom en snar framtid ALLA kommer att vara nöjda med de nya projekt som tillkännages på utställningarna.
Felsökningstavlan jag utvecklade kan upprepas, modifieras och användas av alla i utbildningsprocessen. Först och främst gjorde jag tavlan åt mig själv, men det blev så bra att Jag bestämde mig för att dela med alla.

K1986BE1QI (air) är en mycket intressant styrenhet med unika gränssnitt som kan användas på universitet för att undervisa studenter. Jag tror att efter att ha korrigerat de fel som identifierats i kontrollanten och klarat certifieringstesterna kommer kontrollanten att flyga i ordets rätta bemärkelse!

Källa: will.com

Lägg en kommentar