Sviluppu di una scheda di debug per K1986BE1QI (aviazione)

Sviluppu di una scheda di debug per K1986BE1QI (aviazione)

Parechji anni fà, aghju cunnisciutu cù i microcontrollers russi da Milander. Era 2013, quandu l'ingegneri discutevanu vigorosamente i primi risultati di u prugramma Federale Target "Sviluppu di basa di cumpunenti elettronichi è elettronica radio" per 2008-2015. À quellu tempu, u controller K1986BE9x (Cortex-M3 core) era digià statu liberatu, è u controller 1986BE1T (Cortex-M1 core) era appena apparsu. In u casu di plastica, LQFP-144, hà avutu a designazione K1986BE1QI (aviazione) in a documentazione, è nantu à u chip stessu a designazione MDR32F1QI. In u situ web di u fabricatore hà u suffissu "avia", postu chì hà interfacce specifichi per l'industria aeronautica (ARINC 429, MIL_STD_1553).

Sorprendentemente, à u mumentu di a distribuzione di questi cuntrolli, a cumpagnia Milander hà preparatu kits di debugging è una biblioteca di subrutine per travaglià cù periferiche, "ma senza alcuna garanzie o obbligazioni supplementari in quantu à a correttezza di a biblioteca". A biblioteca hè simile à a Biblioteca Perifèrica Standard di STMicroelectronics. In generale, tutti i controller ARM custruiti nantu à u core Cortex-M anu assai in cumunu. Per quessa, a familiarizazione cù i novi cuntrolli russi hà procedutu rapidamente. È per quelli chì anu compru kits di debugging di marca, u supportu tecnicu hè statu furnitu durante l'usu.

Sviluppu di una scheda di debug per K1986BE1QI (aviazione)
Kit di debug per microcontroller 1986BE1T, © Milander

In ogni casu, cù u tempu, "malati di a zitiddina" di novi microcircuiti è biblioteche cuminciaru à appare. Esempi di prova di u firmware hà travagliatu senza prublemi visibili, ma cù mudificazioni significati, crashes è errori sò accaduti. U primu "swallow" in a mo spirimintà era fallimenti inexplicable in l'operazione di u controller CAN. Un annu dopu, un prublema cù u modulu hè statu scupertu nantu à u controller 1986BE1T (aviazione) di una prima rivisione. MKIO (canale di scambiu d'infurmazioni multiplex). In generale, tutte e rivisioni di sti microcontrollers finu à u 2016 eranu di usu limitatu. Un saccu di tempu è nervi sò andati à identificà questi prublemi, a cunferma di quale si pò truvà avà liste d'erreurs (Errata).

Una funzione dispiacevule era chì era necessariu di travaglià è di trattà cù l'errori micca nantu à i tavulini di debugging, ma nantu à i tavulini prototipi di i dispositi chì sò stati previsti per a produzzione seriale di fabbrica. Di solitu ùn ci era nunda, salvu u connettore JTAG. A cunnessione cù un analizatore di logica era difficiule è inconveniente, è ùn ci era micca di solitu LED o schermi. Per quessa, l'idea di creà a mo propria tavola di debugging hè apparsu in a mo testa.

Da una banda, ci sò stati kits di debugging di marca nantu à u mercatu, è ancu meravigliose schede da a cumpagnia LDM-Systems da Zelenograd. Per d 'altra banda, i prezzi di sti prudutti sò stupente, è a funziunalità basica senza carte di espansione ùn risponde micca à l'expectativa. Un bordu cù un controller saldatu è un connettore pin ùn hè micca di interessu per mè. E tavulini più interessanti sò caru.

Sviluppu di una scheda di debug per K1986BE1QI (aviazione)
Scheda di sviluppu MILANDR LDM-HELPER-K1986BE1QI-FULL, © LDM Systems

A cumpagnia Milander hà una pulitica di prezzu è marketing unica. Cusì, hè pussibule acquistà campioni gratuiti di certi microcircuiti, ma questu hè solu dispunibule per e persone giuridiche è hè assuciatu cù una ricerca burocratica. In generale, i microcircuiti in un casu di metallo-ceramica sò oru in u sensu literale è figurativu. Per esempiu, un controller 1986BE1T custa da 14 à 24 mila rubles in Mosca. U chip di memoria statica 1645RU6U costa da 15000 1986 rubles. È questu hè l'ordine di prezzu per tutti i prudutti. In u risultatu, ancu i istituti di ricerca specializati cù ordini di u guvernu risparmianu soldi è si scurdanu di tali prezzi. I microcircuiti in un casu di plastica per l'usu civile sò significativamente più prezzu, ma ùn sò micca dispunibili da i fornituri populari. Inoltre, a qualità di i microcircuiti in un casu di plastica, mi pari, hè peggiu di quelli "d'oru". Per esempiu, ùn pudia micca eseguisce u controller K1BE128QI à 40 MHz senza aumentà u paràmetru di latenza flash. À u listessu tempu, a temperatura di stu controller hè ghjuntu à 50-1986C. Ma u controller 1BE128T ("gold") hà cuminciatu à XNUMX MHz senza paràmetri supplementari è ferma friddu. Hè veramente bonu.

Sviluppu di una scheda di debug per K1986BE1QI (aviazione)
Microcontroller "Golden" 1986BE1T, (c) Milander

Eru furtunatu chì un microcontroller in un casu di plastica pò ancu esse acquistatu à u retail da LDM Systems, è tutti i diagrammi di bordu sò liberamente dispunibili. U male hè chì nantu à u situ web in a foto di u controller pudete vede un marcatu chì dice chì questu hè a 4a rivisione di 2014, i.e. cù difetti. Pensu per un bellu pezzu s'ellu cumprà o micca cumprà. Sò passati parechji anni cusì...

L'idea di creà un bordu di debug ùn hè micca sparitu in ogni locu. Pocu à pocu, aghju furmatu tutti i requisiti è pensa à cumu si mette tuttu nantu à una tavola per esse compactu è micca caru. À u listessu tempu, aghju urdinatu i cumpunenti mancanti da i Cinesi. Ùn aghju micca fretta - aghju fattu tuttu per mè stessu. I fornitori chinesi sò notoriamente sloppy - aghju avutu à urdinà a stessa cosa da diversi posti per uttene tuttu ciò chì avia bisognu. Inoltre, alcuni di i chip di memoria sò stati usati - apparentemente saldati da i dispositi rotti. Questu hè tornatu per perseguirmi dopu.

Cumprà un microcontroller Milander K1986BE1QI (aria) ùn hè micca un compitu faciule. In a stessa tenda Chip and Dip, in a sezione "Articuli per l'ordine", aghju trovu solu K1986BE92QI per 740 rubles, ma ùn mi cunvene micca. L'unica opzione hè di cumprà una rivisione micca fresca da LDM-Systems per 2000 rubles. Siccomu ùn pudia truvà un rimpiazzamentu in altrò, decisu di cumprà ciò chì aghju avutu. À a mo piacevule sorpresa, m'anu vindutu un novu controller fabbricatu in dicembre 2018, rivisione 6+ (1820). Ma u situ hà sempre una vechja foto, è à u mumentu di a scrittura u controller ùn hè micca dispunibule ...

Sviluppu di una scheda di debug per K1986BE1QI (aviazione)
Microcontroller K1986BE1QI (aviazione) in imballaggio tecnologicu, (c) Foto di l'autore

Principali caratteristiche tecniche di u mo bordu di debug MDB1986 i seguenti:

  • Debugger-programmer integratu, cumpatibile cù J-Link è CMSIS-DAP;
  • memoria statica 4 Mbit (256k x 16, 10 ns);
  • chip di memoria flash 64Mbit, Winbond 25Q64FVSIG;
  • Transceiver d'interfaccia RS-232 cù linee RTS è CTS;
  • interfacce è connettori per Ethernet, USB, CAN;
  • MAX7 controller di visualizazione di 7221 segmenti;
  • pin connector per travaglià cù MKIO (MIL_STD_1553) è ARINC429;
  • fototransistor Everlight PT17-21C;
  • cinque LED di culore, un buttone di reset è dui buttoni d'utilizatori;
  • alimentazione à u portu USB hè 5 volti;
  • dimensioni di u circuitu stampatu 100 x 80, mm

Mi sò piaciuti i schede di a serie STM-Discovery perchè anu un programatore-debugger integratu - ST-Link. Branded ST-Link funziona solu cù controller da STMicroelectronics, ma un paru d'anni fà hè diventatu pussibule aghjurnà u firmware in ST-Link è uttene SEGGER J-Link OB (on-board) Debugger. Legalmente, ci hè una restrizzione à utilizà un tali debugger solu cù schede STMicroelectronics, ma in fattu u putenziale ùn hè micca limitatu. Cusì, avè un J-Link OB, pudete avè un programatore-debugger integratu nantu à u bordu di debugging. Aghju nutatu chì i prudutti LDM-Systems utilizanu u cunvertitore CP2102 (Usb2Uart), chì pò solu lampassi.

Sviluppu di una scheda di debug per K1986BE1QI (aviazione)
STM32F103C8T6 microcontrollers, reale è micca cusì reale, (c) Foto di l'autore

Dunque, era necessariu cumprà l'STM32F103C8T6 originale, postu chì u firmware propiu ùn hà micca travagliatu bè cù u clone. Aghju dubbitatu sta tesi è decisu di pruvà u controller CS32F103C8T6 da a cumpagnia chinesa CKS. Ùn aghju micca lagnanza annantu à u controller stessu, ma u firmware ST-Link proprietariu ùn hà micca travagliatu in questu. J-Link hà travagliatu parzialmente - u dispositivu USB hè statu rilevatu, ma u programatore ùn hà micca realizatu e so funzioni è ricurdava constantemente chì era "difettu".

Sviluppu di una scheda di debug per K1986BE1QI (aviazione)
Errore durante l'esecuzione di u debugger in un controller non originale

Ùn era micca cuntentu di questu è hà scrittu prima u firmware per lampà u LED, è dopu implementatu a dumanda IDCODE utilizendu u protocolu JTAG. U programatore ST-Link, chì aghju avutu nantu à a scuperta, è u prugramma ST-Link Utility lampò CS32F103C8T6 senza alcunu prublema.In fine, era cunvinta chì u mo bordu travagliava. À u mo piacè, u cuntrollu di destinazione K1986BE1QI (aviazione) hà emessu allegramente u so IDCODE via a linea TDO.

Sviluppu di una scheda di debug per K1986BE1QI (aviazione)
Oscillogramma di una linea di signale TDO cù una risposta IDCODE codificata, (c) Foto di l'autore

Sviluppu di una scheda di debug per K1986BE1QI (aviazione)
Allora u portu SWD hè stata utile per debugging u debugger stessu è cuntrollà IDCODE

Ci era una opzione cù un debugger CMSIS-DAP (Debug Access Port). Custruì un prughjettu da e fonti ARM ùn hè micca un compitu faciule, aghju pigliatu u prugettu da X893, è dopu aghju pruvatu DAP42. Sfortunatamente, Keil uVision si congelava è ùn vulia micca travaglià cun elli. In u risultatu, aghju rimpiazzatu u chip debugger cù un STM32F103C8T6 proprietariu è ùn hè mai tornatu à questu prublema.

Sviluppu di una scheda di debug per K1986BE1QI (aviazione)
Funzionamentu successu di u debugger integratu J-Link STLink V2

Quandu tutti i cumpunenti chjave di u futuru bordu di sviluppu eranu dispunibuli, sò andatu in Eagle CAD è scupertu chì ùn eranu micca in a biblioteca di l'elementu. Ùn ci era micca induve andà - aghju avutu à disegnà elli stessu. À u stessu tempu, aghju fattu spots di muntatura per a memoria, un connettore HanRun per Ethernet, è aghjustatu frames per resistori è condensatori. U schedariu di prughjettu è a biblioteca di cumpunenti ponu esse truvati nant'à u mo GitHub.

Schema schematicu di u pianu di sviluppu MDB1986Sviluppu di una scheda di debug per K1986BE1QI (aviazione)

U tavulinu hè alimentatu da una fonte di 5 volt DC ottenuta da u portu USB. Ci hè un totale di dui porti USB Type-B nantu à u bordu. Unu hè per u programatore, u sicondu hè per u controller K1986BE1QI. U bordu pò operà da una di queste fonti o da e duie simultaneamente. A regulazione di carica più simplice è a prutezzione di a linea elettrica sò implementate cù diodi Schottky, in circuiti D2 è D3 (SS24). Ancu in u diagrama pudete vede i fusibles auto-ristoranti F1 è F2 à 500 mA. I linii di signale di u portu USB sò prutetti da una assemblea di diodi USBLC6-2SC6.

U circuitu di debugger-programmer ST-Link hè cunnisciutu da parechji; pò esse truvatu in a documentazione per i schede STM32-Discovery è altre fonti. Per u firmware iniziale di u clone ST-Link / J-Link-OB / DAP (opcional), aghju purtatu i linii SWDIO (PA13), SWCLK (PA14), GND. Parechje persone utilizanu UART per u firmware è sò furzati à tirà i jumpers BOOT. Ma aghju trovu SWD più còmuda, è questu protokollu permette di debugging.

Quasi tutti i cumpunenti di u bordu sò alimentati da 3.3 volts, chì venenu da u regulatore di tensione AMS1117-3.3. Per suppressione l'interferenza elettromagnetica è i picchi di corrente, i filtri LC da condensatori è chokes di a serie BLM31PG sò usati.

Separatamente, vale a pena menzionate u driver di display MAX7 di 7221 segmenti. Sicondu a specificazione, l'alimentazione cunsigliata hè da 4 à 5.5 volts, è u livellu di signale altu (logicu) hè almenu 3.5V (0.7 x VCC), cù un supply 5V. Per u controller K1986BE1QI (aviazione), l'output di una unità logica currisponde à una tensione da 2.8 à 3.3V. Ovviamente ci hè una discrepanza trà i livelli di signale chì pò interferiscenu cù u funziunamentu normale. Aghju decisu di alimentà u MAX7221 à 4V è riduce i livelli di signale à 2.8V (0.7 x 4 = 2.8). Per fà questu, u diode D4 (RS1A o FR103) hè stallatu in serie cù u circuitu di putenza di u driver. A caduta di tensione tutale hè 0.9V (diode Schottky 0.3V è diode 0.6V), è tuttu funziona.

A maiò parte di i porti di u microcontroller K1986BE1QI (aviazione) sò cumpatibili cù signali finu à 5V. Dunque, ùn ci hè micca prublema cù u transceiver MCP2551 CAN, chì opera ancu in 5V. U chip MAX232 hè indicatu cum'è un transceiver RS-3232 in u diagramma, ma in fattu aghju utilizatu SN65C3232D da Texas Instruments, perchè opera da 3.3V è furnisce velocità finu à 1Mbit/s.

U bordu cuntene 4 risonatori di quartz - unu per u debugger (8 MHz) è trè per u microcontroller di destinazione K1986BE1QI (aviazione) cù qualificazioni di 32.768 kHz, 16 MHz, 25 MHz. Quessi sò cumpunenti necessarii, perchè I paràmetri di l'oscillatore RC integratu sò in una larga gamma da 6 à 10 MHz. Una frequenza di 25 MHz hè necessaria per u funziunamentu di u controller Ethernet integratu. Per una certa ragione, u situ web di Milandra (forsi per sbagliu) dice chì u casu di plastica ùn hà micca Ethernet. Ma avemu a basa di a specificazione è i fatti.

Un incentive impurtante per a creazione di u mo propiu pianu di sviluppu era l'uppurtunità di travaglià cù l'autobus di u sistema esternu EBC (controller di bus esterno), chì hè essenzialmente un portu parallelu. U microcontroller K1986BE1QI (aereo) permette di cunnette è travaglià cù chips di memoria esterni è dispositivi periferichi, per esempiu, ADC, FPGA, etc. E capacità di l'autobus di u sistema esternu sò abbastanza grande - pudete travaglià cù RAM statica 8-bit, 16-bit è 32-bit, ROM è NAND Flash. Per leghje / scrive dati 32-bit, u controller pò realizà automaticamente 2 operazioni currispondenti per chips 16-bit, è 8 operazioni per chips 4-bit. Ovviamente, una operazione I/O a 32 bit sarà completata più velocemente con un bus di dati a 32 bit. I disadvantages includenu a necessità di u prugramma per operare cù dati 32-bit, è u bordu duverà mette 32 piste.

Sviluppu di una scheda di debug per K1986BE1QI (aviazione)
Chips RAM statici, usati (invintate quale hè difettu)

Una soluzione equilibrata hè di utilizà chips di memoria 16-bit. Mi hè accadutu à avè chips Integrated Silicon Solutions Inc. (ISSI IS61LV25616AL, 16 x 256k, 10 ns, 3.3V). Di sicuru, a cumpagnia Milander hà u so propiu chip di memoria statica serie 1645RU, ma sò troppu caru è ùn sò micca dispunibili. Comu alternativa, ci sò pin-compatibile Samsung K6R4016V1D. Prima aghju dettu chì i microcircuiti sò stati utilizati è a copia chì aghju installatu inizialmente hà datu fallimenti è valori caòtici in a 15a linea di dati. Pigliò parechji ghjorni per truvà l'errore di hardware, è u più grande u sensu di satisfaczione quandu aghju rimpiazzatu u chip danatu cù un travagliu. Sia com'è, a rapidità di travaglià cù memoria esterna lascia assai per esse desideratu.

Bus esterno è modalità StandAloneU microcontroller K1986BE1QI (aereo) hà un modu StandAlone unicu, chì hè pensatu per l'accessu esternu direttu à i controller Ethernet è MKIO (MIL_STD_1553) via un bus esterno, cù u core in u statu di reset, i.e. micca usatu. Stu modu hè cunvenutu per i prucessori è FPGA chì ùn anu micca Ethernet è / o MKIO.
U schema di cunnessione hè u seguente:

  • bus dati MCU (D0-D15) => SRAM (I/O0-I/O15),
  • bus d'indirizzu MCU (A1-A18) => SRAM (A0-A17),
  • cuntrollu MCU (nWR,nRD,PortC2) => SRAM (WE,OE,CE),
  • SRAM (UB, LB) sò cunnessi o tirati à a terra attraversu una resistenza.

A linea CE hè cunnessa à l'alimentazione per mezu di una resistenza; i pin per campionà u byte MCU (BE0-BE3) ùn sò micca usati. Sottu u spoiler, aghju furnitu u codice per l'inizializazione di i porti è u cuntrollu di l'autobus esternu.

Initializing ports and EBC controller (controller bus esterno)

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

U microcontroller in u pacchettu LQFP-144 è a memoria in u pacchettu TSOP-44 anu parechji pins associati è occupanu assai spaziu nantu à u circuitu stampatu. Avè l'experientia di risolve i prublemi di ottimisazione in u campu di l'ecunumia, era ovviamente per mè chì era necessariu di mette sti microcircuiti nantu à u bordu prima. In diverse fonti aghju scontru recensioni laudatory circa CAD TopoR (Router topologicu). Aghju scaricatu a versione di prova è hà sappiutu esporà u mo prughjettu da Eagle CAD solu dopu avè eliminatu quasi tutti i cumpunenti. Sfurtunatamente, u prugramma TopoR ùn m'hà micca aiutatu à pusà ancu 10 elementi nantu à u bordu. Prima, tutti i cumpunenti sò stati posti in un angulu, è dopu disposti longu u bordu. Ùn era micca cuntentu di sta opzione, è per un bellu pezzu aghju tracciatu u tavulinu manualmente in l'ambiente familiar Eagle CAD.

Un elementu impurtante di un circuitu stampatu hè a stampa di serigrafia. U pianu di sviluppu ùn deve micca solu etichette per i cumpunenti elettronichi, ma tutti i connettori anu ancu esse etichettati. In u spinu di u tavulinu aghju postu tavule cù e funzioni di i porti di cuntrollu (principale, alternativu, annullatu, attuale). Aghju urdinatu a produzzione di circuiti stampati in Cina da u famosu uffiziu PCBWay. Ùn aghju micca elogiatu perchè a qualità hè bona. Puderanu megliu, cù tolleranze più strette, ma per una tarifa.

Sviluppu di una scheda di debug per K1986BE1QI (aviazione)
Circuiti stampati MDB1986 fabbricati, (c) Foto di l'autore

Aviu avutu a saldatura di i cumpunenti "in i ghjinochje" cù un ferru di saldatura 40-watt è POS-61 solder, perchè raramente solder, 1-2 volte à l'annu, è a pasta di saldatura s'era secca. Aviu avutu ancu cambià u controller Chinese CS32F103 à u STM32F103 originale, è poi rimpiazzà ancu a memoria. In generale, avà sò cumplettamente cuntentu di u risultatu, ancu s'ellu ùn aghju micca verificatu l'operazione di RS-232 è CAN.

Sviluppu di una scheda di debug per K1986BE1QI (aviazione)
Tavola di debug MDB1986 in operazione - brilla è riscalda, (c) Foto di l'autore

Nantu à u situ Milandra pudete truvà abbastanza materiali educativi per i cuntrolli d'aprenu serie 1986BE9 (core Cortex-M3), ma per u microcontroller K1986BE1QI (aviazione) ùn aghju micca vistu nunda. Dopu avè vistu i materiali, i manuali è u travagliu di laboratoriu per l'università publicati quì, sò cuntentu chì u persunale hè furmatu in tuttu u paese per travaglià cù i cuntrolli russi. A maiò parte di i materiali di furmazione preparanu per travaglià cù porti I / O, timers, ADC, DAC, SPI, UART. Diversi ambienti di sviluppu IDE sò usati (Keil, IAR, CodeMaster). In qualchì locu programanu cù i registri CMSIS, è in qualchì locu usanu a Biblioteca MDR. A risorsa deve esse menzionata Cumincià Milanr, chì cuntene assai articuli da i programatori praticanti. È, sicuru, ùn devemu micca scurdatu Forum di Milandra.

Pensu à MilandraA microelettronica si sviluppa in Russia, è a cumpagnia Milander hè un rolu impurtante in stu prucessu. Novi microcontrollers interessanti sò apparsu, per esempiu, 1986BE81T è Elektrosila cù interfacce SpaceWire è MKIO (u stessu cum'è in 1986BE1 è, possibbilmente, cù i stessi prublemi), etc. Ma i studienti ordinari, i prufessori è l'ingegneri civili ùn ponu micca cumprà tali microcircuiti. Questu significa chì a cumunità di l'ingegneria ùn serà micca capaci di identificà rapidamente errori è prublemi cù stu chip. Mi pare chì prima hè necessariu di pruduce microcircuits in un casu di plastica, i distribuisce à tutti i partiti interessati, è dopu l'appruvazioni (appruvazioni latinu - appruvazioni, ricunniscenza) da specialisti, ponu preparà una rivisione in un casu di metallo-ceramica cù prutezzione di tutti i fattori terribili. Spergu chì in un futuru vicinu seremu TUTTI cuntentu di i novi prughjetti annunziati à l'esibizioni.
U bordu di debug chì aghju sviluppatu pò esse ripetutu, mudificatu è utilizatu da qualcunu in u prucessu educativu. Prima di tuttu, aghju fattu u bordu per mè stessu, ma hè stata cusì bè chì Aghju decisu di sparte cù tutti.

K1986BE1QI (aria) hè un controller assai interessante cù interfacce uniche chì ponu esse usate in università per insignà i studienti. Pensu chì dopu avè correttu l'errori identificati in u controller è passanu i testi di certificazione, u controller volarà in u veru sensu di a parolla!

Source: www.habr.com

Add a comment