Kehityslevyn kehittäminen K1986BE1QI:lle (ilmailu)

Kehityslevyn kehittäminen K1986BE1QI:lle (ilmailu)

Useita vuosia sitten tutustuin Milanderin venäläisiin mikrokontrollereihin. Elettiin vuotta 2013, jolloin insinöörit keskustelivat kiihkeästi liittovaltion tavoiteohjelman "Elektroniikkakomponenttien ja radioelektroniikan kehittäminen" ensimmäisistä tuloksista vuosille 2008-2015. Tuolloin K1986BE9x-ohjain (Cortex-M3-ydin) oli jo julkaistu ja 1986BE1T-ohjain (Cortex-M1-ydin) oli juuri ilmestynyt. Muovikotelossa LQFP-144 sen dokumentaatiossa oli merkintä K1986BE1QI (ilmailu) ja itse sirussa merkintä MDR32F1QI. Valmistajan verkkosivuilla siinä on pääte "avia", koska sillä on lentokoneteollisuudelle ominaisia ​​rajapintoja (ARINC 429, MIL_STD_1553).

Yllättäen Milander-yhtiö valmisti näiden ohjaimien jakeluvaiheessa virheenkorjaussarjat ja kirjaston aliohjelmia oheislaitteiden kanssa työskentelyä varten, "mutta ilman lisätakuita tai velvollisuuksia kirjaston oikeellisuudesta". Kirjasto on samanlainen kuin STMicroelectronicsin Standard Peripheral Library. Yleisesti ottaen kaikilla Cortex-M-ytimeen rakennetuilla ARM-ohjaimilla on paljon yhteistä. Tästä syystä uusiin venäläisiin ohjaimiin tutustuminen eteni nopeasti. Ja niille, jotka ostivat merkkituotteita vianetsintäsarjoja, annettiin teknistä tukea käytön aikana.

Kehityslevyn kehittäminen K1986BE1QI:lle (ilmailu)
Virheenkorjaussarja mikro-ohjaimelle 1986BE1T, © Milander

Ajan myötä uusien mikropiirien ja kirjastojen "lapsuussairauksia" alkoi kuitenkin ilmaantua. Laiteohjelmiston testiesimerkit toimivat ilman näkyviä ongelmia, mutta merkittävillä muutoksilla tapahtui kaatumisia ja virheitä. Ensimmäinen "niellä" käytännössäni oli selittämättömät viat CAN-ohjaimen toiminnassa. Vuotta myöhemmin ongelma moduulissa havaittiin 1986BE1T (ilmailu) -ohjaimesta varhaisessa versiossa. MKIO (multiplex tiedonvaihtokanava). Yleensä kaikki näiden mikro-ohjainten versiot vuoteen 2016 asti olivat rajoitetusti käytössä. Näiden ongelmien tunnistamiseen kului paljon aikaa ja hermoja, joille nyt löytyy vahvistus virheluettelot (errata).

Epämiellyttävä ominaisuus oli, että oli tarpeen työskennellä ja käsitellä virheitä ei virheenkorjauslevyillä, vaan laitteiden prototyyppilevyillä, jotka oli suunniteltu sarjatuotantoon. Siellä ei yleensä ollut mitään muuta kuin JTAG-liitin. Yhdistäminen logiikkaanalysaattoriin oli vaikeaa ja hankalaa, eikä niissä yleensä ollut LEDejä tai näyttöjä. Tästä syystä päähäni syntyi ajatus oman virheenkorjauslevyn luomisesta.

Toisaalta markkinoilla oli merkkituotteita vianetsintäsarjoja sekä upeita levyjä Zelenogradista LDM-Systems-yhtiöltä. Toisaalta näiden tuotteiden hinnat ovat huimia, eikä perustoiminnallisuus ilman laajennuskortteja täytä odotuksia. Levy juotetulla ohjaimella ja pin-liittimellä ei kiinnosta minua. Ja mielenkiintoisemmat levyt ovat kalliita.

Kehityslevyn kehittäminen K1986BE1QI:lle (ilmailu)
Kehityskortti MILANDR LDM-HELPER-K1986BE1QI-FULL, © LDM Systems

Milander-yrityksellä on ainutlaatuinen hintapolitiikka ja markkinointi. Joten on mahdollista saada ilmaisia ​​näytteitä joistakin mikropiireistä, mutta tämä on vain juridisten henkilöiden saatavilla ja liittyy byrokraattiseen tehtävään. Yleensä metalli-keraamikotelossa olevat mikropiirit ovat kultaa kirjaimellisessa ja kuvaannollisessa mielessä. Esimerkiksi 1986BE1T-ohjain maksaa Moskovassa 14-24 tuhatta ruplaa. Staattinen muistisiru 1645RU6U maksaa 15000 1986 ruplaa. Ja tämä on kaikkien tuotteiden hintajärjestys. Tämän seurauksena jopa erikoistuneet tutkimuslaitokset, joilla on valtion tilaukset, säästävät rahaa ja karttavat tällaisia ​​hintoja. Mikropiirit muovikotelossa siviilikäyttöön ovat huomattavasti halvempia, mutta niitä ei ole saatavilla suosituilta toimittajilta. Lisäksi muovikotelossa olevien mikropiirien laatu on mielestäni huonompi kuin "kultaisten". En esimerkiksi voinut käyttää K1BE128QI-ohjainta 40 MHz:n taajuudella ilman, että flash-viiveparametria olisi lisätty. Samanaikaisesti tämän säätimen lämpötila nousi 50-1986 asteeseen. Mutta 1BE128T ("kulta") ohjain aloitti XNUMX MHz ilman lisäasetuksia ja pysyi kylmänä. Hän on todella hyvä.

Kehityslevyn kehittäminen K1986BE1QI:lle (ilmailu)
"Golden" mikro-ohjain 1986BE1T, (c) Milander

Olin onnekas, että muovikotelossa olevan mikro-ohjaimen voi edelleen ostaa vähittäiskaupasta LDM Systemsiltä, ​​ja kaikki korttikaaviot ovat vapaasti saatavilla. Huono asia on, että sivuilla ohjaimen kuvassa näkyy merkintä, joka sanoo, että tämä on vuoden 4 2014. versio, ts. vikojen kanssa. Mietin pitkään ostanko vai ei. Monta vuotta kului näin...

Ajatus virheenkorjauslevyn luomisesta ei ole kadonnut mihinkään. Vähitellen muotoilin kaikki vaatimukset ja mietin, kuinka sijoittaa kaikki yhdelle laudalle niin, että se olisi kompakti eikä kallis. Samaan aikaan tilasin puuttuvat komponentit kiinalaisilta. Minulla ei ollut kiirettä - tein kaiken itselleni. Kiinalaiset toimittajat ovat tunnetusti huolimattomia - minun piti tilata sama asia eri paikoista saadakseni kaiken tarvitsemani. Lisäksi osa muistisiruista osoittautui käytetyiksi - ilmeisesti juotettuina rikkinäisistä laitteista. Tämä tuli takaisin kummittelemaan minua myöhemmin.

Mikrokontrollerin Milander K1986BE1QI (ilma) ostaminen ei ole helppo tehtävä. Samassa Chip and Dip -liikkeessä "Tilattavat tuotteet" -osiossa löysin vain K1986BE92QI hintaan 740 ruplaa, mutta se ei sopinut minulle. Ainoa vaihtoehto on ostaa ei-tuore versio LDM-Systemsistä 2000 2018 ruplasta. Koska en löytänyt korvaavaa mistään muualta, päätin ostaa sen, mitä minulla oli. Iloiseksi yllätyksekseni he myivät minulle aivan uuden ohjaimen, joka valmistettiin joulukuussa 6, versio 1820+ (XNUMX). Mutta sivustolla on edelleen vanha valokuva, ja ohjain ei ole kirjoitushetkellä saatavilla...

Kehityslevyn kehittäminen K1986BE1QI:lle (ilmailu)
Mikro-ohjain K1986BE1QI (ilmailu) teknologisessa pakkauksessa, (c) Kuva tekijän

Virheenkorjauslevyni tärkeimmät tekniset ominaisuudet MDB1986 seuraavat:

  • sisäänrakennettu debuggeri-ohjelmoija, yhteensopiva J-Linkin ja CMSIS-DAP:n kanssa;
  • staattinen muisti 4 Mbit (256 k x 16, 10 ns);
  • flash-muistisiru 64 Mbit, Winbond 25Q64FVSIG;
  • RS-232-liitännän lähetin-vastaanotin RTS- ja CTS-linjoilla;
  • liitännät ja liittimet Ethernetille, USB:lle, CAN:lle;
  • MAX7 7221-segmenttinen näytönohjain;
  • nastainen liitin MKIO:n (MIL_STD_1553) ja ARINC429:n kanssa työskentelemiseen;
  • valotransistori Everlight PT17-21C;
  • viisi värillistä LEDiä, nollauspainike ja kaksi käyttäjäpainiketta;
  • USB-portin virtalähde on 5 volttia;
  • piirilevyn mitat 100 x 80, mm

Pidin STM-Discovery-sarjan levyistä, koska niissä on sisäänrakennettu ohjelmoija-debuggeri - ST-Link. Branded ST-Link toimii vain STMicroelectronicsin ohjaimien kanssa, mutta pari vuotta sitten tuli mahdolliseksi päivittää laiteohjelmisto ST-Linkissä ja saada SEGGER J-Link OB (on-board) Debugger. Laillisesti tällaisen debuggerin käyttöä rajoitetaan vain STMicroelectronics-korttien kanssa, mutta itse asiassa potentiaalia ei ole rajoitettu. Näin ollen, kun sinulla on J-Link OB, sinulla voi olla sisäänrakennettu ohjelmoija-debuggeri virheenkorjauslevyllä. Huomautan, että LDM-Systems-tuotteissa käytetään CP2102 (Usb2Uart) -muunninta, joka voi vain vilkkua.

Kehityslevyn kehittäminen K1986BE1QI:lle (ilmailu)
STM32F103C8T6 mikro-ohjaimet, todellisia ja ei niin todellisia, (c) Kuva tekijän

Joten oli tarpeen ostaa alkuperäinen STM32F103C8T6, koska patentoitu laiteohjelmisto ei toimi oikein kloonin kanssa. Epäilin tätä opinnäytetyötä ja päätin kokeilla kiinalaisen CKS-yrityksen CS32F103C8T6-ohjainta. Minulla ei ole valittamista itse ohjaimesta, mutta patentoitu ST-Link-laiteohjelmisto ei toiminut siinä. J-Link toimi osittain - USB-laite havaittiin, mutta ohjelmoija ei suorittanut toimintojaan ja muistutti jatkuvasti, että se oli "viallinen".

Kehityslevyn kehittäminen K1986BE1QI:lle (ilmailu)
Virhe suoritettaessa debuggeria ei-alkuperäisessä ohjaimessa

En ollut tyytyväinen tähän ja kirjoitin ensin laiteohjelmiston LED-valon vilkkumiseen ja toteutin sitten IDCODE-pyynnön JTAG-protokollan avulla. ST-Link-ohjelmoija, joka minulla oli Discovery-kortilla, ja ST-Link Utility -ohjelma flashit CS32F103C8T6:n ilman ongelmia.. Lopulta olin varma, että levyni toimii. Ilokseni kohdeohjain K1986BE1QI (ilmailu) antoi iloisesti IDCODEnsa TDO-linjan kautta.

Kehityslevyn kehittäminen K1986BE1QI:lle (ilmailu)
Oskillogrammi TDO-signaalilinjasta koodatulla IDCODE-vasteella, (c) Tekijän valokuva

Kehityslevyn kehittäminen K1986BE1QI:lle (ilmailu)
Joten SWD-portti oli kätevä itse debuggerin virheenkorjauksessa ja IDCODE:n tarkistamisessa

Oli vaihtoehto debuggerilla CMSIS-DAP (virheenkorjausportti). Projektin rakentaminen ARM-lähteistä ei ole helppo tehtävä, otin projektin X893, ja sitten kokeilin DAP42:ta. Valitettavasti Keil uVision jäätyi eikä halunnut työskennellä heidän kanssaan. Tämän seurauksena vaihdoin virheenkorjauspiirin patentoidulla STM32F103C8T6:lla enkä koskaan palannut tähän ongelmaan.

Kehityslevyn kehittäminen K1986BE1QI:lle (ilmailu)
Sisäänrakennetun debuggerin J-Link STLink V2 onnistunut toiminta

Kun kaikki tulevan kehityslevyn avainkomponentit olivat saatavilla, menin Eagle CADiin ja huomasin, että ne eivät olleet elementtikirjastossa. Ei ollut minne mennä - minun piti piirtää ne itse. Samalla tein asennuspaikat muistille, HanRun-liittimen Ethernetille ja lisäsin kehyksiä vastuksille ja kondensaattoreille. Projektitiedosto ja komponenttikirjasto löytyvät GitHubissani.

Kaaviokaavio MDB1986-kehityslevystäKehityslevyn kehittäminen K1986BE1QI:lle (ilmailu)

Levy saa virtansa 5 voltin DC-lähteestä, joka saadaan USB-portista. Kortilla on yhteensä kaksi USB Type-B -porttia. Toinen on ohjelmoijalle, toinen K1986BE1QI-ohjaimelle. Levy voi toimia jommastakummasta näistä lähteistä tai molemmista samanaikaisesti. Yksinkertaisin kuormansäätö ja voimajohtosuojaus on toteutettu Schottky-diodeilla, piirissä D2 ja D3 (SS24). Myös kaaviossa näet itsepalautuvat sulakkeet F1 ja F2 500 mA:lla. USB-portin signaalilinjat on suojattu USBLC6-2SC6-diodikokoonpanolla.

ST-Link-debuggeri-ohjelmointipiiri on monille tuttu, se löytyy STM32-Discovery-korttien dokumentaatiosta ja muista lähteistä. ST-Link/J-Link-OB/DAP-kloonin (valinnainen) alustavaa laiteohjelmistoa varten toin esiin rivit SWDIO (PA13), SWCLK (PA14), GND. Monet ihmiset käyttävät UART-ohjelmistoa ja heidän on pakko vetää BOOT-hypyt. Mutta mielestäni SWD on kätevämpi, ja tämä protokolla mahdollistaa virheenkorjauksen.

Lähes kaikki levyn komponentit saavat virran 3.3 voltista, joka tulee AMS1117-3.3 jännitesäätimestä. Sähkömagneettisten häiriöiden ja virtapiikin vaimentamiseen käytetään BLM31PG-sarjan kondensaattoreiden ja kuristimien LC-suodattimia.

Erikseen on syytä mainita MAX7 7221-segmenttinen näytönohjain. Erittelyn mukaan suositeltu teholähde on 4 - 5.5 volttia ja korkea signaalitaso (looginen) on vähintään 3.5 V (0.7 x VCC) 5 V:n jännitteellä. K1986BE1QI (aviation) -ohjaimessa loogisen yksikön lähtö vastaa jännitettä 2.8 - 3.3 V. Ilmeisesti signaalitasojen välillä on epäsopivuus, mikä voi häiritä normaalia toimintaa. Päätin antaa MAX7221:lle virran 4 V:lla ja vähentää signaalitasot 2.8 V:iin (0.7 x 4 = 2.8). Tätä varten diodi D4 (RS1A tai FR103) asennetaan sarjaan ohjaimen virtapiiriin. Kokonaisjännitehäviö on 0.9V (Schottky-diodi 0.3V ja diodi 0.6V), ja kaikki toimii.

Useimmat K1986BE1QI (aviation) -mikro-ohjaimen portit ovat yhteensopivia 5 V:n signaalien kanssa. Siksi ei ole ongelmaa käyttää MCP2551 CAN -lähetin-vastaanotinta, joka toimii myös 5 V:lla. MAX232-siru on merkitty kaaviossa RS-3232-lähetin-vastaanottimeksi, mutta itse asiassa käytin Texas Instrumentsin SN65C3232D:tä, koska se toimii 3.3 V:sta ja tarjoaa jopa 1 Mbit/s nopeuden.

Levy sisältää 4 kvartsiresonaattoria - yksi debuggerille (8 MHz) ja kolme kohdemikro-ohjaimelle K1986BE1QI (ilmailu) taajuuksilla 32.768 kHz, 16 MHz, 25 MHz. Nämä ovat välttämättömiä komponentteja, koska Sisäänrakennetun RC-oskillaattorin parametrit ovat laajalla alueella 6 - 10 MHz. Sisäänrakennetun Ethernet-ohjaimen toimintaan tarvitaan 25 MHz taajuus. Jostain syystä Milandran verkkosivuilla (ehkä vahingossa) kerrotaan, että muovikotelossa ei ole Ethernetiä. Mutta luotamme eritelmiin ja tosiasioihin.

Tärkeä kannustin oman kehityskortin luomiseen oli mahdollisuus työskennellä ulkoisen järjestelmäväylän EBC:n (external bus controller) kanssa, joka on olennaisesti rinnakkaisportti. K1986BE1QI-mikro-ohjain (lentokone) mahdollistaa ulkoisten muistisirujen ja oheislaitteiden, kuten ADC:iden, FPGA:iden jne., liittämisen ja työskentelyn. Ulkoisen järjestelmäväylän ominaisuudet ovat melko suuret - voit työskennellä 8-bittisen, 16-bittisen ja 32-bittisen staattisen RAM-muistin, ROM-muistin ja NAND Flashin kanssa. Lukeakseen/kirjoittaakseen 32-bittistä dataa ohjain voi suorittaa automaattisesti 2 vastaavaa toimintoa 16-bittisille siruille ja 8 toimintoa 4-bittisille siruille. Ilmeisesti 32-bittinen I/O-toiminto suoritetaan nopeimmin 32-bittisellä dataväylällä. Haittoja ovat ohjelman tarve toimia 32-bittisellä tiedolla, ja levylle on asetettava 32 raitaa.

Kehityslevyn kehittäminen K1986BE1QI:lle (ilmailu)
Staattiset RAM-sirut, käytetty (arvatkaa kumpi on viallinen)

Tasapainoinen ratkaisu on käyttää 16-bittisiä muistisiruja. Minulla sattui olemaan Integrated Silicon Solutions Inc. -siruja varastossa. (ISSI IS61LV25616AL, 16 x 256k, 10 ns, 3.3 V). Tietenkin Milander-yrityksellä on omat staattiset muistipiirinsä sarja 1645RU, mutta ne ovat liian kalliita ja niitä ei ole saatavilla. Vaihtoehtona on pin-yhteensopiva Samsung K6R4016V1D. Aiemmin mainitsin, että mikropiirit osoittautuivat käytetyiksi ja alun perin asentamani kopio antoi vikoja ja kaoottisia arvoja 15. datarivillä. Kesti useita päiviä löytää laitteistovirheitä, ja sitä suurempi oli tyytyväisyyden tunne, kun vaihdoin vaurioituneen sirun toimivaan. Oli miten oli, ulkoisen muistin kanssa työskentelyn nopeus jättää paljon toivomisen varaa.

Ulkoinen väylä ja StandAlone-tilaK1986BE1QI-mikro-ohjaimessa (lentokone) on ainutlaatuinen StandAlone-tila, joka on suunniteltu suoraa ulkoista pääsyä varten Ethernet- ja MKIO-ohjaimiin (MIL_STD_1553) ulkoisen väylän kautta, ytimen ollessa reset-tilassa, ts. ei käytetty. Tämä tila on kätevä prosessoreille ja FPGA:ille, joissa ei ole Ethernetiä ja/tai MKIO:ta.
Kytkentäkaavio on seuraava:

  • dataväylä MCU(D0-D15) => SRAM(I/O0-I/O15),
  • osoiteväylä MCU(A1-A18) => SRAM(A0-A17),
  • ohjaus MCU(nWR,nRD,PortC2) => SRAM (WE,OE,CE),
  • SRAM(UB,LB) kytketään tai vedetään maahan vastuksen kautta.

CE-linja on kytketty virtalähteeseen vastuksen kautta, MCU-tavun näytteenottonastoja (BE0-BE3) ei käytetä. Spoilerin alle annan koodin porttien ja ulkoisen väyläohjaimen alustusta varten.

Porttien ja EBC-ohjaimen alustus (ulkoinen väyläohjain)

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

LQFP-144-paketin mikro-ohjaimessa ja TSOP-44-pakkauksen muistissa on useita nastaja ja ne vievät paljon tilaa painetulla piirilevyllä. Koska minulla oli kokemusta taloustieteen optimointiongelmien ratkaisemisesta, minulle oli selvää, että nämä mikropiirit on ensin asetettava levylle. Useissa lähteissä olen törmännyt ylistäviä arvioita aiheesta CAD TopoR (topologinen reititin). Latasin kokeiluversion ja pystyin viemään projektini Eagle CADista sinne vasta, kun olin poistanut melkein kaikki komponentit. Valitettavasti TopoR-ohjelma ei auttanut minua asettamaan edes 10 elementtiä taululle. Ensin kaikki komponentit asetettiin nurkkaan ja sitten järjestettiin reunaa pitkin. En ollut tyytyväinen tähän vaihtoehtoon, ja jäljitin levyä pitkään manuaalisesti tutussa Eagle CAD -ympäristössä.

Tärkeä piirilevyn elementti on silkkipainatus. Kehityskortilla ei saa olla ainoastaan ​​elektroniikkakomponenttien tarroja, vaan myös kaikki liittimet on merkittävä. Levyn takaosaan laitoin taulukot ohjainporttien toiminnoilla (pää, vaihtoehto, ohitettu, todellinen). Tilasin piirilevyjen valmistuksen Kiinasta tunnetulta PCBWayn toimistolta. En kehtaa sitä, koska laatu on hyvä. He voivat tehdä paremmin, tiukemmilla toleransseilla, mutta maksua vastaan.

Kehityslevyn kehittäminen K1986BE1QI:lle (ilmailu)
Valmistetut MDB1986-painetut piirilevyt, (c) Tekijän valokuva

Komponentit jouduin juottamaan "polvillani" 40 watin juottimella ja POS-61 juottimella, koska juotan harvoin, 1-2 kertaa vuodessa, ja juotospasta oli kuivunut. Jouduin myös vaihtamaan kiinalaisen CS32F103-ohjaimen alkuperäiseen STM32F103:een ja sitten myös vaihtamaan muistin. Yleisesti ottaen olen nyt täysin tyytyväinen tulokseen, vaikka en ole vielä tarkistanut RS-232:n ja CAN:n toimintaa.

Kehityslevyn kehittäminen K1986BE1QI:lle (ilmailu)
MDB1986 debug board toiminnassa - se paistaa ja lämmittää, (c) Kuva tekijän

Milandra-verkkosivustolta löytyy tarpeeksi Oppimateriaalit oppimisen ohjaimille sarja 1986BE9 (Cortex-M3-ydin), mutta K1986BE1QI (ilmailu) -mikro-ohjaimessa en näe siellä mitään. Tutkittuani siellä julkaistuja materiaaleja, käsikirjoja ja yliopistojen laboratoriotyötä olen iloinen, että henkilöstöä koulutetaan koko maassa työskentelemään venäläisten valvojien kanssa. Useimmat koulutusmateriaalit valmistautuvat työskentelemään I/O-porttien, ajastimien, ADC:n, DAC:n, SPI:n, UART:n kanssa. Käytössä on erilaisia ​​IDE-kehitysympäristöjä (Keil, IAR, CodeMaster). Jossain he ohjelmoivat CMSIS-rekistereillä ja jossain MDR-kirjastoa. Resurssi on mainittava Aloita Milandr, joka sisältää monia artikkeleita harjoittelevilta ohjelmoijilta. Eikä tietenkään pidä unohtaa Milandra foorumi.

Mietin MilandraaMikroelektroniikka kehittyy Venäjällä, ja Milander-yhtiöllä on tässä prosessissa näkyvä rooli. Uusia mielenkiintoisia mikrokontrollereita ilmaantuu, esim. 1986BE81T ja Elektrosila SpaceWire- ja MKIO-liitännöillä (sama kuin 1986BE1 ja mahdollisesti samoilla ongelmilla) jne. Mutta tavalliset opiskelijat, opettajat ja rakennusinsinöörit eivät voi ostaa tällaisia ​​mikropiirejä. Tämä tarkoittaa, että insinööriyhteisö ei pysty nopeasti tunnistamaan tämän sirun virheitä ja ongelmia. Minusta näyttää siltä, ​​​​että ensin on tarpeen valmistaa mikropiirit muovikotelossa, jakaa ne kaikille kiinnostuneille, ja asiantuntijoiden hyväksynnän (latinaksi approbatio - hyväksyntä, tunnustaminen) jälkeen he voivat valmistella versiota metallikeraamiseen koteloon. suoja kaikilta kauheilta tekijöiltä. Toivon, että lähitulevaisuudessa olemme KAIKKI tyytyväisiä näyttelyissä julkistettuihin uusiin hankkeisiin.
Kehittämäni virheenkorjauslevy voidaan toistaa, muokata ja käyttää kuka tahansa opetusprosessissa. Ensinnäkin tein taulun itselleni, mutta siitä tuli niin hyvä, että Päätin jakaa kaikkien kanssa.

K1986BE1QI (ilma) on erittäin mielenkiintoinen ohjain ainutlaatuisilla rajapinnoilla, joita voidaan käyttää yliopistoissa opiskelijoiden opettamiseen. Uskon, että ohjaimessa havaittujen virheiden korjaamisen ja sertifiointitestien läpäisyn jälkeen lennonjohtaja lentää sanan varsinaisessa merkityksessä!

Lähde: will.com

Lisää kommentti