Ontwikkeling van 'n ontfoutingsbord vir K1986BE1QI (lugvaart)

Ontwikkeling van 'n ontfoutingsbord vir K1986BE1QI (lugvaart)

'n Paar jaar gelede het ek kennis gemaak met die Russiese mikrobeheerders van Milandr. Dit was 2013, toe ingenieurs die eerste resultate van die Federal Target Program "Ontwikkeling van elektroniese komponentbasis en radioelektronika" vir 2008-2015 kragtig bespreek het. Op daardie stadium was die K1986BE9x-beheerder (Cortex-M3-kern) reeds vrygestel, en die 1986BE1T-beheerder (Cortex-M1-kern) het pas verskyn. Hy, in die plastiek LQFP-144-kas, het die benaming K1986BE1QI (lugvaart) in die dokumentasie gehad, en die benaming MDR32F1QI op die skyfie self. Op die vervaardiger se webwerf het dit die agtervoegsel "lug", aangesien dit koppelvlakke het wat spesifiek vir die vliegtuigbedryf is (ARINC 429, MIL_STD_1553).

Verbasend genoeg het die Milander-maatskappy ten tyde van verspreiding van hierdie beheerders ontfoutingsstelle en 'n biblioteek van subroetines voorberei om met randapparatuur te werk, "maar sonder enige bykomende waarborge en verpligtinge rakende die korrektheid van die biblioteek." Die biblioteek is soortgelyk aan die Standard Peripheral Library van STMicroelectronics. Oor die algemeen het alle ARM-beheerders wat op die Cortex-M-kern gebou is, baie in gemeen. Om hierdie rede het kennismaking met die nuwe Russiese beheerders vinnig verloop. En vir diegene wat eie ontfoutingsstelle gekoop het, is tegniese ondersteuning tydens gebruik verskaf.

Ontwikkeling van 'n ontfoutingsbord vir K1986BE1QI (lugvaart)
Ontfoutingstel vir mikrobeheerder 1986BE1T, © Milandr

Met verloop van tyd het "kindersiektes" van nuwe skyfies en biblioteke egter begin verskyn. Toetsvoorbeelde van firmware het sonder sigbare probleme gewerk, maar met aansienlike veranderinge het ineenstortings en foute gereën. Die eerste "sluk" in my praktyk was onverklaarbare mislukkings in die CAN-beheerder. 'n Jaar later is 'n probleem met die module ontdek op die 1986BE1T (lug) kontroleerder van 'n vroeë hersiening MCIO (multipleks inligting-uitruilkanaal). Oor die algemeen was alle hersienings van hierdie mikrobeheerders tot 2016 van beperkte nut. Baie tyd en senuwees het ingegaan om hierdie probleme te identifiseer, waarvan die bevestiging nou gevind kan word in foutlyste (Errata).

'n Onaangename kenmerk was dat dit nodig was om te werk en foute te hanteer, nie op ontfoutborde nie, maar op borde van prototipe toestelle wat vir reeksfabriekproduksie beplan is. Benewens die JTAG-koppelaar was daar gewoonlik niks daar nie. Dit was moeilik en ongerieflik om met 'n logiese ontleder te koppel, en daar was gewoonlik geen LED's en skerms nie. Om hierdie rede het die idee om my eie ontfoutingsbord te skep in my kop verskyn.

Aan die een kant was daar handelsmerkontfoutingsstelle op die mark, sowel as wonderlike borde van LDM-Systems van Zelenograd. Aan die ander kant dryf die pryse vir hierdie produkte 'n mens in 'n bedwelming, en die basiese funksionaliteit sonder uitbreidingskaarte voldoen nie aan die verwagtinge nie. 'n Bord met 'n gesoldeerde beheerder en 'n penkop is vir my nie van belang nie. En meer interessante borde is duur.

Ontwikkeling van 'n ontfoutingsbord vir K1986BE1QI (lugvaart)
Ontwikkelingsraad MILANDR LDM-HELPER-K1986BE1QI-FULL, © LDM Systems

Die maatskappy "Milandr" het 'n unieke prysbeleid en bemarking. Dit is dus moontlik om gratis monsters van sommige mikrobane te kry, maar dit is slegs beskikbaar vir regspersone en word geassosieer met 'n burokratiese soeke. Oor die algemeen is mikrokringe in 'n keramiek-metaalverpakking goudkleurig in die letterlike en figuurlike sin. Byvoorbeeld, die 1986BE1T-beheerder kos in Moskou van 14 tot 24 duisend roebels. Die statiese geheueskyfie 1645RU6U kos vanaf 15000 1986 roebels. En dit is die volgorde van pryse vir alle produkte. Gevolglik spaar selfs gespesialiseerde navorsingsinstellings met staatsbevele geld en skram weg van sulke pryse. Skyfies in 'n plastiekkas vir burgerlike gebruik is aansienlik goedkoper, maar dit is nie by gewilde verskaffers beskikbaar nie. Boonop is die kwaliteit van skyfies in 'n plastiekhouer, lyk dit my, slegter as "goud". Ek kon byvoorbeeld nie die K1BE128QI-beheerder op 40MHz laat loop sonder om die flitsvertraging-instelling te verhoog nie. Terselfdertyd het die temperatuur van hierdie beheerder tot 50-1986C gestyg. Maar die 1BE128T ("goue") beheerder het op XNUMX MHz begin sonder bykomende instellings en het koud gebly. Hy is regtig goed.

Ontwikkeling van 'n ontfoutingsbord vir K1986BE1QI (lugvaart)
"Goud" mikrobeheerder 1986BE1T, (c) Milandr

Ek was gelukkig dat die mikrobeheerder in 'n plastiekhouer steeds by die kleinhandel by LDM Systems gekoop kan word, en alle stroombane is vrylik beskikbaar. Die slegte ding is dat op die webwerf op die foto van die kontroleerder 'n merkie sigbaar is wat sê dat dit die 4de hersiening van 2014 is, m.a.w. met gebreke. Ek het lank gedink – om te koop of nie te koop nie. So het etlike jare verbygegaan...

Die idee om 'n ontfoutingsbord te skep, het nêrens verdwyn nie. Geleidelik het ek al die vereistes gevorm en gedink hoe om dit alles op een bord te plaas, sodat dit kompak en nie duur sou wees nie. Terselfdertyd het ek die ontbrekende komponente by die Chinese bestel. Ek was nie haastig nie – ek het alles vir myself gedoen. Chinese verskaffers is berug vir slordigheid – ek moes dieselfde ding op verskillende plekke bestel om alles te kry wat ek nodig gehad het. Boonop het sommige van die geheueskyfies tweedehands geblyk te wees - duidelik gesoldeer van stukkende toestelle. Dit het my later getref.

Om 'n mikrobeheerder Milandr K1986BE1QI (lugvaart) te koop is nie 'n maklike taak nie. In dieselfde Chip and Dip-winkel, in die afdeling "Positions to order" het ek net K1986BE92QI vir 740 roebels gevind, maar dit het my nie gepas nie. Die enigste opsie is om 'n nie-vars hersiening van LDM-Systems te koop vir 2000 roebels. Aangesien ek nêrens anders 'n plaasvervanger kon kry nie, het ek besluit om te koop wat was. Tot my aangename verrassing het hulle vir my 'n splinternuwe Desember 2018 vrystelling kontroleerder verkoop, hersiening 6+ (1820). En die webwerf het nog 'n ou foto, en op die oomblik van skryf is die kontroleerder nie beskikbaar nie ...

Ontwikkeling van 'n ontfoutingsbord vir K1986BE1QI (lugvaart)
Mikrobeheerder K1986BE1QI (lugvaart) in tegnologiese verpakking, (c) Foto deur die skrywer

Belangrikste tegniese spesifikasies van my ontwikkelingsraad MDB1986 volgende:

  • ingeboude debugger-programmeerder versoenbaar met J-Link en CMSIS-DAP;
  • 4Mbit statiese geheue (256k x 16, 10 ns);
  • flitsgeheueskyfie 64Mbit, Winbond 25Q64FVSIG;
  • RS-232-koppelvlak-senderontvanger met RTS- en CTS-lyne;
  • koppelvlakke en verbindings vir Ethernet, USB, CAN;
  • 7-segment vertoonbeheerder MAX7221;
  • penkoppelaar om met MCIO (MIL_STD_1553) en ARINC429 te werk;
  • fototransistor Everlight PT17-21C;
  • vyf gekleurde LED's, 'n terugstelknoppie en twee gebruikersknoppies;
  • dit word aangedryf deur 'n USB-poort van 5 volt;
  • gedrukte stroombaan afmetings 100 x 80, mm

Ek het van die borde van die STM-Discovery-reeks gehou omdat hulle 'n ingeboude programmeerder-ontfouter het - ST-Link. Die eie ST-Link werk net met STMicroelectronics-beheerders, maar 'n paar jaar gelede het dit moontlik geword om die firmware in ST-Link op te dateer en die SEGGER J-Link OB (aan boord) Ontfouter te kry. Wettiglik is daar 'n beperking om so 'n ontfouter slegs met STMicroelectronics-borde te gebruik, maar in werklikheid is die potensiaal nie beperk nie. Dus, met J-Link OB, kan jy 'n ingeboude programmeerder-ontfouter op die ontfoutbord hê. Ek neem kennis dat die LDM-Systems-produkte die CP2102 (Usb2Uart)-omskakelaar gebruik, wat net kan flits.

Ontwikkeling van 'n ontfoutingsbord vir K1986BE1QI (lugvaart)
STM32F103C8T6 mikrobeheerders, werklik en nie so nie, (c) Foto deur die skrywer

Dit was dus nodig om die oorspronklike STM32F103C8T6 te koop, aangesien handelsmerk-firmware nie korrek met die kloon sal werk nie. Ek het hierdie tesis getwyfel en besluit om die CS32F103C8T6-beheerder van die Chinese maatskappy CKS te probeer. Ek het geen klagtes oor die beheerder self nie, maar die eie ST-Link-firmware het nie daarin gewerk nie. J-Link het gedeeltelik gewerk - die USB-toestel is opgespoor, maar die programmeerder het nie sy funksies verrig nie en het voortdurend daaraan herinner dat dit "defektief" was.

Ontwikkeling van 'n ontfoutingsbord vir K1986BE1QI (lugvaart)
Fout wanneer die ontfouter op 'n nie-oorspronklike beheerder uitgevoer word

Ek het nie hieroor kalmeer nie en het eers die firmware geskryf vir die flikker van die LED, en toe die IDCODE-versoek geïmplementeer deur die JTAG-protokol te gebruik. Die ST-Link-programmeerder wat ek op die Discovery-bord gehad het en die ST-Link Utility-program het CS32F103C8T6 sonder probleme geflits, en gevolglik het ek seker gemaak dat my bord werk. Tot my vreugde het die teikenbeheerder K1986BE1QI (lugvaart) vrolik sy IDCODE oor die TDO-lyn uitgereik.

Ontwikkeling van 'n ontfoutingsbord vir K1986BE1QI (lugvaart)
Ossillogram van die TDO-seinlyn met IDCODE-gekodeerde reaksie, (c) Foto deur die skrywer

Ontwikkeling van 'n ontfoutingsbord vir K1986BE1QI (lugvaart)
Die SWD-poort het dus handig te pas gekom om die ontfouter self te ontfout en IDCODE na te gaan

Daar was 'n opsie met 'n ontfouter CMSIS-DAP (Debug Access Port). Om 'n projek uit ARM-bronne te bou is nie 'n maklike taak nie, ek het die projek van geneem X893, en toe probeer ek ook DAP42. Ongelukkig het Keil uVision vasgeval en wou nie saam met hulle werk nie. As gevolg hiervan het ek die ontfouterskyfie vervang met 'n eie STM32F103C8T6 en het nooit na hierdie probleem teruggekeer nie.

Ontwikkeling van 'n ontfoutingsbord vir K1986BE1QI (lugvaart)
Suksesvolle werking van die ingeboude ontfouter J-Link STLink V2

Toe al die sleutelkomponente van die toekomstige ontfoutingsbord beskikbaar was, het ek by Eagle CAD ingekom en gevind dat hulle nie in die biblioteek van elemente was nie. Daar is nêrens om heen te gaan nie – ek moes hulle self teken. Terselfdertyd het ek sitplekke vir die geheue gemaak, die HanRun-aansluiting vir Ethernet, en rame vir die resistors en kapasitors bygevoeg. Die projeklêer en komponentbiblioteek kan gevind word Ek het dit op GitHub.

Skematiese diagram van die MDB1986-ontfoutbordOntwikkeling van 'n ontfoutingsbord vir K1986BE1QI (lugvaart)

Die bord word aangedryf deur 'n 5 volt GS-bron vanaf die USB-poort. Daar is twee USB Type-B-poorte op die bord. Een is vir die programmeerder, die tweede is vir die K1986BE1QI-beheerder. Die direksie kan vanaf enige van hierdie bronne of albei gelyktydig werk. Die eenvoudigste lasaanpassing en beskerming van kraglyne word geïmplementeer op Schottky-diodes, in die D2 en D3 (SS24) stroombane. Ook op die diagram kan jy selfherstellende versmeltings F1 en F2 by 500mA sien. Die seinlyne van die USB-poort word deur die USBLC6-2SC6-diodesamestelling beskerm.

Die ST-Link-ontfouter-programmeerderkring is aan baie bekend, dit kan gevind word in die dokumentasie vir die STM32-Ontdekkingsborde en ander bronne. Vir die primêre firmware van die ST-Link / J-Link-OB / DAP-kloon (opsioneel), het ek die SWDIO (PA13), SWCLK (PA14), GND-lyne uitgebring. Baie gebruik UART vir firmware en word gedwing om die BOOT jumpers te trek. Maar SWD is vir my geriefliker, behalwe dat hierdie protokol ontfouting toelaat.

Byna alle komponente van die bord word aangedryf deur 3.3 volt, wat van die AMS1117-3.3 spanningsreguleerder kom. Om elektromagnetiese interferensie en stroomstuwings te onderdruk, word LC-filters van kapasitors en smoorspoele van die BLM31PG-reeks gebruik.

Afsonderlik is dit die moeite werd om die MAX7 7221-segment-skermbestuurder te noem. Volgens die spesifikasie is die aanbevole kragtoevoer van 4 tot 5.5 volt, en die hoë seinvlak (logiese een) is nie minder nie as 3.5V (0.7 x VCC), wanneer dit deur 5V aangedryf word. Vir die K1986BE1QI-beheerder (lugvaart) stem die uitset van 'n logiese eenheid ooreen met 'n spanning van 2.8 tot 3.3V. Dit is duidelik dat daar 'n wanverhouding in seinvlakke is wat normale werking kan ontwrig. Ek het besluit om die MAX7221 van 4V aan te dryf en die seinvlakke te verlaag na 2.8V (0.7 x 4 = 2.8). Om dit te doen, word 'n diode D4 (RS1A of FR103) in serie in die drywerkragkring geïnstalleer. Die totale spanningsval is 0.9V (0.3V Schottky-diode en 0.6V-diode), en alles werk.

Die meeste poorte op die K1986BE1QI mikrobeheerder (lugvaart) is versoenbaar met seine tot 5V. Daarom veroorsaak die gebruik van die MCP2551 CAN-senderontvanger, wat ook vanaf 5V werk, nie probleme nie. Die diagram wys die MAX232-skyfie as die RS-3232-senderontvanger, maar ek het eintlik SN65C3232D van Texas Instruments gebruik, want dit werk vanaf 3.3V en bied spoed tot 1Mbit/s.

Daar is 4 kwartsresonators op die bord - een vir die ontfouter (8 MHz) en drie vir die teikenmikrobeheerder K1986BE1QI (lugvaart) met nominale waardes van 32.768 kHz, 16 MHz, 25 MHz. Dit is nodige komponente, want. die parameters van die ingeboude RC-generator is in 'n wye reeks van 6 tot 10 MHz. Die frekwensie van 25 MHz word benodig vir die werking van die ingeboude Ethernet-beheerder. Om een ​​of ander rede meld Milandra se webwerf (dalk per ongeluk) dat daar geen Ethernet in die plastiekkas is nie. Maar ons sal staatmaak op die spesifikasie en feite.

'n Belangrike aansporing vir die skep van jou eie ontfoutingsbord was die geleentheid om met 'n eksterne EBC (eksterne busbeheerder) stelselbus te werk, wat in wese 'n parallelle poort is. Die K1986BE1QI mikrobeheerder (lugvaart) laat jou toe om eksterne geheueskyfies en randtoestelle, soos ADC, FPGA, ens. Die moontlikhede van die eksterne stelselbus is redelik groot - jy kan met 8-bis, 16-bis en 32-bis statiese RAM, ROM en NAND Flash werk. Vir die lees/skryf van 32-bis data, kan die kontroleerder outomaties 2 ooreenstemmende bewerkings vir 16-bis mikrobane uitvoer, en 8 bewerkings vir 4-bis ene. Dit is duidelik dat 'n 32-bis I/O-bewerking die vinnigste sal wees met 'n 32-bis databus. Die nadele sluit in die behoefte dat die program met 32-bis data werk, en die bord sal 32 spore moet lê.

Ontwikkeling van 'n ontfoutingsbord vir K1986BE1QI (lugvaart)
SRAM-skyfies, gebruik (raai watter een is defekt)

'n Gebalanseerde oplossing is om 16-bis geheue skyfies te gebruik. Ek het geëindig met Integrated Silicon Solutions Inc.-skyfies. (ISSI IS61LV25616AL, 16x256k, 10ns, 3.3V). Natuurlik het die maatskappy "Milandr" sy eie statiese geheueskyfies reeks 1645RUmaar hulle is te duur en nie beskikbaar nie. Alternatiewelik is daar pen-versoenbare Samsung K6R4016V1D. Ek het vroeër genoem dat die IC's tweedehands was en die kopie wat ek geïnstalleer het, was aanvanklik wankelend en wisselvallig op die 15de datalyn. Dit het 'n paar dae geneem om hardewarefoute te vind, en hoe groter was die gevoel van tevredenheid toe ek die beskadigde skyfie met 'n werkende een vervang het. Hoe dit ook al sy, die spoed van werk met eksterne geheue laat veel te wense oor.

Eksterne bus en alleenstaande modusDie K1986BE1QI mikrobeheerder (lugvaart) het 'n unieke StandAlone-modus, wat ontwerp is vir direkte eksterne toegang tot Ethernet- en MCIO-beheerders (MIL_STD_1553) via 'n eksterne bus, terwyl die kern in die terugsteltoestand is, d.w.s. nie gebruik nie. Hierdie modus is nuttig vir verwerkers en FPGA's wat nie Ethernet en/of MCIO het nie.
Die verbindingsdiagram is soos volg:

  • databus MCU(D0-D15) => SRAM(I/O0-I/O15),
  • adresbus MCU(A1-A18) => SRAM(A0-A17),
  • MCU beheer(nWR,nRD,PortC2) => SRAM (WE,OE,CE),
  • SRAM (UB, LB) word deur 'n weerstand verbind of na grond getrek.

Die CE-lyn word opgetrek na krag deur 'n weerstand, die MCU byte haal penne (BE0-BE3) word nie gebruik nie. Onder die bederf gee ek die kode vir die inisiasie van die poorte en die eksterne busbeheerder.

Inisialisering van poorte en EBC-beheerder (eksterne busbeheerder)

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

Die mikrobeheerder in die LQFP-144-pakket en die geheue in die TSOP-44-pakket het baie gekoppelde penne en neem baie PCB-spasie op. Met ondervinding in die oplossing van optimaliseringsprobleme in die veld van ekonomie, was dit vir my duidelik dat hierdie mikrobane in die eerste plek op die bord geplaas moet word. In verskeie bronne het ek afgekom op lofwaardige resensies oor CAD TopoR (Topologiese Roeter). Ek het die proefweergawe afgelaai en kon my projek slegs vanaf Eagle CAD daarheen uitvoer toe ek byna alle komponente verwyder het. Ongelukkig het die TopoR-program my nie gehelp om eers 10 elemente op die bord te plaas nie. Eerstens is al die komponente in 'n hoek geplaas en dan langs die rand gerangskik. Hierdie opsie het my nie bevredig nie, en ek het 'n lang tyd spandeer om die bord met die hand in die bekende Eagle CAD-omgewing op te spoor.

Seefdruk is 'n belangrike element van die gedrukte stroombaan. Op die ontfoutingsbord moet daar nie net handtekeninge vir elektroniese komponente wees nie, maar alle verbindings moet onderteken word. Op die agterkant van die bord het ek die tabelle-herinneringe geplaas met die funksies van die beheerderpoorte (hoof, alternatiewe, oorskryf, werklik). Ek het die vervaardiging van gedrukte stroombaanborde in China in die bekende PCBWay-kantoor bestel. Ek sal nie prys nie, want die kwaliteit is goed. Hulle kan beter doen met kleiner toleransies, maar vir 'n fooi.

Ontwikkeling van 'n ontfoutingsbord vir K1986BE1QI (lugvaart)
Vervaardigde gedrukte stroombaanborde MDB1986, (c) Foto deur die skrywer

Ek moes die komponente "op die knie" met 'n 40-watt-soldeerbout en POS-61-soldeer los soldeer, want ek soldeer selde, 1-2 keer per jaar, en die soldeerpasta het opgedroog. Ek moes ook die Chinese CS32F103 kontroleerder na die oorspronklike STM32F103 verander, en dan ook die geheue vervang. Oor die algemeen is ek nou heeltemal tevrede met die resultaat, hoewel ek nog nie die werking van RS-232 en CAN nagegaan het nie.

Ontwikkeling van 'n ontfoutingsbord vir K1986BE1QI (lugvaart)
Ontfoutbord MDB1986 in werking — skyn en warm, (с) Foto deur die skrywer

Op die webwerf "Milandra" kan jy genoeg vind leermateriaal vir leerbeheerders 1986BE9-reeks (Cortex-M3-kern), maar vir die K1986BE1QI (lugvaart) mikrobeheerder, sien ek niks daar nie. Nadat ek die materiaal wat daar gepubliseer is, handleidings en laboratoriumwerk vir universiteite nagegaan het, is ek bly dat personeel regdeur die land opgelei word om met Russiese beheerders te werk. Die meeste van die opleidingsmateriaal is voorberei om te werk met I / O-poorte, timers, ADC, DAC, SPI, UART. Verskillende IDE's word gebruik (Keil, IAR, CodeMaster). Iewers programmeer hulle met behulp van CMSIS-registers, en iewers gebruik hulle die MDR-biblioteek. Hulpbron moet genoem word Begin Milandr, wat baie artikels van praktiserende programmeerders bevat. En natuurlik moet ons nie vergeet nie Forum Milandra.

Dink aan MilandraMikro-elektronika in Rusland is besig om te ontwikkel, en die maatskappy "Milandr" speel 'n belangrike rol in hierdie proses. Nuwe interessante mikrobeheerders verskyn, byvoorbeeld 1986BE81T en Elektrosila met SpaceWire- en MKIO-koppelvlakke (dieselfde as in 1986BE1 en moontlik met dieselfde probleme), ens. Maar vir gewone studente, onderwysers en siviele ingenieurs is dit nie realisties om sulke mikrobane te koop nie. Dit beteken dat die ingenieursgemeenskap nie vinnig die foute en probleme van hierdie skyfie sal kan identifiseer nie. Dit lyk vir my dat dit eers nodig is om mikrokringe in 'n plastiekkas te vervaardig, dit aan alle belanghebbende partye te versprei, en slegs na goedkeuring (Latyns approbatio - goedkeuring, erkenning) kan spesialiste 'n hersiening in 'n keramiek-metaalkas voorberei met beskerming teen alles verskriklike faktore. Ek hoop dat ons in die nabye toekoms ALMAL tevrede sal wees met die nuwe projekte wat by die uitstallings aangekondig is.
Enigiemand kan die ontfoutbord wat ek ontwikkel het in die opvoedkundige proses herhaal, wysig en gebruik. Eerstens het ek vir myself 'n bord gemaak, maar dit het so goed uitgekom dat Ek het besluit om met almal te deel.

K1986BE1QI (lug) is 'n baie interessante beheerder met unieke koppelvlakke wat in universiteite gebruik kan word om studente te onderrig. Ek dink dat na die regstelling van die foute wat in die kontroleerder geïdentifiseer is en die slaag van sertifiseringstoetse, die kontroleerder in die ware sin van die woord sal vlieg!

Bron: will.com

Voeg 'n opmerking