Sviluppo di una scheda di debug per K1986BE1QI (aviazione)

Sviluppo di una scheda di debug per K1986BE1QI (aviazione)

Alcuni anni fa ho conosciuto i microcontrollori russi di Milandr. Era il 2013, quando gli ingegneri hanno discusso vigorosamente i primi risultati del Federal Target Program "Sviluppo della base di componenti elettronici e dell'elettronica radio" per il periodo 2008-2015. A quel tempo, il controller K1986BE9x (core Cortex-M3) era già stato rilasciato e il controller 1986BE1T (core Cortex-M1) era appena apparso. Lui, nella custodia in plastica LQFP-144, aveva la designazione K1986BE1QI (aviazione) nella documentazione e la designazione MDR32F1QI sul chip stesso. Sul sito Web del produttore ha il suffisso "air", poiché dispone di interfacce specifiche per l'industria aeronautica (ARINC 429, MIL_STD_1553).

Sorprendentemente, al momento della distribuzione di questi controller, la società Milander ha preparato kit di debug e una libreria di subroutine per lavorare con le periferiche, "ma senza ulteriori garanzie e obblighi in merito alla correttezza della libreria". La libreria è simile alla libreria di periferiche standard di STMicroelectronics. In generale, tutti i controller ARM basati sul core Cortex-M hanno molto in comune. Per questo motivo, la conoscenza dei nuovi controllori russi è avvenuta rapidamente. E per coloro che hanno acquistato kit di debug proprietari, è stato fornito supporto tecnico durante l'uso.

Sviluppo di una scheda di debug per K1986BE1QI (aviazione)
Kit di debug per microcontrollore 1986BE1T, © Milandr

Tuttavia, nel tempo, iniziarono a comparire "malattie infantili" di nuovi chip e librerie. Gli esempi di test del firmware hanno funzionato senza problemi visibili, ma con modifiche significative si sono verificati arresti anomali ed errori. La prima "rondine" nella mia pratica sono stati guasti inspiegabili nel controller CAN. Un anno dopo, è stato scoperto un problema con il modulo sul controller 1986BE1T (aria) di una prima revisione MCIO (canale di scambio di informazioni multiplex). In generale, tutte le revisioni di questi microcontrollori fino al 2016 sono state di utilità limitata. Ci sono voluti molto tempo e nervosismo per identificare questi problemi, la cui conferma ora può essere trovata in elenchi di errori (Errata).

Una caratteristica spiacevole era che era necessario lavorare e gestire gli errori non su schede di debug, ma su schede di dispositivi prototipo progettati per la produzione in fabbrica in serie. Oltre al connettore JTAG, di solito non c'era niente lì. Era difficile e scomodo connettersi con un analizzatore logico e di solito non c'erano LED e schermi. Per questo motivo mi è venuta in mente l'idea di creare una mia scheda di debug.

Da un lato, sul mercato c'erano kit di debug di marca, oltre a meravigliose schede di LDM-Systems di Zelenograd. D'altra parte, i prezzi di questi prodotti portano allo stupore e la funzionalità di base senza schede di espansione non soddisfa le aspettative. Una scheda con un controller saldato e un'intestazione pin non mi interessa. E le schede più interessanti sono costose.

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

La società "Milandr" ha una politica dei prezzi e un marketing unici. Quindi, è possibile ottenere gratuitamente campioni di alcuni microcircuiti, ma questo è disponibile solo per le persone giuridiche ed è associato a una ricerca burocratica. In generale, i microcircuiti in un pacchetto di metallo-ceramica sono dorati in senso letterale e figurato. Ad esempio, il controller 1986BE1T costa a Mosca da 14 a 24 mila rubli. Il chip di memoria statica 1645RU6U costa da 15000 rubli. E questo è l'ordine dei prezzi per tutti i prodotti. Di conseguenza, anche gli istituti di ricerca specializzati con ordini statali risparmiano denaro e rifuggono da tali prezzi. I chip in una custodia di plastica per uso civile sono notevolmente più economici, ma non sono disponibili presso i fornitori più diffusi. Inoltre, la qualità dei chip in una custodia di plastica, mi sembra, è peggiore dell '"oro". Ad esempio, non sono stato in grado di eseguire il controller K1986BE1QI a 128 MHz senza aumentare l'impostazione della latenza flash. Allo stesso tempo, la temperatura di questo controller è salita a 40-50°C. Ma il controller 1986BE1T ("oro") si è avviato a 128 MHz senza impostazioni aggiuntive ed è rimasto freddo. È davvero bravo.

Sviluppo di una scheda di debug per K1986BE1QI (aviazione)
Microcontrollore "Gold" 1986BE1T, (c) Milandr

Sono stato fortunato che il microcontrollore in una custodia di plastica possa ancora essere acquistato al dettaglio da LDM Systems e tutti i circuiti stampati sono disponibili gratuitamente. La cosa brutta è che sul sito sulla foto del controller è visibile una marcatura che dice che questa è la 4a revisione del 2014, ad es. con difetti. Ho pensato a lungo: comprare o non comprare. Così sono passati alcuni anni...

L'idea di creare una scheda di debug non è scomparsa da nessuna parte. A poco a poco, ho formato tutti i requisiti e ho pensato a come posizionare tutto questo su una scheda, in modo che fosse compatto e non costoso. Parallelamente, ho ordinato ai cinesi i componenti mancanti. Non avevo fretta: ho fatto tutto da solo. I fornitori cinesi sono noti per la trascuratezza: ho dovuto ordinare la stessa cosa in posti diversi per ottenere tutto ciò di cui avevo bisogno. Inoltre, alcuni dei chip di memoria si sono rivelati di seconda mano, ovviamente saldati da dispositivi rotti. Questo mi ha colpito più tardi.

L'acquisto di un microcontrollore Milandr K1986BE1QI (aviazione) non è un compito facile. Nello stesso negozio Chip and Dip, nella sezione "Posizioni da ordinare", ho trovato solo K1986BE92QI per 740 rubli, ma non mi andava bene. L'unica opzione è acquistare una revisione non fresca da LDM-Systems per 2000 rubli. Dal momento che non sono riuscito a trovare un sostituto da nessun'altra parte, ho deciso di acquistare quello che era. Con mia piacevole sorpresa, mi hanno venduto un nuovissimo controller di rilascio di dicembre 2018, revisione 6+ (1820). E il sito ha ancora una vecchia foto, e al momento in cui scrivo il controller non è disponibile...

Sviluppo di una scheda di debug per K1986BE1QI (aviazione)
Microcontrollore K1986BE1QI (aviazione) in confezione tecnologica, (c) Foto dell'autore

Principali specifiche tecniche della mia scheda di sviluppo MDB1986 a seguito di:

  • programmatore debugger integrato compatibile con J-Link e CMSIS-DAP;
  • Memoria statica da 4Mbit (256k x 16, 10 ns);
  • chip di memoria flash 64 Mbit, Winbond 25Q64FVSIG;
  • Ricetrasmettitore interfaccia RS-232 con linee RTS e CTS;
  • interfacce e connettori per Ethernet, USB, CAN;
  • controller display a 7 segmenti MAX7221;
  • connettore pin per lavorare con MCIO (MIL_STD_1553) e ARINC429;
  • fototransistor Everlight PT17-21C;
  • cinque LED colorati, un pulsante di reset e due pulsanti utente;
  • è alimentato da una porta USB di 5 volt;
  • circuito stampato dimensioni 100 x 80, mm

Mi sono piaciute le schede della serie STM-Discovery perché hanno un programmatore-debugger integrato: ST-Link. Il marchio ST-Link funziona solo con i controller STMicroelectronics, ma un paio di anni fa è diventato possibile aggiornare il firmware in ST-Link e ottenere il debugger OB (on-board) SEGGER J-Link. Legalmente esiste una restrizione all'uso di tale debugger solo con le schede STMicroelectronics, ma in realtà il potenziale non è limitato. Pertanto, avendo J-Link OB, puoi avere un programmatore-debugger integrato sulla scheda di debug. Noto che i prodotti LDM-Systems utilizzano il convertitore CP2102 (Usb2Uart), che può solo lampeggiare.

Sviluppo di una scheda di debug per K1986BE1QI (aviazione)
Microcontrollori STM32F103C8T6, veri e non, (c) Foto dell'autore

Quindi, è stato necessario acquistare l'originale STM32F103C8T6, poiché il firmware di marca non funzionerà correttamente con il clone. Ho dubitato di questa tesi e ho deciso di provare il controller CS32F103C8T6 dell'azienda cinese CKS. Non ho lamentele sul controller stesso, ma il firmware proprietario ST-Link non ha funzionato. J-Link ha funzionato parzialmente: il dispositivo USB è stato rilevato, ma il programmatore non ha svolto le sue funzioni e ha costantemente ricordato che era "difettoso".

Sviluppo di una scheda di debug per K1986BE1QI (aviazione)
Errore durante l'esecuzione del debugger su un controller non originale

Non mi sono calmato su questo e prima ho scritto il firmware per far lampeggiare il LED, quindi ho implementato la richiesta IDCODE utilizzando il protocollo JTAG. Il programmatore ST-Link che avevo sulla scheda Discovery e il programma ST-Link Utility hanno eseguito il flash CS32F103C8T6 senza problemi, quindi mi sono assicurato che la mia scheda funzionasse. Con mia grande gioia, il controller di destinazione K1986BE1QI (aviazione) ha emesso allegramente il suo IDCODE sulla linea TDO.

Sviluppo di una scheda di debug per K1986BE1QI (aviazione)
Oscillogramma della linea di segnale TDO con risposta codificata IDCODE, (c) Foto dell'autore

Sviluppo di una scheda di debug per K1986BE1QI (aviazione)
Quindi la porta SWD è tornata utile per eseguire il debug del debugger stesso e controllare IDCODE

C'era un'opzione con un debugger CMSIS-DAP (porta di accesso al debug). Costruire un progetto da fonti ARM non è un compito facile, ho preso il progetto da X893, e poi ho provato anche DAP42. Sfortunatamente, Keil uVision si è bloccato e non ha voluto lavorare con loro. Di conseguenza, ho sostituito il chip del debugger con un STM32F103C8T6 proprietario e non sono più tornato su questo problema.

Sviluppo di una scheda di debug per K1986BE1QI (aviazione)
Operazione riuscita del debugger integrato J-Link STLink V2

Quando tutti i componenti chiave della futura scheda di debug erano disponibili, sono entrato in Eagle CAD e ho scoperto che non erano nella libreria degli elementi. Non c'è nessun posto dove andare: ho dovuto disegnarli da solo. Allo stesso tempo, ho creato i posti per la memoria, il connettore HanRun per Ethernet e ho aggiunto i telai per i resistori e i condensatori. È possibile trovare il file di progetto e la libreria dei componenti Ce l'ho su GitHub.

Diagramma schematico della scheda di debug MDB1986Sviluppo di una scheda di debug per K1986BE1QI (aviazione)

La scheda è alimentata da una sorgente a 5 volt CC dalla porta USB. Sulla scheda sono presenti due porte USB di tipo B. Uno è per il programmatore, il secondo è per il controller K1986BE1QI. La scheda può funzionare da una qualsiasi di queste fonti o da entrambe contemporaneamente. La regolazione del carico e la protezione delle linee elettriche più semplici sono implementate sui diodi Schottky, nei circuiti D2 e ​​D3 (SS24). Sempre sullo schema sono visibili i fusibili autoripristinanti F1 e F2 a 500mA. Le linee di segnale della porta USB sono protette dal gruppo diodi USBLC6-2SC6.

Il circuito programmatore debugger ST-Link è noto a molti, può essere trovato nella documentazione per le schede STM32-Discovery e in altre fonti. Per il firmware principale del clone ST-Link / J-Link-OB / DAP (opzionale), ho messo in evidenza le linee SWDIO (PA13), SWCLK (PA14), GND. Molti usano UART per il firmware e sono costretti a tirare i jumper BOOT. Ma SWD è più conveniente per me, inoltre questo protocollo consente il debug.

Quasi tutti i componenti della scheda sono alimentati da 3.3 volt, che provengono dal regolatore di tensione AMS1117-3.3. Per sopprimere le interferenze elettromagnetiche e i picchi di corrente, vengono utilizzati filtri LC da condensatori e induttanze della serie BLM31PG.

Separatamente, vale la pena menzionare il driver del display a 7 segmenti MAX7221. Secondo le specifiche, l'alimentazione consigliata è compresa tra 4 e 5.5 volt e il livello del segnale alto (uno logico) è di almeno 3.5 V (0.7 x VCC), se alimentato a 5 V. Per il controller K1986BE1QI (aviazione), l'uscita di un'unità logica corrisponde a una tensione da 2.8 a 3.3 V. Ovviamente, c'è una discrepanza nei livelli di segnale che può interrompere il normale funzionamento. Ho deciso di alimentare il MAX7221 da 4 V e abbassare i livelli del segnale a 2.8 V (0.7 x 4 = 2.8). Per fare ciò, un diodo D4 (RS1A o FR103) è installato in serie nel circuito di alimentazione del driver. La caduta di tensione totale è di 0.9 V (diodo Schottky da 0.3 V e diodo da 0.6 V) e tutto funziona.

La maggior parte delle porte del microcontrollore K1986BE1QI (aviazione) è compatibile con segnali fino a 5 V. Pertanto, l'uso del ricetrasmettitore CAN MCP2551, che funziona anche da 5V, non crea problemi. Il diagramma mostra il chip MAX232 come ricetrasmettitore RS-3232, ma in realtà ho usato SN65C3232D di Texas Instruments, perché funziona da 3.3 V e fornisce velocità fino a 1 Mbit/s.

Sulla scheda sono presenti 4 risonatori al quarzo: uno per il debugger (8 MHz) e tre per il microcontrollore target K1986BE1QI (aviazione) con valori nominali di 32.768 kHz, 16 MHz, 25 MHz. Questi sono componenti necessari, perché. i parametri del generatore RC integrato sono in un'ampia gamma da 6 a 10 MHz. La frequenza di 25 MHz è necessaria per il funzionamento del controller Ethernet integrato. Per qualche ragione, il sito Web di Milandra (forse per errore) afferma che non c'è Ethernet nella custodia di plastica. Ma faremo affidamento sulle specifiche e sui fatti.

Un importante incentivo per creare la propria scheda di debug è stata l'opportunità di lavorare con un bus di sistema EBC (external bus controller) esterno, che è essenzialmente una porta parallela. Il microcontrollore K1986BE1QI (aviazione) consente di connettersi e lavorare con chip di memoria esterni e dispositivi periferici, come ADC, FPGA, ecc. Le possibilità del bus di sistema esterno sono piuttosto ampie: puoi lavorare con RAM statica, ROM e NAND Flash a 8 bit, 16 bit e 32 bit. Per leggere / scrivere dati a 32 bit, il controller può eseguire automaticamente 2 operazioni corrispondenti per microcircuiti a 16 bit e 8 operazioni per quelli a 4 bit. Ovviamente, un'operazione di I/O a 32 bit sarà la più veloce con un bus dati a 32 bit. Gli svantaggi includono la necessità che il programma funzioni con dati a 32 bit e la scheda dovrà posare 32 tracce.

Sviluppo di una scheda di debug per K1986BE1QI (aviazione)
Chip SRAM, usati (indovina quale è difettoso)

Una soluzione bilanciata consiste nell'utilizzare chip di memoria a 16 bit. Sono finito con i chip Integrated Silicon Solutions Inc.. (ISSI IS61LV25616AL, 16x256k, 10ns, 3.3V). Naturalmente, la società "Milandr" ha i propri chip di memoria statica serie 1645RUma sono troppo costosi e non disponibili. In alternativa, ci sono Samsung K6R4016V1D compatibili con i pin. Ho accennato in precedenza che i circuiti integrati erano di seconda mano e la copia che ho installato era inizialmente vacillante e irregolare sulla quindicesima linea dati. Ci sono voluti diversi giorni per trovare errori hardware, e maggiore è stata la sensazione di soddisfazione quando ho sostituito il chip danneggiato con uno funzionante. Comunque sia, la velocità di lavorare con la memoria esterna lascia molto a desiderare.

Bus esterno e modalità autonomaIl microcontrollore K1986BE1QI (aviazione) dispone di un'esclusiva modalità StandAlone, progettata per l'accesso esterno diretto ai controller Ethernet e MCIO (MIL_STD_1553) tramite un bus esterno, mentre il core si trova in uno stato di ripristino, ad es. non usato. Questa modalità è utile per processori e FPGA che non dispongono di Ethernet e/o MCIO.
Lo schema di collegamento è il seguente:

  • bus dati MCU(D0-D15) => SRAM(I/O0-I/O15),
  • bus indirizzi MCU(A1-A18) => SRAM(A0-A17),
  • Controllo MCU(nWR,nRD,PortC2) => SRAM (WE,OE,CE),
  • SRAM (UB, LB) sono collegati o tirati a terra tramite un resistore.

La linea CE viene alimentata tramite un resistore, i pin di recupero byte MCU (BE0-BE3) non vengono utilizzati. Sotto lo spoiler fornisco il codice per l'inizializzazione delle porte e del controller del bus esterno.

Inizializzazione delle porte e del controller EBC (controller del 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);
}

Il microcontrollore nel pacchetto LQFP-144 e la memoria nel pacchetto TSOP-44 hanno molti pin collegati e occupano molto spazio su PCB. Avendo esperienza nella risoluzione di problemi di ottimizzazione nel campo dell'economia, per me era ovvio che questi microcircuiti dovessero essere collocati in primo luogo sulla scheda. In varie fonti, mi sono imbattuto in recensioni elogiative su CAD TopoR (router topologico). Ho scaricato la versione di prova e sono stato in grado di esportare lì il mio progetto da Eagle CAD solo dopo aver rimosso quasi tutti i componenti. Sfortunatamente, il programma TopoR non mi ha aiutato a posizionare nemmeno 10 elementi sulla lavagna. Prima tutti i componenti sono stati posizionati in un angolo e poi disposti lungo il bordo. Questa opzione non mi ha soddisfatto e ho passato molto tempo a tracciare manualmente la scheda nel familiare ambiente Eagle CAD.

La serigrafia è un elemento importante del circuito stampato. Sulla scheda di debug, non solo devono essere presenti firme per i componenti elettronici, ma devono essere firmati anche tutti i connettori. Sul retro della scheda ho posizionato le tabelle-promemoria con le funzioni delle porte del controller (principale, alternativa, sovrascritta, attuale). Ho ordinato la produzione di circuiti stampati in Cina nel noto ufficio PCBWay. Non loderò, perché la qualità è buona. Possono fare di meglio con tolleranze più piccole, ma a pagamento.

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

Ho dovuto dissaldare i componenti "sul ginocchio" con un saldatore da 40 watt e una saldatura POS-61, perché saldo raramente, 1-2 volte l'anno, e la pasta saldante si è seccata. Ho anche dovuto sostituire il controller cinese CS32F103 con l'originale STM32F103, quindi sostituire anche la memoria. In generale, ora sono completamente soddisfatto del risultato, anche se non ho ancora verificato il funzionamento di RS-232 e CAN.

Sviluppo di una scheda di debug per K1986BE1QI (aviazione)
Scheda di debug MDB1986 in funzione — brilla e si riscalda, (с) Foto dell'autore

Sul sito "Milandra" puoi trovare abbastanza materiali didattici per controllori dell'apprendimento 1986BE9 (core Cortex-M3), ma per il microcontrollore K1986BE1QI (aviazione), non vedo nulla lì. Dopo aver esaminato i materiali pubblicati lì, i manuali e il lavoro di laboratorio per le università, sono lieto che il personale venga addestrato in tutto il paese per lavorare con i controllori russi. La maggior parte dei materiali didattici è predisposta per funzionare con porte I/O, timer, ADC, DAC, SPI, UART. Vengono utilizzati diversi IDE (Keil, IAR, CodeMaster). Da qualche parte programmano usando i registri CMSIS e da qualche parte usano la libreria MDR. La risorsa deve essere menzionata Inizia Milandr, che contiene molti articoli di programmatori praticanti. E, naturalmente, non dovremmo dimenticarcene Foro Milandra.

Pensando a MilandraLa microelettronica in Russia si sta sviluppando e la società "Milandr" svolge un ruolo significativo in questo processo. Appaiono nuovi microcontrollori interessanti, ad esempio 1986BE81T ed Elektrosila con interfacce SpaceWire e MKIO (gli stessi di 1986BE1 e, possibilmente, con gli stessi problemi), ecc. Ma per studenti ordinari, insegnanti e ingegneri civili, non è realistico acquistare tali microcircuiti. Ciò significa che la comunità ingegneristica non sarà in grado di identificare rapidamente gli errori e i problemi di questo chip. Mi sembra che prima sia necessario produrre microcircuiti in una custodia di plastica, distribuirli tra tutte le parti interessate e solo dopo l'approvazione (latino approbatio - approvazione, riconoscimento) gli specialisti possono preparare una revisione in una custodia in ceramica-metallo con protezione da tutti fattori terribili. Spero che nel prossimo futuro saremo TUTTI contenti dei nuovi progetti annunciati alle fiere.
Chiunque può ripetere, modificare e utilizzare la scheda di debug che ho sviluppato nel processo educativo. Prima di tutto, ho realizzato una tavola per me stesso, ma è andata così bene che Ho deciso di condividere con tutti.

K1986BE1QI (air) è un controller molto interessante con interfacce uniche che possono essere utilizzate nelle università per insegnare agli studenti. Penso che dopo aver corretto gli errori identificati nel controller e superato i test di certificazione, il controller volerà nel vero senso della parola!

Fonte: habr.com

Aggiungi un commento