Untwikkeling fan in ûntwikkelingsboerd foar K1986BE1QI (loftfeart)

Untwikkeling fan in ûntwikkelingsboerd foar K1986BE1QI (loftfeart)

Ferskate jierren lyn kaam ik yn 'e kunde mei Russyske mikrocontrollers út Milander. It wie 2013, doe't yngenieurs de earste resultaten fan it Federal Target Program "Untwikkeling fan elektroanyske komponintbasis en radioelektronika" foar 2008-2015 krêftich besprutsen. Op dat stuit wie de K1986BE9x-controller (Cortex-M3-kearn) al frijjûn, en de 1986BE1T-controller (Cortex-M1-kearn) wie krekt ferskynd. Yn it plestik gefal, LQFP-144, hie it de oantsjutting K1986BE1QI (loftfeart) yn 'e dokumintaasje, en op' e chip sels de oantsjutting MDR32F1QI. Op 'e webside fan' e fabrikant hat it it efterheaksel "avia", om't it ynterfaces hat spesifyk foar de fleantúchyndustry (ARINC 429, MIL_STD_1553).

Ferrassend, yn 'e tiid fan' e distribúsje fan dizze kontrôlers hat it Milander-bedriuw debuggen-kits en in bibleteek fan subroutines makke foar it wurkjen mei perifeare apparaten, "mar sûnder ekstra garânsjes of ferplichtingen oangeande de korrektheid fan 'e biblioteek." De bibleteek is fergelykber mei de Standard Peripheral Library fan STMicroelectronics. Yn 't algemien hawwe alle ARM-controllers boud op' e Cortex-M-kearn in protte mienskiplik. Om dizze reden gie de kunde mei de nije Russyske controllers fluch. En foar dyjingen dy't merkte debuggen kits kochten, waard technyske stipe levere tidens gebrûk.

Untwikkeling fan in ûntwikkelingsboerd foar K1986BE1QI (loftfeart)
Debug kit foar mikrocontroller 1986BE1T, © Milander

Lykwols, yn 'e rin fan' e tiid, "bernesykten" fan nije mikrocircuits en biblioteken begûn te ferskinen. Testfoarbylden fan 'e firmware wurken sûnder sichtbere problemen, mar mei signifikante oanpassingen barde crashes en flaters. De earste "swallow" yn myn ûnderfining wie ûnferklearbere mislearrings yn 'e operaasje fan' e CAN-controller. In jier letter waard in probleem mei de module ûntdutsen op 'e 1986BE1T (loftfeart) controller fan in betide revyzje MKIO (multiplex ynformaasje útwikselingskanaal). Yn 't algemien wiene alle ferzjes fan dizze mikrocontrollers oant 2016 fan beheind gebrûk. In protte tiid en senuwen gienen yn it identifisearjen fan dizze problemen, wêrfan befêstiging no te finen is flaterlisten (Errata).

In ûnnoflike eigenskip wie dat it nedich wie om te wurkjen en omgean mei flaters net op debuggen boards, mar op prototype boards fan apparaten dy't waarden pland foar serial fabryk produksje. D'r wie meastentiids neat, útsein de JTAG-ferbining. Ferbine mei in logyske analysator wie lestich en ûngemaklik, en d'r wiene meastentiids gjin LED's of skermen. Om dizze reden ferskynde it idee om myn eigen debuggenboerd te meitsjen yn myn holle.

Oan 'e iene kant wiene d'r op 'e merk branded debuggen-kits, lykas prachtige boards fan it bedriuw LDM-Systems út Zelenograd. Oan 'e oare kant binne de prizen foar dizze produkten skriklik, en de basisfunksjonaliteit sûnder útwreidingskaarten foldocht net oan ferwachtingen. In boerd mei in soldered controller en in pin Connector is fan gjin belang foar my. En mear nijsgjirrige boards binne djoer.

Untwikkeling fan in ûntwikkelingsboerd foar K1986BE1QI (loftfeart)
Untwikkelingsboerd MILANDR LDM-HELPER-K1986BE1QI-FULL, © LDM Systems

It bedriuw Milander hat in unyk priisbelied en marketing. Dat, it is mooglik om fergese samples fan guon mikrocircuits te krijen, mar dit is allinich beskikber foar juridyske entiteiten en is ferbûn mei in burokratyske syktocht. Yn 't algemien binne mikrocircuits yn in metaal-keramyske koffer goud yn' e letterlike en figuerlike betsjutting. Bygelyks, in controller 1986BE1T kostet fan 14 oant 24 tûzen roebel yn Moskou. De statyske ûnthâldchip 1645RU6U kostet fan 15000 roebel. En dit is de priisoarder foar alle produkten. Dêrtroch besparje sels spesjalisearre ûndersyksynstituten mei oerheidsopdrachten jild en skodzje foar sokke prizen. Mikrocircuits yn in plestik koffer foar sivile gebrûk binne signifikant goedkeaper, mar se binne net beskikber fan populêre leveransiers. Derneist is de kwaliteit fan mikrocircuits yn in plastykkast, liket my, slimmer as "gouden". Bygelyks, ik koe de K1986BE1QI-controller net op 128 MHz útfiere sûnder de flash-latency-parameter te ferheegjen. Tagelyk is de temperatuer fan dizze kontrôler omheech nei 40-50C. Mar de 1986BE1T ("gouden") controller begon op 128 MHz sûnder ekstra ynstellingen en bleau kâld. Hy is echt goed.

Untwikkeling fan in ûntwikkelingsboerd foar K1986BE1QI (loftfeart)
"Gouden" mikrokontroller 1986BE1T, (c) Milander

Ik wie gelok dat in microcontroller yn in plestik gefal kin noch wurde oanskaft by retail út LDM Systems, en alle board diagrammen binne frij beskikber. It minne ding is dat op 'e webside yn' e foto fan 'e kontrôler in markearring sjen kinne dy't seit dat dit de 4e revyzje fan 2014 is, d.w.s. mei gebreken. Ik tocht foar in lange tiid oft te keapjen of net te keapjen. Ferskate jierren ferrûn sa ...

It idee fan it meitsjen fan in debugboerd is nergens ferdwûn. Stadichoan foarme ik alle easken en tocht oer hoe't ik it allegear op ien boerd pleatse soe, sadat it kompakt en net djoer wêze soe. Tagelyk bestelde ik de ûntbrekkende komponinten fan 'e Sinezen. Ik hie gjin haast - ik die alles foar mysels. Sineeske leveransiers binne berucht slordig - ik moast itselde ding bestelle fan ferskate plakken om alles te krijen wat ik nedich wie. Boppedat die bliken dat guon fan 'e ûnthâld chips brûkt wurde - blykber soldered út brutsen apparaten. Dit kaam my letter werom te efterfolgjen.

Keapje in mikrocontroller Milander K1986BE1QI (lucht) is gjin maklike taak. Yn deselde Chip and Dip-winkel, yn 'e seksje "Items to order" fûn ik allinich K1986BE92QI foar 740 roebel, mar it paste my net. De ienige opsje is om in net-ferske revyzje te keapjen fan LDM-Systems foar 2000 roebel. Sûnt ik koe net fine in ferfanger earne oars, Ik besletten om te keapjen wat ik hie. Ta myn noflike ferrassing ferkochten se my in gloednije controller produsearre yn desimber 2018, revyzje 6+ (1820). Mar d'r is noch in âlde foto op 'e side, en op it stuit fan skriuwen is de controller net beskikber ...

Untwikkeling fan in ûntwikkelingsboerd foar K1986BE1QI (loftfeart)
Mikrokontroller K1986BE1QI (loftfeart) yn technologyske ferpakking, (c) Foto troch de auteur

Main technyske skaaimerken fan myn debug board MDB1986 it folgjende:

  • ynboude debugger-programmeur, kompatibel mei J-Link en CMSIS-DAP;
  • statysk ûnthâld 4Mbit (256k x 16, 10 ns);
  • flash ûnthâld chip 64Mbit, Winbond 25Q64FVSIG;
  • RS-232 ynterface transceiver mei RTS en CTS rigels;
  • Schnittstellen en Anschlüsse foar Ethernet, USB, CAN;
  • MAX7 7221-segment display controller;
  • pin Connector foar wurkjen mei MKIO (MIL_STD_1553) en ARINC429;
  • fototransistor Everlight PT17-21C;
  • fiif kleur LEDs, in reset knop en twa brûker knoppen;
  • Netzteil oan de USB-poarte is 5 volt;
  • printe circuit board dimensions 100 x 80, mm

Ik mocht graach de STM-Discovery rige boards omdat se hawwe in ynboude programmer-debugger - ST-Link. Branded ST-Link wurket allinich mei controllers fan STMicroelectronics, mar in pear jier lyn waard it mooglik om de firmware yn ST-Link te aktualisearjen en SEGGER J-Link OB (onboard) Debugger te krijen. Juridysk is d'r in beheining foar it brûken fan sa'n debugger allinich mei STMicroelectronics-boerden, mar feitlik is it potinsjeel net beheind. Sa kinne jo, mei in J-Link OB, in ynboude programmer-debugger hawwe op it debuggenboerd. Ik konstatearje dat LDM-Systems produkten brûke de CP2102 (Usb2Uart) converter, dat kin allinnich flash.

Untwikkeling fan in ûntwikkelingsboerd foar K1986BE1QI (loftfeart)
STM32F103C8T6 mikrocontrollers, echt en net sa echt, (c) Foto troch de auteur

Dus, it wie nedich om de orizjinele STM32F103C8T6 te keapjen, om't proprietêre firmware net goed wurket mei de kloon. Ik twifele oan dizze proefskrift en besleat de CS32F103C8T6-controller te besykjen fan it Sineeske bedriuw CKS. Ik haw gjin klachten oer de controller sels, mar de proprietêre ST-Link-firmware wurke der net yn. J-Link wurke foar in part - it USB-apparaat waard ûntdutsen, mar de programmeur die syn funksjes net út en herinnerde hieltyd dat it "defekt" wie.

Untwikkeling fan in ûntwikkelingsboerd foar K1986BE1QI (loftfeart)
Flater by it útfieren fan de debugger op in net-orizjinele controller

Ik wie net tefreden mei dit en skreau earst de firmware foar it knipperjen fan de LED, en ymplementearre doe it IDCODE-fersyk mei it JTAG-protokol. De ST-Link-programmeur, dy't ik op it Discovery board hie, en it ST-Link Utility-programma flitsen sûnder problemen CS32F103C8T6. Op it lêst wie ik derfan oertsjûge dat myn board wurke. Ta myn wille joech de doelkontrôler K1986BE1QI (loftfeart) fleurich syn IDCODE út fia de TDO-line.

Untwikkeling fan in ûntwikkelingsboerd foar K1986BE1QI (loftfeart)
Oscillogram fan in TDO-sinjaalline mei in kodearre IDCODE-antwurd, (c) Foto troch de skriuwer

Untwikkeling fan in ûntwikkelingsboerd foar K1986BE1QI (loftfeart)
Sa kaam de SWD-poarte fan pas foar it debuggen fan de debugger sels en it kontrolearjen fan IDCODE

Der wie in opsje mei in debugger CMSIS-DAP (Debug Access Port). It bouwen fan in projekt út ARM boarnen is net in maklike taak, Ik naam it projekt út X893, en doe ik besocht DAP42. Spitigernôch befrear Keil uVision en woe net mei har wurkje. As gefolch haw ik de debugger-chip ferfongen troch in proprietêre STM32F103C8T6 en kaam noait werom nei dit probleem.

Untwikkeling fan in ûntwikkelingsboerd foar K1986BE1QI (loftfeart)
Súksesfol operaasje fan de ynboude debugger J-Link STLink V2

Doe't alle wichtige komponinten fan it takomstige ûntwikkelingsboerd beskikber wiene, gie ik yn Eagle CAD en ûntduts dat se net yn 'e elemintbibleteek wiene. Der wie nearne hinne - ik moast se sels tekenje. Tagelyk makke ik mounting spots foar ûnthâld, in HanRun Connector foar Ethernet, en tafoege frames foar wjerstannen en capacitors. De projektbestân en komponintbibleteek kinne fûn wurde op myn GitHub.

Skematysk diagram fan it MDB1986-ûntwikkelingsboerdUntwikkeling fan in ûntwikkelingsboerd foar K1986BE1QI (loftfeart)

It bestjoer wurdt oandreaun troch in 5 volt DC boarne krigen fan de USB haven. D'r binne yn totaal twa USB Type-B-poarten op it boerd. Ien is foar de programmer, de twadde is foar de K1986BE1QI-controller. It bestjoer kin operearje fan ien fan dizze boarnen of beide tagelyk. De ienfâldichste load regeljouwing en macht line beskerming wurde útfierd mei help fan Schottky diodes, yn circuit D2 en D3 (SS24). Ek yn it diagram kinne jo sjen sels-herstellende lont F1 en F2 by 500 mA. De sinjaal rigels fan de USB haven wurde beskerme troch in USBLC6-2SC6 diode gearstalling.

It ST-Link-debugger-programmer-sirkwy is bekend foar in protte; it kin fûn wurde yn 'e dokumintaasje foar STM32-Discovery-boards en oare boarnen. Foar de earste firmware fan 'e ST-Link / J-Link-OB / DAP-kloon (opsjoneel), brocht ik de rigels SWDIO (PA13), SWCLK (PA14), GND út. In protte minsken brûke UART foar firmware en wurde twongen om de BOOT-jumpers te lûken. Mar ik fyn SWD handiger, en dit protokol soarget foar debuggen.

Hast alle ûnderdielen fan it bestjoer wurde oandreaun troch 3.3 volt, dy't komme út de AMS1117-3.3 voltage regulator. Om elektromagnetyske ynterferinsje en stroomsteuringen te ûnderdrukken, wurde LC-filters fan kondensatoren en chokes fan 'e BLM31PG-searje brûkt.

Apart is it de muoite wurdich te neamen de MAX7 7221-segment display driver. Neffens de spesifikaasje is de oanrikkemandearre stroomfoarsjenning fan 4 oant 5.5 volt, en it hege sinjaalnivo (logyske ien) is op syn minst 3.5V (0.7 x VCC), mei in 5V-oanfier. Foar de K1986BE1QI (loftfeart) controller komt de útfier fan in logyske ienheid oerien mei in spanning fan 2.8 oant 3.3V. Fansels is d'r in mismatch tusken de sinjaalnivo's dy't kinne ynterferearje mei normale operaasje. Ik besleat de MAX7221 op 4V te betsjinjen en de sinjaalnivo's te ferminderjen nei 2.8V (0.7 x 4 = 2.8). Om dit te dwaan, diode D4 (RS1A of FR103) wurdt ynstallearre yn searjes mei de bestjoerder macht circuit. De totale voltage drop is 0.9V (Schottky diode 0.3V en diode 0.6V), en alles wurket.

De measte havens fan 'e K1986BE1QI (loftfeart) mikrocontroller binne kompatibel mei sinjalen oant 5V. Dêrom is d'r gjin probleem mei it brûken fan de MCP2551 CAN-transceiver, dy't ek wurket op 5V. De MAX232-chip wurdt oanjûn as in RS-3232-transceiver yn it diagram, mar feitlik haw ik SN65C3232D fan Texas Instruments brûkt, om't it wurket fan 3.3V en leveret faasjes oant 1Mbit / s.

It bestjoer befettet 4 kwartsresonators - ien foar de debugger (8 MHz) en trije foar de doelmikrocontroller K1986BE1QI (loftfeart) mei wurdearrings fan 32.768 kHz, 16 MHz, 25 MHz. Dit binne needsaaklike komponinten, om't De parameters fan 'e ynboude RC-oscillator binne binnen in breed berik fan 6 oant 10 MHz. In frekwinsje fan 25 MHz is nedich foar de wurking fan 'e ynboude Ethernet-controller. Om ien of oare reden stelt de webside fan Milandra (miskien by fersin) dat de plestik saak gjin Ethernet hat. Mar wy sille fertrouwe op de spesifikaasje en feiten.

In wichtige stimulâns foar it meitsjen fan myn eigen ûntwikkeling board wie de mooglikheid om te wurkjen mei de eksterne systeem bus EBC (eksterne bus controller), dat is yn wêzen in parallel haven. De mikrocontroller K1986BE1QI (fleantúch) lit jo ferbine en wurkje mei eksterne ûnthâldchips en perifeare apparaten, bygelyks ADC's, FPGA's, ensfh. De mooglikheden fan 'e eksterne systeembus binne frij grut - jo kinne wurkje mei 8-bit, 16-bit en 32-bit statyske RAM, ROM en NAND Flash. Om 32-bit gegevens te lêzen / skriuwe, kin de controller automatysk 2 oerienkommende operaasjes útfiere foar 16-bit chips, en 8 operaasjes foar 4-bit chips. Fansels sil in 32-bit I / O-operaasje it rapste foltôge wurde mei in 32-bit databus. De neidielen befetsje de needsaak foar it programma om te operearjen mei 32-bit gegevens, en it bestjoer sil moatte lizze 32 tracks.

Untwikkeling fan in ûntwikkelingsboerd foar K1986BE1QI (loftfeart)
Statyske RAM-chips, brûkt (riede hokker defekt is)

In lykwichtige oplossing is in gebrûk 16-bit ûnthâld chips. Ik haw barde Integrated Silicon Solutions Inc.-chips op foarried. (ISSI IS61LV25616AL, 16 x 256k, 10 ns, 3.3V). Fansels hat it Milander-bedriuw syn eigen statyske ûnthâldchips rige 1645RU, mar se binne te djoer en net beskikber. As alternatyf, der binne pin-kompatible Samsung K6R4016V1D. Earder neamde ik dat de mikrocircuits die bliken te wurde brûkt en de kopy dy't ik ynstalleare joech yn earste ynstânsje mislearrings en chaotyske wearden yn 'e 15e gegevensline. It duorre ferskate dagen in fine hardware flaters, en hoe grutter it gefoel fan tefredenheid doe't ik ferfong de skansearre chip mei in wurkjende. Hoe dan ek, de snelheid fan wurkjen mei ekstern ûnthâld lit in protte te winskjen oer.

Eksterne bus en StandAlone modusDe mikrocontroller K1986BE1QI (fleantúch) hat in unike StandAlone-modus, dy't ûntwurpen is foar direkte eksterne tagong ta Ethernet- en MKIO-controllers (MIL_STD_1553) fia in eksterne bus, mei de kearn yn 'e reset-state, d.w.s. net brûkt. Dizze modus is handich foar processors en FPGAs dy't gjin Ethernet en / of MKIO hawwe.
It ferbiningsdiagram is as folget:

  • databus MCU(D0-D15) => SRAM(I/O0-I/O15),
  • adresbus MCU(A1-A18) => SRAM(A0-A17),
  • kontrôle MCU(nWR,nRD,PortC2) => SRAM (WE,OE,CE),
  • SRAM (UB, LB) wurde ferbûn of lutsen nei de grûn troch in wjerstân.

De CE-line is ferbûn mei de stroomfoarsjenning fia in wjerstân; de pinnen foar sampling fan de MCU-byte (BE0-BE3) wurde net brûkt. Under de spoiler, Ik jou de koade foar inisjalisearjen fan de havens en de eksterne bus controller.

Inisjalisearjen fan havens en EBC-controller (eksterne buskontrôler)

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

De mikrokontroller yn it LQFP-144-pakket en it ûnthâld yn it TSOP-44-pakket hawwe in protte assosjearre pins en nimme in soad romte op it printe circuit board. Mei ûnderfining yn it oplossen fan optimalisaasjeproblemen op it mêd fan ekonomy, wie it my fanselssprekkend dat it nedich wie om dizze mikrocircuits earst op it boerd te pleatsen. Yn ferskate boarnen bin ik loflike resinsjes oer tsjinkommen CAD TopoR (Topologyske router). Ik ynladen de proefferzje en koe eksportearje myn projekt út Eagle CAD dêr pas neidat ik fuorthelle hast alle komponinten. Spitigernôch hat it TopoR-programma my net holpen om sels 10 eleminten op it boerd te pleatsen. Earst waarden alle komponinten yn in hoeke pleatst, en dan oan 'e râne arranzjearre. Ik wie net tefreden mei dizze opsje, en foar in lange tiid traced ik it bestjoer mei de hân yn 'e bekende Eagle CAD omjouwing.

In wichtich elemint fan in printe circuit board is silk-screen printing. It ûntwikkelingsboerd moat net allinich labels hawwe foar de elektroanyske komponinten, mar alle connectors moatte ek wurde labele. Op de efterkant fan it boerd ik pleatst tabellen mei de funksjes fan de controller havens (haad, alternatyf, oerskreaun, eigentlik). Ik bestelde de produksje fan printe circuit boards yn Sina út de bekende PCBWay kantoar. Ik sil it net priizgje om't de kwaliteit goed is. Se kinne dwaan better, mei strakkere tolerânsjes, mar foar in fergoeding.

Untwikkeling fan in ûntwikkelingsboerd foar K1986BE1QI (loftfeart)
Produsearre MDB1986 printe circuit boards, (c) Foto troch de skriuwer

Ik moast de komponinten "op myn knibbels" solderje mei in 40-watt soldering izer en POS-61 solder, om't ik selden solder, 1-2 kear yn 't jier, en de soldering paste wie droech. Ik moast ek feroarje de Sineeske CS32F103 controller oan de oarspronklike STM32F103, en dan ek ferfange it ûnthâld. Yn 't algemien bin ik no folslein tefreden mei it resultaat, hoewol ik de wurking fan RS-232 en CAN noch net kontrolearre.

Untwikkeling fan in ûntwikkelingsboerd foar K1986BE1QI (loftfeart)
MDB1986 debug board yn wurking - it skynt en waarmet, (c) Foto troch de skriuwer

Op de webside fan Milandra kinne jo genôch fine edukative materialen foar learen controllers rige 1986BE9 (Cortex-M3 kearn), mar foar de K1986BE1QI (loftfeart) microcontroller Ik sjoch neat dêr. Nei it besjen fan 'e materialen, hantliedingen en laboratoariumwurk foar universiteiten dy't dêr publisearre binne, bin ik bliid dat personiel yn it heule lân wurdt oplaat om te wurkjen mei Russyske kontrôlers. De measte trainingsmaterialen meitsje har tariede op it wurkjen mei I/O-poarten, timers, ADC, DAC, SPI, UART. Ferskillende IDE-ûntwikkelingsomjouwings wurde brûkt (Keil, IAR, CodeMaster). Earne programmearje se mei CMSIS-registers, en earne brûke se de MDR-bibleteek. Boarne moat wurde neamd Start Milandr, dy't in protte artikels befettet fan praktisearjende programmeurs. En, fansels, wy moatte net ferjitte oer Milandra forum.

Dacht oer MilandraMicroelectronics ûntwikkelet yn Ruslân, en it bedriuw Milander spilet in promininte rol yn dit proses. Nije nijsgjirrige mikrocontrollers ferskine, bygelyks, 1986BE81T en Elektrosila mei SpaceWire- en MKIO-ynterfaces (itselde as yn 1986BE1 en, mooglik, mei deselde problemen), ensfh. Mar gewoane studinten, leararen en sivile yngenieurs kinne sokke mikrocircuits net keapje. Dit betsjut dat de yngenieursmienskip net by steat is om flaters en problemen mei dizze chip fluch te identifisearjen. It liket my dat it earst needsaaklik is om mikrocircuits te produsearjen yn in plestik koffer, se te fersprieden oan alle belangstellenden, en nei goedkarring (Latynske approbatio - goedkarring, erkenning) troch spesjalisten, kinne se in revyzje tariede yn in metaal-keramyske koffer mei beskerming fan alle skriklike faktoaren. Ik hoopje dat wy yn 'e heine takomst ALLE bliid wêze sille mei de nije projekten dy't oankundige binne by de tentoanstellingen.
It debugboerd dat ik ûntwikkele kin wurde werhelle, wizige en brûkt troch elkenien yn it edukative proses. Earst haw ik it boerd foar mysels makke, mar dat kaam sa goed dat Ik besleat om te dielen mei elkenien.

K1986BE1QI (lucht) is in heul ynteressante controller mei unike ynterfaces dy't kinne wurde brûkt yn universiteiten om studinten te learen. Ik tink dat nei it korrigearjen fan de flaters identifisearre yn 'e controller en it trochjaan fan sertifisearringstests, de controller sil fleane yn' e wierste sin fan it wurd!

Boarne: www.habr.com

Add a comment