{"id":54744,"date":"2020-01-03T00:00:00","date_gmt":"2020-01-02T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/razrabotka-otladochnoj-platy-dlya-k1986ve1qi-avia"},"modified":"2020-02-18T14:02:47","modified_gmt":"2020-02-18T11:02:47","slug":"razrabotka-otladochnoj-platy-dlya-k1986ve1qi-avia","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/news\/razrabotka-otladochnoj-platy-dlya-k1986ve1qi-avia","title":{"rendered":"Sviluppo di una scheda di debug per K1986\u0412\u04151QI (avionica)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Sviluppo di una scheda di debug per K1986\u0412\u04151QI (avionica)\" src=\"\/wp-content\/uploads\/2020\/01\/6bce6c863938180b4011cda910e962f4.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nQualche anno fa, ho conosciuto i microcontrollori russi dell'azienda Milandr. Era il 2013, quando gli ingegneri discutevano animatamente i primi risultati del programma di sviluppo \"Sviluppo della base dei componenti elettronici e della radioelettronica\" per il periodo 2008-2015. In quel momento era gi\u00e0 stato rilasciato il controllore K1986\u0412\u04159x (nucleo Cortex-M3) e stava appena emergendo il controllore 1986\u0412\u04151\u0422 (nucleo Cortex-M1). La versione in involucro plastico LQFP-144 era documentata come K1986\u0412\u04151QI (avionico) e sulla microchip era indicata come MDR32F1QI. Sul sito del produttore porta il suffisso \"avionico\", poich\u00e9 presenta interfacce specifiche per l'industria aeronautica (ARINC 429, MIL_STD_1553).<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>\u00c8 sorprendente, ma al momento della diffusione di questi controllori, l'azienda Milandr aveva gi\u00e0 preparato set di sviluppo e una libreria di funzioni per lavorare con le periferiche, \"ma senza alcuna garanzia e obbligo riguardo alla correttezza della libreria\". La libreria somiglia alla Standard Peripheral Library della STMicroelectronics. In generale, tutti i microcontrollori ARM basati sul nucleo Cortex-M hanno molte caratteristiche in comune. Per questo motivo, l'introduzione ai nuovi microcontrollori russi \u00e8 avvenuta rapidamente. E per coloro che acquistavano i set di sviluppo ufficiali, era fornito supporto tecnico durante l'uso.<\/p>\n<p><img decoding=\"async\" alt=\"Sviluppo di una scheda di debug per K1986\u0412\u04151QI (avionica)\" src=\"\/wp-content\/uploads\/2020\/01\/c3861067bec2719a48bb520fb57890f2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Kit di debugging per microcontrollore 1986\u0412\u04151\u0422, &copy; Milandr<\/i><\/p>\n<p>Tuttavia, nel tempo hanno cominciato a emergere le \"malattie infantili\" dei nuovi chip e delle librerie. Gli esempi di test delle versioni firmware funzionavano senza problemi evidenti, ma modifiche significative portavano a malfunzionamenti e errori. Il primo \"segnale\" nella mia esperienza furono i malfunzionamenti inspiegabili nel funzionamento del controllore CAN. Dopo un anno, nel controllore 1986\u0412\u04151\u0422 (avionico) di prima revisione \u00e8 stata scoperta una problematica con il modulo <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/MIL-STD-1553\">\u041c\u041a\u0418\u041e (canale multiplo di scambio informazioni)<\/a><\/noindex>. In generale, tutte le revisioni di questi microcontrollori fino al 2016 erano limitatamente utilizzabili. Molto tempo e nervi sono stati spesi per identificare questi problemi, la cui conferma pu\u00f2 essere trovata ora nei <noindex><a rel=\"nofollow\" href=\"https:\/\/ic.milandr.ru\/upload\/iblock\/352\/352a1573c08c406a94b976ed95fe4506.pdf\">elenco degli errori (Errata)<\/a><\/noindex>.<\/p>\n<p>Un aspetto sgradevole \u00e8 stato che lavorare e risolvere i problemi non avveniva su schede di debug, ma su schede prototipo di dispositivi che erano previsti per la produzione industriale. Di solito c'era solo il connettore JTAG. Era difficile e scomodo collegarsi con un analizzatore logico, e solitamente non c'erano n\u00e9 LED n\u00e9 schermi. Per questo motivo, mi \u00e8 venuta in mente l'idea di creare la mia scheda di debug.<\/p>\n<p>Da un lato, sul mercato c'erano set di debug brandizzati, oltre a ottime schede dell'azienda LDM-Systems di Zelenograd. Dall'altro lato, i prezzi di questi prodotti lasciano sbalorditi, e la funzionalit\u00e0 di base senza schede di espansione non corrisponde alle aspettative. Una scheda con un controllore saldato e un connettore a pin non mi interessa. Schede pi\u00f9 interessanti hanno un costo elevato.<\/p>\n<p><img decoding=\"async\" alt=\"Sviluppo di una scheda di debug per K1986\u0412\u04151QI (avionica)\" src=\"\/wp-content\/uploads\/2020\/01\/2d9bbe972bf897ad96168533155ace8a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Scheda di sviluppo MILANDR LDM-HELPER-K1986BE1QI-FULL, &copy; LDM Systems <\/i><\/p>\n<p>L'azienda \u00abMilandr\u00bb ha una politica dei prezzi e un marketing peculiari. \u00c8 possibile ricevere gratuitamente campioni di alcuni chip, ma questo \u00e8 accessibile solo a persone giuridiche ed \u00e8 legato a un quest burocratico. Nel complesso, i chip in corpi metalceramici sono considerati 'oro' in senso letterale e figurato. Ad esempio, il controllore 1986\u0412\u04151\u0422 costa a Mosca da 14 a 24 mila rubli. Il chip di memoria statica 1645\u0420\u04236\u0423 costa da 15 mila rubli. E questo \u00e8 l'andamento dei prezzi per tutti i prodotti. Di conseguenza, anche gli istituti di ricerca specializzati che ricevono ordini statali risparmiano e si spaventano di fronte a tali prezzi. I chip in corpi plastici per applicazioni civili sono significativamente pi\u00f9 economici, ma non sono disponibili presso i fornitori popolari. Inoltre, la qualit\u00e0 dei chip in corpi plastici, a mio avviso, \u00e8 inferiore a quella degli 'ori'. Ad esempio, non sono riuscito a far partire il controllore K1986BE1QI a una frequenza di 128 MHz senza aumentare il parametro della latenza flash. Nel contempo, la temperatura di questo controllore \u00e8 salita a 40-50\u00b0C. Al contrario, il controllore 1986BE1T ('d'oro') \u00e8 partito a 128 MHz senza ulteriori impostazioni e rimaneva freddo. \u00c8 davvero buono.<\/p>\n<p><img decoding=\"async\" alt=\"Sviluppo di una scheda di debug per K1986\u0412\u04151QI (avionica)\" src=\"\/wp-content\/uploads\/2020\/01\/6e1cc067feffd0f7d14f234928c6872a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Microcontrollore 'd'oro' 1986BE1T, (c) Milandr<\/i><\/p>\n<p>Sono stato fortunato a trovare il microcontrollore in una custodia di plastica che pu\u00f2 essere acquistato al dettaglio presso LDM Systems, mentre tutti i circuiti stampati sono disponibili online. \u00c8 un peccato che sul sito la foto del controllore mostri una marcatura che indica che si tratta della revisione 4 del 2014, quindi con difetti. Ho pensato a lungo se acquistarlo o meno. Nel frattempo, sono passati diversi anni... <\/p>\n<p>L'idea di creare una scheda di sviluppo non \u00e8 mai svanita. Gradualmente ho definito tutti i requisiti e ho pensato a come disporli su un'unica scheda, affinch\u00e9 risultasse compatto e a costo contenuto. Contemporaneamente ho ordinato dai cinesi i componenti mancanti. Non avevo fretta: stavo facendo tutto per me. I fornitori cinesi sono noti per la loro disorganizzazione: ho dovuto ordinare le stesse cose in posti diversi per ottenere tutto ci\u00f2 di cui avevo bisogno. Inoltre, parte dei chip di memoria si sono rivelati usati, evidentemente estratti da dispositivi rotti. Questo \u00e8 stato un problema per me pi\u00f9 tardi.<\/p>\n<p>Acquistare il microcontrollore Milandr K1986\u0412\u04151QI (aeronautico) non \u00e8 un compito semplice. Nello stesso negozio \"Chip e Dip\", nella sezione \"Articoli su ordinazione\", ho trovato solo K1986BE92QI a 740 rubli, ma non andava bene per me. L'unica alternativa era acquistare da LDM-Systems una revisione non recente a 2000 rubli. Poich\u00e9 non sono riuscito a trovare un'alternativa, ho deciso di prendere quello che c'era. Con mia piacevole sorpresa, mi hanno venduto un controllore nuovo di zecca, produzione dicembre 2018, revisione 6+ (1820). E sul sito c'\u00e8 ancora una vecchia foto, e al momento della scrittura dell'articolo, il controllore non \u00e8 in stock...<\/p>\n<p><img decoding=\"async\" alt=\"Sviluppo di una scheda di debug per K1986\u0412\u04151QI (avionica)\" src=\"\/wp-content\/uploads\/2020\/01\/f905fb0a07862f6a6c0c1f27c340c5a2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Microcontrollore K1986\u0412\u04151QI (aeronautico) in confezione tecnologica, (c) Foto dell'autore<\/i><\/p>\n<p>Caratteristiche tecniche principali della mia scheda di sviluppo <b>MDB1986<\/b> seguenti:<\/p>\n<ul>\n<li> debugger-programmatore integrato, compatibile con J-Link e CMSIS-DAP;<\/li>\n<li> memoria statica 4Mbit (256k x 16, 10 ns);<\/li>\n<li> chip di memoria flash 64Mbit, Winbond 25Q64FVSIG;<\/li>\n<li> ricevitore-trasmettitore per interfaccia RS-232 con linee RTS e CTS;<\/li>\n<li> interfacce e connettori per Ethernet, USB, CAN;<\/li>\n<li> controllore per display a 7 segmenti MAX7221;<\/li>\n<li> connettore a pin per lavorare con MKIO (MIL_STD_1553) e ARINC429;<\/li>\n<li> fototransistor Everlight PT17-21C;<\/li>\n<li> cinque LED colorati, pulsante di reset e due pulsanti personalizzati;<\/li>\n<li> alimentazione tramite porta USB a 5 volt;<\/li>\n<li> dimensioni della scheda stampata 100 x 80 mm<\/li>\n<\/ul>\n<p>\nMi piacevano le schede della serie STM-Discovery perch\u00e9 hanno un programmatore-debugger integrato \u2013 ST-Link. Il ST-Link originale funziona solo con i controller della STMicroelectronics, ma un paio di anni fa \u00e8 stata data la possibilit\u00e0 di aggiornare il firmware nel ST-Link e ottenere il SEGGER J-Link OB (on-board) Debugger. Legalmente, c'\u00e8 una restrizione sull'uso di questo debugger solo con le schede STMicroelectronics, ma in realt\u00e0 le possibilit\u00e0 non sono limitate. Pertanto, avendo il J-Link OB, \u00e8 possibile avere un programmatore-debugger integrato sulla scheda di debug. Vorrei sottolineare che nei prodotti<\/p>\n<p><img decoding=\"async\" alt=\"Sviluppo di una scheda di debug per K1986\u0412\u04151QI (avionica)\" src=\"\/wp-content\/uploads\/2020\/01\/69b93aeba719b818c3ae8f1fcae45ac2.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>microcontrollori STM32F103C8T6, veri e non molto (c) Foto dell'autore<\/i><\/p>\n<p>Quindi, era necessario acquistare un STM32F103C8T6 originale, poich\u00e9 i firmware originali non avrebbero funzionato correttamente con un clone. Avevo dei dubbi su questo e ho deciso di provare a lavorare con il controller CS32F103C8T6 della societ\u00e0 cinese CKS. Non ho nulla da dire sul controller stesso, ma il firmware originale ST-Link non ha funzionato. J-Link ha funzionato parzialmente: il dispositivo USB \u00e8 stato riconosciuto, ma il programmatore non ha eseguito le sue funzioni e ricordava continuamente che era \"defective\".<\/p>\n<p><img decoding=\"async\" alt=\"Sviluppo di una scheda di debug per K1986\u0412\u04151QI (avionica)\" src=\"\/wp-content\/uploads\/2020\/01\/f2b520deaf681a088b43dd62453ff99c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Errore durante il funzionamento del debugger su un controller non originale<\/i><\/p>\n<p>Non mi sono fermato l\u00ec e ho scritto prima un firmware per far lampeggiare un LED, poi ho implementato la richiesta IDCODE secondo il protocollo JTAG. Il programmatore ST-Link, che avevo sulla scheda Discovery, e il programma ST-Link Utility hanno programmato senza problemi il CS32F103C8T6. Alla fine ho potuto confermare che la mia scheda funziona. Con mia gioia, il controller target K1986BE1QI (aeronautico) ha restituito vigorosamente il suo IDCODE sulla linea TDO.<\/p>\n<p><img decoding=\"async\" alt=\"Sviluppo di una scheda di debug per K1986\u0412\u04151QI (avionica)\" src=\"\/wp-content\/uploads\/2020\/01\/73011a61aa316f779c6b9d27e13d5ea1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Oscillogramma della linea di segnale TDO con la risposta codificata dell'IDCODE, (c) Foto dell'autore<\/i><\/p>\n<p><img decoding=\"async\" alt=\"Sviluppo di una scheda di debug per K1986\u0412\u04151QI (avionica)\" src=\"\/wp-content\/uploads\/2020\/01\/1a27b40eeb768ece0303d6ae9c4c0861.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Ecco che \u00e8 stato utile il port SWD per il debug del debugger stesso e la verifica dell'IDCODE<\/i><\/p>\n<p>Rimaneva l'opzione con il debugger <noindex><a rel=\"nofollow\" href=\"https:\/\/arm-software.github.io\/CMSIS_5\/DAP\/html\/index.html\">CMSIS-DAP (Debug Access Port)<\/a><\/noindex>. Creare un progetto dalle sorgenti ARM non \u00e8 un compito semplice, ho preso un progetto da <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/users\/x893\/\" class=\"user_link\">X893<\/a><\/noindex>, e poi ho provato anche DAP42. Sfortunatamente, Keil uVision si \u00e8 bloccato e non voleva lavorare con loro. Alla fine ho sostituito il chip del debugger con l'originale STM32F103C8T6 e non sono pi\u00f9 tornato su questa questione.<\/p>\n<p><img decoding=\"async\" alt=\"Sviluppo di una scheda di debug per K1986\u0412\u04151QI (avionica)\" src=\"\/wp-content\/uploads\/2020\/01\/1663ad2e63a8841e785fd0dd473ad395.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Funzionamento riuscito del debugger integrato J-Link STLink V2<\/i><\/p>\n<p>Quando tutti i componenti chiave della futura scheda di debug erano disponibili, sono andato su Eagle CAD e ho scoperto che non erano presenti nella libreria dei componenti. Non c'era altra scelta: ho dovuto disegnarli da solo. Nel contempo, ho creato le posizioni per la memoria, il connettore HanRun per Ethernet e ho aggiunto cornici per resistori e condensatori. Il file del progetto e la libreria dei componenti possono essere trovati <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/makbit\/MDB1986\">sul mio GitHub<\/a><\/noindex>.<\/p>\n<p><b class=\"spoiler_title\">Schema elettrico della scheda di debug MDB1986<\/b><img decoding=\"async\" alt=\"Sviluppo di una scheda di debug per K1986\u0412\u04151QI (avionica)\" src=\"\/wp-content\/uploads\/2020\/01\/09a1ffed6589405f70ccc60fececbaaf.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>La scheda \u00e8 alimentata da una sorgente di corrente continua da 5 volt, ottenuta tramite una porta USB. Ci sono due porte USB Type-B sulla scheda. Una \u00e8 per il programmatori, l'altra per il controllore K1986BE1QI. La scheda pu\u00f2 lavorare con qualsiasi di queste fonti o con entrambe contemporaneamente. La regolazione della carico pi\u00f9 semplice e la protezione delle linee di alimentazione sono realizzate con diodi Schottky, come mostrato nello schema D2 e D3 (SS24). Si possono vedere anche i fusibili autoripristinanti F1 e F2 da 500mA. Le linee di segnale della porta USB sono protette da un'assemblaggio di diodi USBLC6-2SC6. <\/p>\n<p>Il schema del debugger-programmatore ST-Link \u00e8 ben noto e pu\u00f2 essere trovato nella documentazione delle schede STM32-Discovery e in altre fonti. Per il flashing iniziale del clone ST-Link\/J-Link-OB\/DAP (a scelta) ho estratto le linee SWDIO (PA13), SWCLK (PA14), GND. Molti usano la UART per il flashing e sono costretti a muovere i jumper BOOT. Ma per me \u00e8 pi\u00f9 comodo usare SWD, poich\u00e9 questo protocollo consente di fare debugging.<\/p>\n<p>Quasi tutti i componenti della scheda sono alimentati a 3.3 volt, provenienti dal regolatore di tensione AMS1117-3.3. Per ridurre le interferenze elettromagnetiche e i picchi di corrente vengono utilizzati filtri LC composti da condensatori e induttori della serie BLM31PG.<\/p>\n<p>Merita una menzione separata il driver del display a 7 segmenti MAX7221. Secondo le specifiche, l'alimentazione raccomandata \u00e8 compresa tra 4 e 5.5 volt, e il livello del segnale alto (bit logico uno) deve essere di almeno 3.5V (0.7 x VCC) a 5V. Per il controllore K1986BE1QI (aeronautico), il livello di logico uno corrisponde a tensioni tra 2.8 e 3.3V. \u00c8 evidente la non corrispondenza dei livelli dei segnali, che possono compromettere il normale funzionamento. Ho deciso di alimentare il MAX7221 con 4V e ridurre i livelli di segnale a 2.8V (0.7 x 4 = 2.8). Per questo scopo, un diodo D4 (RS1A o FR103) \u00e8 stato inserito in serie nel circuito di alimentazione del driver. In totale, la caduta di tensione \u00e8 di 0.9V (diodo Schottky 0.3V e diodo 0.6V), e funziona tutto.<\/p>\n<p>La maggior parte delle porte del microcontrollore K1986\u0412\u04151QI (avia) \u00e8 compatibile con segnali fino a 5V. Pertanto, non ci sono problemi nell'utilizzo del transceiver CAN MCP2551, che funziona anch'esso a 5V. Come ricevitore e trasmettitore RS-232, nel circuito \u00e8 indicato il chip MAX3232, ma in realt\u00e0 ho utilizzato lo SN65C3232D della Texas Instruments, poich\u00e9 funziona a 3.3V e offre una velocit\u00e0 fino a 1Mbit\/s.<\/p>\n<p>Sulla scheda sono presenti 4 oscilatori a quarzo \u2013 uno per il debugger (8MHz) e tre per il microcontrollore K1986\u0412\u04151QI (avia) con frequenze di 32.768kHz, 16MHz e 25MHz. Questi sono componenti necessari, poich\u00e9 i parametri del generatore RC integrato variano da 6 a 10 MHz. La frequenza di 25MHz \u00e8 necessaria per il funzionamento del controller Ethernet integrato. Sul sito di Milandr (forse per errore) \u00e8 indicato che nella custodia plastica non \u00e8 presente l'Ethernet. Ma ci baseremo sulla specifica e sui fatti.<\/p>\n<p>Un importante stimolo per la creazione della mia scheda di debug \u00e8 stata la possibilit\u00e0 di lavorare con il bus di sistema esterno EBC (controllore del bus esterno), che in sostanza \u00e8 una porta parallela. Il microcontrollore K1986\u0412\u04151QI (avia) consente di connettersi e lavorare con chip di memoria esterni e dispositivi periferici, come ADC, FPGA, ecc. Le capacit\u00e0 del bus di sistema esterno sono piuttosto ampie: \u00e8 possibile lavorare con RAM statiche a 8 bit, 16 bit e 32 bit, ROM e NAND Flash. Per la lettura\/scrittura di dati a 32 bit, il controller \u00e8 in grado di eseguire automaticamente 2 operazioni corrispondenti per chip a 16 bit, e 4 operazioni per quelli a 8 bit. \u00c8 evidente che l'operazione di input\/output a 32 bit sar\u00e0 eseguita pi\u00f9 velocemente con un bus dati a 32 bit. Tra gli svantaggi si pu\u00f2 menzionare la necessit\u00e0 di gestire dati a 32 bit nel programma, mentre sulla scheda sar\u00e0 necessario stendere 32 piste.<\/p>\n<p><img decoding=\"async\" alt=\"Sviluppo di una scheda di debug per K1986\u0412\u04151QI (avionica)\" src=\"\/wp-content\/uploads\/2020\/01\/121a0a0d85a861a9c1ad02048de7d941.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Chip di RAM statica, usati (indovina quale ha un difetto)<\/i><\/p>\n<p>Una soluzione equilibrata \u00e8 l'uso di chip di memoria a 16 bit. Ho a disposizione chip della Integrated Silicon Solutions Inc. (ISSI IS61LV25616AL, 16 x 256k, 10 ns, 3.3V). Certamente, la \"Milandr\" ha i suoi chip di memoria statica <noindex><a rel=\"nofollow\" href=\"https:\/\/ic.milandr.ru\/products\/mikroskhemy_pamyati\/\">serie 1645\u0420\u0423<\/a><\/noindex>, ma sono troppo costosi e non disponibili. Come alternativa ci sono i Samsung K6R4016V1D compatibili. Ho gi\u00e0 accennato al fatto che i chip erano usati e l'unit\u00e0 che ho installato inizialmente ha dato problemi e valori caotici sulla quindicesima linea di dati. Ci sono voluti diversi giorni per identificare gli errori hardware, e c'\u00e8 stata una grande soddisfazione quando ho sostituito il chip difettoso con uno funzionante. In ogni caso, la velocit\u00e0 di accesso alla memoria esterna lascia a desiderare. <\/p>\n<p><b class=\"spoiler_title\">Bus esterno e modalit\u00e0 StandAlone<\/b>Il microcontrollore \u041a1986\u0412\u04151QI (aviazione) ha una modalit\u00e0 StandAlone unica, progettata per l'accesso diretto all'esterno ai controller Ethernet e MKIO (MIL_STD_1553) tramite il bus esterno, mentre il core \u00e8 in stato di reset, cio\u00e8 non \u00e8 in uso. Questa modalit\u00e0 \u00e8 utile per i processori e le FPGA che non dispongono di Ethernet e\/o MKIO.<br \/>\nLo schema di collegamento \u00e8 il seguente: <\/p>\n<ul>\n<li>bus dati MCU(D0-D15) =&gt; SRAM(I\/O0-I\/O15),<\/li>\n<li>bus indirizzi MCU(A1-A18) =&gt; SRAM(A0-A17),<\/li>\n<li>controllo MCU(nWR,nRD,PortC2) =&gt; SRAM (WE,OE,CE),<\/li>\n<li>SRAM(UB,LB) sono collegati o pull-down a terra tramite una resistenza.<\/li>\n<\/ul>\n<p>\nLa linea CE \u00e8 pull-up a alimentazione tramite una resistenza, i pin per la selezione del byte MCU(BE0-BE3) non vengono utilizzati. Sotto un spoiler, fornisco il codice di inizializzazione delle porte e del controller del bus esterno.<\/p>\n<p><b class=\"spoiler_title\">Inizializzazione delle porte e del controller EBC (external bus controller)<\/b><\/p>\n<pre><code class=\"plaintext\">void SRAM_Init (void)\n{\n\tEBC_InitTypeDef          EBC_InitStruct = { 0 };\n\tEBC_MemRegionInitTypeDef EBC_MemRegionInitStruct = { 0 };\n\tPORT_InitTypeDef         initStruct = { 0 };\n\n\tRST_CLK_PCLKcmd (RST_CLK_PCLK_EBC, ENABLE);\n\n\tPORT_StructInit (&amp;initStruct);\n\t\/\/--------------------------------------------\/\/\n\t\/\/ Dati PA0..PA15 (D0..D15)                   \/\/\n\t\/\/--------------------------------------------\/\/\n\tinitStruct.PORT_MODE      = PORT_MODE_DIGITAL;\n\tinitStruct.PORT_PD_SHM    = PORT_PD_SHM_ON;\n\tinitStruct.PORT_SPEED     = PORT_SPEED_FAST;\n\tinitStruct.PORT_FUNC      = PORT_FUNC_MAIN;\n\tinitStruct.PORT_Pin       = PORT_Pin_All;\n\tPORT_Init (MDR_PORTA, &amp;initStruct);\t\n\t\/\/--------------------------------------------\/\/\n\t\/\/ Indirizzo PF3-PF15 (A0..A12), A0 - non usato. \/\/\n\t\/\/--------------------------------------------\/\/\n\tinitStruct.PORT_FUNC      = PORT_FUNC_ALTER;\n\tinitStruct.PORT_Pin       = PORT_Pin_4  | PORT_Pin_5  |\n\t                            PORT_Pin_6  | PORT_Pin_7  |\n\t                            PORT_Pin_8  | PORT_Pin_9  |\n\t                            PORT_Pin_10 | PORT_Pin_11 |\n\t                            PORT_Pin_12 | PORT_Pin_13 |\n\t                            PORT_Pin_14 | PORT_Pin_15;\n\tPORT_Init (MDR_PORTF, &amp;initStruct);\t\n\t\/\/--------------------------------------------\/\/\n\t\/\/ Indirizzo PD3..PD0 (A13..A16)                \/\/\n\t\/\/--------------------------------------------\/\/\n\tinitStruct.PORT_FUNC      = PORT_FUNC_OVERRID;\n\tinitStruct.PORT_Pin       = PORT_Pin_0 | PORT_Pin_1 |\n\t                            PORT_Pin_2 | PORT_Pin_3;\n\tPORT_Init (MDR_PORTD, &amp;initStruct);\t\n\t\/\/--------------------------------------------\/\/\n\t\/\/ Indirizzo PE3, PE4 (A17, A18)                \/\/\n\t\/\/--------------------------------------------\/\/\n\tinitStruct.PORT_FUNC      = PORT_FUNC_ALTER;\n\tinitStruct.PORT_Pin       = PORT_Pin_3 | PORT_Pin_4;\n\tPORT_Init (MDR_PORTE, &amp;initStruct);\t\n\t\/\/--------------------------------------------\/\/\n\t\/\/ Controllo PC0,PC1 (nWE,nOE)                  \/\/\n\t\/\/--------------------------------------------\/\/\n\tinitStruct.PORT_FUNC      = PORT_FUNC_MAIN;\n\tinitStruct.PORT_Pin       = PORT_Pin_0 | PORT_Pin_1;\n\tPORT_Init (MDR_PORTC, &amp;initStruct);\t\n\t\/\/--------------------------------------------\/\/\n\t\/\/ Controllo PC2 (nCE)                          \/\/\n\t\/\/--------------------------------------------\/\/\n\tinitStruct.PORT_PD        = PORT_PD_DRIVER;\n\tinitStruct.PORT_OE        = PORT_OE_OUT;\n\tinitStruct.PORT_FUNC      = PORT_FUNC_PORT;\n\tinitStruct.PORT_Pin       = MDB_SRAM_CE;\n\tPORT_Init (MDR_PORTC, &amp;initStruct);\t\n\n\t\/\/--------------------------------------------\/\/\n\t\/\/ Inizializza il controllore EBC                   \/\/\n\t\/\/--------------------------------------------\/\/\n\tEBC_DeInit();\n\tEBC_StructInit(&amp;EBC_InitStruct);\n\tEBC_InitStruct.EBC_Mode             = EBC_MODE_RAM;\n\tEBC_InitStruct.EBC_WaitState        = EBC_WAIT_STATE_3HCLK;\n\tEBC_InitStruct.EBC_DataAlignment    = EBC_EBC_DATA_ALIGNMENT_16;\n\tEBC_Init(&amp;EBC_InitStruct);\n\t\n\tEBC_MemRegionStructInit(&amp;EBC_MemRegionInitStruct);\n\tEBC_MemRegionInitStruct.WS_Active   = 2;\n\tEBC_MemRegionInitStruct.WS_Setup    = EBC_WS_SETUP_CYCLE_1HCLK;\n\tEBC_MemRegionInitStruct.WS_Hold     = EBC_WS_HOLD_CYCLE_1HCLK;\n\tEBC_MemRegionInitStruct.Enable_Tune = ENABLE;\n\tEBC_MemRegionInit (&amp;EBC_MemRegionInitStruct, EBC_MEM_REGION_60000000);\n\tEBC_MemRegionCMD(EBC_MEM_REGION_60000000, ENABLE);\n\n\t\/\/ Accendi RAM (nCE)\n\tPORT_ResetBits (MDR_PORTC, MDB_SRAM_CE);\n}\n<\/code><\/pre>\n<p>\nIl microcontrollore in package LQFP-144 e la memoria in package TSOP-44 hanno molti pin collegati e occupano molto spazio sulla scheda. Avendo alle spalle esperienza nella risoluzione di problemi di ottimizzazione in economia, mi \u00e8 apparso chiaro che fosse necessario posizionare prima queste microchip sulla scheda. In diverse fonti ho trovato recensioni lusinghiere su <noindex><a rel=\"nofollow\" href=\"https:\/\/www.eremex.ru\/products\/delta-design\/topor\/\">CAD TopoR (Router Topologico)<\/a><\/noindex>. Ho scaricato la versione di prova e sono riuscito a esportare il mio progetto da Eagle CAD solo dopo aver rimosso quasi tutti i componenti. Purtroppo, anche 10 elementi, il programma TopoR non mi ha aiutato a posizionarli sulla scheda. Inizialmente, tutti i componenti erano stati collocati in un angolo, per poi essere disposti lungo il bordo. Questa disposizione non mi ha soddisfatto, e ho impiegato molto tempo per eseguire la tracciatura della scheda manualmente nell'ambiente abituale di Eagle CAD.<\/p>\n<p>Un elemento importante della scheda \u00e8 la serigrafia. Sulla scheda di prova devono esserci non solo le etichette per i componenti elettronici, ma anche tutti i connettori devono essere contrassegnati. Sul retro della scheda ho posizionato tabelle di riferimento con le funzioni delle porte del controllore (principale, alternativa, ridefinita, effettiva). Ho ordinato la produzione delle schede in Cina presso una nota azienda, PCBWay. Non voglio lodarli, perch\u00e9 la qualit\u00e0 \u00e8 buona. Possono fare meglio, con tolleranze minori, ma <noindex><a rel=\"nofollow\" href=\"https:\/\/www.pcbway.com\/HighQualityOrderOnline.aspx\">a pagamento separato<\/a><\/noindex>.<\/p>\n<p><img decoding=\"async\" alt=\"Sviluppo di una scheda di debug per K1986\u0412\u04151QI (avionica)\" src=\"\/wp-content\/uploads\/2020\/01\/cf7b60c6a2361614d18e4949c35ab583.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Schede stampate MDB1986, (c) Foto dell'autore<\/i><\/p>\n<p>Ho dovuto saldare i componenti \"alla meno peggio\" con un saldatore da 40 watt e stagno \u041f\u041e\u0421-61, perch\u00e9 saldo raramente, 1-2 volte all'anno, e la pasta di saldatura si era seccata. Ho dovuto anche cambiare il controllore cinese CS32F103 con un originale STM32F103, e poi sostituire anche la memoria. In generale, ora sono completamente soddisfatto del risultato, anche se non ho ancora testato il funzionamento di RS-232 e CAN.<\/p>\n<p><img decoding=\"async\" alt=\"Sviluppo di una scheda di debug per K1986\u0412\u04151QI (avionica)\" src=\"\/wp-content\/uploads\/2020\/01\/a3dc985a943623d5d07fb8e762468963.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>La scheda di prova MDB1986 in funzione \u2014 illumina e riscalda, (c) Foto dell'autore<\/i><\/p>\n<p>Sul sito \"Milandra\" \u00e8 possibile trovare abbastanza <noindex><a rel=\"nofollow\" href=\"https:\/\/edu.milandr.ru\/library\/\">materiali didattici per studiare i controllori<\/a><\/noindex> serie 1986BE9 (nucleo Cortex-M3), ma per il microcontrollore K1986\u0412\u04151QI (aviazione) non vedo nulla. Dopo aver esaminato i materiali pubblicati l\u00ec, le guide e i laboratori per le Universit\u00e0, sono felice che si stiano formando specialisti in tutto il paese per lavorare con i controllori russi. La maggior parte dei materiali didattici \u00e8 preparata per lavorare con le porte di input\/output, i timer, ADC, DAC, SPI, UART. Vengono utilizzati vari ambienti di sviluppo IDE (Keil, IAR, CodeMaster). In alcuni casi si programma utilizzando i registri CMSIS, in altri si utilizza la libreria MDR. \u00c8 necessario menzionare la risorsa <noindex><a rel=\"nofollow\" href=\"https:\/\/startmilandr.ru\/\">Start Milandr<\/a><\/noindex>, che contiene numerosi articoli di programmatori pratici. E, naturalmente, non bisogna dimenticare il <noindex><a rel=\"nofollow\" href=\"https:\/\/forum.milandr.ru\/\">forum di Milandr<\/a><\/noindex>.<\/p>\n<p><b class=\"spoiler_title\">Duma di Milandr<\/b>La microelettronica in Russia si sta sviluppando, e in questo processo l'azienda \u00abMilandr\u00bb gioca un ruolo importante. Comparsono nuovi microcontrollori interessanti, come il 1986\u0412\u041581\u0422 e \u00abEletrosila\u00bb con interfacce SpaceWire e M\u041aIO (simile a quello in 1986BE1 e, forse, con gli stessi problemi), e cos\u00ec via. Ma agli studenti semplici, ai docenti e agli ingegneri civili non \u00e8 realistico acquistare tali chip. Ci\u00f2 significa che la comunit\u00e0 degli ingegneri non potr\u00e0 identificare rapidamente gli errori e i problemi di questo chip. Mi sembra che inizialmente sia necessario produrre chip in un involucro di plastica, distribuirli tra tutte le persone interessate, e solo dopo una prova (lat. approbatio \u2014 approvazione, riconoscimento) da parte degli specialisti si pu\u00f2 preparare una revisione in un involucro metallico-ceramico con protezioni contro tutti i terribili fattori. Spero che nel prossimo futuro ci delizieranno con nuovi progetti annunciati nelle fiere.<br \/>\nLa scheda di_debug che ho progettato pu\u00f2 essere riprodotta, modificata e utilizzata nel processo didattico da chiunque. In primo luogo, ho realizzato la scheda per me stesso, ma \u00e8 venuta cos\u00ec bene che <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/makbit\/MDB1986\">ho deciso di condividerla con tutti<\/a><\/noindex>.<\/p>\n<p>K1986\u0412\u04151QI (aviazione) \u00e8 un controllore molto interessante con interfacce uniche, che pu\u00f2 essere utilizzato nelle Universit\u00e0 per l'insegnamento agli studenti. Penso che dopo aver corretto gli errori individuati nel controllore e dopo aver superato i test di certificazione, il controllore voler\u00e0 in senso letterale!<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/482716\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442 \u043d\u0430\u0437\u0430\u0434 \u044f \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0441\u044f \u0441 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u043c\u0438 \u043c\u0438\u043a\u0440\u043e\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430\u043c\u0438 \u0444\u0438\u0440\u043c\u044b \u041c\u0438\u043b\u0430\u043d\u0434\u0440. \u042d\u0442\u043e \u0431\u044b\u043b 2013 \u0433\u043e\u0434, \u043a\u043e\u0433\u0434\u0430 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u0431\u0443\u0440\u043d\u043e \u043e\u0431\u0441\u0443\u0436\u0434\u0430\u043b\u0438 \u043f\u0435\u0440\u0432\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0424\u0426\u041f \u00ab\u0420\u0430\u0437\u0432\u0438\u0442\u0438\u044f \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043d\u043e\u0439 \u0431\u0430\u0437\u044b \u0438 \u0440\u0430\u0434\u0438\u043e\u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u0438\u043a\u0438\u00bb \u043d\u0430 2008-2015 \u0433\u043e\u0434\u044b. \u041d\u0430 \u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u0443\u0436\u0435 \u0431\u044b\u043b \u0432\u044b\u043f\u0443\u0449\u0435\u043d \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u041a1986\u0412\u04159x (\u044f\u0434\u0440\u043e Cortex-M3) \u0438 \u0442\u043e\u043b\u044c\u043a\u043e-\u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 1986\u0412\u04151\u0422 (\u044f\u0434\u0440\u043e Cortex-M1). \u041e\u043d \u0436\u0435 \u0432 \u043f\u043b\u0430\u0441\u0442\u0438\u043a\u043e\u0432\u043e\u043c \u043a\u043e\u0440\u043f\u0443\u0441\u0435 LQFP-144 \u0438\u043c\u0435\u043b \u0432 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-54744","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442 \u043d\u0430\u0437\u0430\u0434 \u044f \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0441\u044f \u0441.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/news\/razrabotka-otladochnoj-platy-dlya-k1986ve1qi-avia\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u044b \u0434\u043b\u044f \u041a1986\u0412\u04151QI (\u0430\u0432\u0438\u0430) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442 \u043d\u0430\u0437\u0430\u0434 \u044f \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0441\u044f \u0441.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/news\/razrabotka-otladochnoj-platy-dlya-k1986ve1qi-avia\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-01-02T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:02:47+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Sviluppo della scheda di_debug per K1986\u0412\u04151QI (aviazione) | ProHoster","description":"Qualche anno fa ho conosciuto.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/news\/razrabotka-otladochnoj-platy-dlya-k1986ve1qi-avia","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u0442\u043b\u0430\u0434\u043e\u0447\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u044b \u0434\u043b\u044f \u041a1986\u0412\u04151QI (\u0430\u0432\u0438\u0430) | ProHoster","og:description":"\u041d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043b\u0435\u0442 \u043d\u0430\u0437\u0430\u0434 \u044f \u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u043b\u0441\u044f \u0441.","og:url":"https:\/\/prohoster.info\/it\/blog\/news\/razrabotka-otladochnoj-platy-dlya-k1986ve1qi-avia","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-01-02T21:00:00+00:00","article:modified_time":"2020-02-18T11:02:47+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"54744","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 12:33:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:58:23","updated":"2026-01-24 12:33:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/54744","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=54744"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/54744\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=54744"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=54744"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=54744"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}