చాలా సంవత్సరాల క్రితం నేను మిలాండర్ నుండి రష్యన్ మైక్రోకంట్రోలర్లతో పరిచయం పొందాను. ఇది 2013, ఇంజనీర్లు 2008-2015కి సంబంధించిన ఫెడరల్ టార్గెట్ ప్రోగ్రామ్ "డెవలప్మెంట్ ఆఫ్ ఎలక్ట్రానిక్ కాంపోనెంట్ బేస్ మరియు రేడియో ఎలక్ట్రానిక్స్" యొక్క మొదటి ఫలితాలను తీవ్రంగా చర్చిస్తున్నారు. ఆ సమయంలో, K1986BE9x కంట్రోలర్ (కార్టెక్స్-M3 కోర్) ఇప్పటికే విడుదల చేయబడింది మరియు 1986BE1T కంట్రోలర్ (కార్టెక్స్-M1 కోర్) ఇప్పుడే కనిపించింది. ప్లాస్టిక్ కేసులో, LQFP-144, ఇది డాక్యుమెంటేషన్లో K1986BE1QI (ఏవియేషన్) హోదాను కలిగి ఉంది మరియు చిప్లోనే MDR32F1QI హోదాను కలిగి ఉంది. తయారీదారు వెబ్సైట్లో దీనికి "ఏవియా" అనే ప్రత్యయం ఉంది, ఎందుకంటే ఇది విమాన పరిశ్రమకు ప్రత్యేకమైన ఇంటర్ఫేస్లను కలిగి ఉంది (ARINC 429, MIL_STD_1553).
ఆశ్చర్యకరంగా, ఈ కంట్రోలర్ల పంపిణీ సమయంలో, మిలాండర్ కంపెనీ డీబగ్గింగ్ కిట్లను మరియు పెరిఫెరల్స్తో పనిచేయడానికి సబ్ట్రౌటిన్ల లైబ్రరీని సిద్ధం చేసింది, "కానీ లైబ్రరీ యొక్క ఖచ్చితత్వానికి సంబంధించి ఎటువంటి అదనపు హామీలు లేదా బాధ్యతలు లేకుండా." లైబ్రరీ STMicroelectronics నుండి స్టాండర్డ్ పెరిఫెరల్ లైబ్రరీని పోలి ఉంటుంది. సాధారణంగా, కార్టెక్స్-M కోర్పై నిర్మించిన అన్ని ARM కంట్రోలర్లు చాలా ఉమ్మడిగా ఉంటాయి. ఈ కారణంగా, కొత్త రష్యన్ కంట్రోలర్లతో పరిచయం త్వరగా కొనసాగింది. మరియు బ్రాండెడ్ డీబగ్గింగ్ కిట్లను కొనుగోలు చేసిన వారికి, ఉపయోగం సమయంలో సాంకేతిక మద్దతు అందించబడింది.
మైక్రోకంట్రోలర్ 1986BE1T కోసం డీబగ్ కిట్, © మిలాండర్
అయితే, కాలక్రమేణా, కొత్త మైక్రో సర్క్యూట్లు మరియు లైబ్రరీల "బాల్య వ్యాధులు" కనిపించడం ప్రారంభించాయి. ఫర్మ్వేర్ యొక్క పరీక్ష ఉదాహరణలు కనిపించే సమస్యలు లేకుండా పని చేశాయి, కానీ గణనీయమైన మార్పులు, క్రాష్లు మరియు లోపాలు సంభవించాయి. నా ఆచరణలో మొదటి "స్వాలో" అనేది CAN కంట్రోలర్ యొక్క ఆపరేషన్లో వివరించలేని వైఫల్యాలు. ఒక సంవత్సరం తర్వాత, మాడ్యూల్తో ఒక సమస్య ప్రారంభ పునర్విమర్శ యొక్క 1986BE1T (ఏవియేషన్) కంట్రోలర్లో కనుగొనబడింది.
అసహ్యకరమైన లక్షణం ఏమిటంటే, డీబగ్గింగ్ బోర్డులపై కాకుండా, సీరియల్ ఫ్యాక్టరీ ఉత్పత్తి కోసం ప్రణాళిక చేయబడిన పరికరాల ప్రోటోటైప్ బోర్డులపై పనిచేయడం మరియు లోపాలను పరిష్కరించడం అవసరం. సాధారణంగా అక్కడ JTAG కనెక్టర్ తప్ప మరేమీ ఉండదు. లాజిక్ ఎనలైజర్తో కనెక్ట్ చేయడం కష్టం మరియు అసౌకర్యంగా ఉంటుంది మరియు సాధారణంగా LEDలు లేదా స్క్రీన్లు ఉండవు. ఈ కారణంగా, నా స్వంత డీబగ్గింగ్ బోర్డుని సృష్టించాలనే ఆలోచన నా తలలో కనిపించింది.
ఒక వైపు, మార్కెట్లో బ్రాండెడ్ డీబగ్గింగ్ కిట్లు ఉన్నాయి, అలాగే Zelenograd నుండి LDM- సిస్టమ్స్ కంపెనీ నుండి అద్భుతమైన బోర్డులు ఉన్నాయి. మరోవైపు, ఈ ఉత్పత్తుల ధరలు అస్థిరమైనవి మరియు విస్తరణ కార్డులు లేని ప్రాథమిక కార్యాచరణ అంచనాలను అందుకోవడం లేదు. సోల్డర్డ్ కంట్రోలర్ మరియు పిన్ కనెక్టర్తో కూడిన బోర్డు నాకు ఆసక్తి లేదు. మరియు మరింత ఆసక్తికరమైన బోర్డులు ఖరీదైనవి.
డెవలప్మెంట్ బోర్డ్ MILANDR LDM-HELPER-K1986BE1QI-FULL, © LDM సిస్టమ్స్
మిలాండర్ కంపెనీకి ప్రత్యేకమైన ధర విధానం మరియు మార్కెటింగ్ ఉంది. కాబట్టి, కొన్ని మైక్రో సర్క్యూట్ల యొక్క ఉచిత నమూనాలను పొందడం సాధ్యమవుతుంది, అయితే ఇది చట్టపరమైన సంస్థలకు మాత్రమే అందుబాటులో ఉంటుంది మరియు బ్యూరోక్రాటిక్ అన్వేషణతో అనుబంధించబడుతుంది. సాధారణంగా, మెటల్-సిరామిక్ కేసులో మైక్రో సర్క్యూట్లు సాహిత్య మరియు అలంకారిక అర్థంలో బంగారం. ఉదాహరణకు, 1986BE1T కంట్రోలర్ మాస్కోలో 14 నుండి 24 వేల రూబిళ్లు ఖర్చు అవుతుంది. 1645RU6U స్టాటిక్ మెమరీ చిప్ ధర 15000 రూబిళ్లు. మరియు ఇది అన్ని ఉత్పత్తుల ధరల క్రమం. ఫలితంగా, ప్రభుత్వ ఆదేశాలతో ప్రత్యేక పరిశోధనా సంస్థలు కూడా డబ్బును ఆదా చేస్తాయి మరియు అటువంటి ధరల నుండి దూరంగా ఉంటాయి. పౌర ఉపయోగం కోసం ప్లాస్టిక్ కేసులో మైక్రో సర్క్యూట్లు గణనీయంగా చౌకగా ఉంటాయి, కానీ అవి ప్రముఖ సరఫరాదారుల నుండి అందుబాటులో లేవు. అదనంగా, ప్లాస్టిక్ కేసులో మైక్రో సర్క్యూట్ల నాణ్యత, "బంగారం" కంటే అధ్వాన్నంగా ఉందని నాకు అనిపిస్తుంది. ఉదాహరణకు, ఫ్లాష్ లేటెన్సీ పరామితిని పెంచకుండా నేను K1986BE1QI కంట్రోలర్ను 128 MHz వద్ద అమలు చేయలేకపోయాను. అదే సమయంలో, ఈ నియంత్రిక యొక్క ఉష్ణోగ్రత 40-50C కి పెరిగింది. కానీ 1986BE1T ("బంగారం") కంట్రోలర్ అదనపు సెట్టింగ్లు లేకుండా 128 MHz వద్ద ప్రారంభించబడింది మరియు చల్లగా ఉంది. అతను నిజంగా మంచివాడు.
"గోల్డెన్" మైక్రోకంట్రోలర్ 1986BE1T, (సి) మిలాండర్
ప్లాస్టిక్ కేస్లోని మైక్రోకంట్రోలర్ను ఇప్పటికీ LDM సిస్టమ్స్ నుండి రిటైల్లో కొనుగోలు చేయడం నా అదృష్టం, మరియు అన్ని బోర్డు రేఖాచిత్రాలు ఉచితంగా అందుబాటులో ఉన్నాయి. చెడు విషయం ఏమిటంటే, కంట్రోలర్ యొక్క ఫోటోలోని వెబ్సైట్లో ఇది 4 యొక్క 2014వ పునర్విమర్శ అని చెప్పే మార్కింగ్ను మీరు చూడవచ్చు, అనగా. లోపాలతో. కొనాలా వద్దా అని చాలా సేపు ఆలోచించాను. ఇలా చాలా సంవత్సరాలు గడిచాయి...
డీబగ్ బోర్డ్ను సృష్టించే ఆలోచన ఎక్కడా అదృశ్యం కాలేదు. క్రమంగా, నేను అన్ని అవసరాలను ఏర్పరుచుకున్నాను మరియు అన్నింటినీ ఒకే బోర్డులో ఎలా ఉంచాలో ఆలోచించాను, తద్వారా ఇది కాంపాక్ట్ మరియు ఖరీదైనది కాదు. అదే సమయంలో, నేను చైనీస్ నుండి తప్పిపోయిన భాగాలను ఆదేశించాను. నేను తొందరపడలేదు - నేను నా కోసం ప్రతిదీ చేసాను. చైనీస్ సరఫరాదారులు చాలా అలసత్వం వహిస్తున్నారు - నాకు అవసరమైన ప్రతిదాన్ని పొందడానికి నేను వేర్వేరు ప్రదేశాల నుండి ఒకే వస్తువును ఆర్డర్ చేయాల్సి వచ్చింది. అంతేకాకుండా, కొన్ని మెమరీ చిప్లు ఉపయోగించబడుతున్నాయి - విరిగిన పరికరాల నుండి స్పష్టంగా కరిగించబడ్డాయి. ఇది నాకు తర్వాత తిరిగి వచ్చింది.
మైక్రోకంట్రోలర్ మిలాండర్ K1986BE1QI (గాలి)ని కొనుగోలు చేయడం అంత తేలికైన పని కాదు. అదే చిప్ మరియు డిప్ స్టోర్లో, “ఆర్డర్ చేయాల్సిన అంశాలు” విభాగంలో, నేను 1986 రూబిళ్లు కోసం K92BE740QIని మాత్రమే కనుగొన్నాను, కానీ అది నాకు సరిపోలేదు. 2000 రూబిళ్లు కోసం LDM-సిస్టమ్స్ నుండి నాన్-ఫ్రెష్ పునర్విమర్శను కొనుగోలు చేయడం మాత్రమే ఎంపిక. నేను మరెక్కడా ప్రత్యామ్నాయం కనుగొనలేకపోయాను కాబట్టి, నా వద్ద ఉన్నదాన్ని కొనాలని నిర్ణయించుకున్నాను. నాకు ఆశ్చర్యం కలిగించే విధంగా, వారు డిసెంబర్ 2018లో తయారు చేసిన ఒక సరికొత్త కంట్రోలర్ను నాకు విక్రయించారు, పునర్విమర్శ 6+ (1820). కానీ సైట్ ఇప్పటికీ పాత ఫోటోను కలిగి ఉంది మరియు వ్రాసే సమయంలో కంట్రోలర్ అందుబాటులో లేదు...
మైక్రోకంట్రోలర్ K1986BE1QI (విమానయానం) సాంకేతిక ప్యాకేజింగ్లో, (సి) రచయిత ఫోటో
నా డీబగ్ బోర్డు యొక్క ప్రధాన సాంకేతిక లక్షణాలు MDB1986 ఈ క్రిందివి:
- అంతర్నిర్మిత డీబగ్గర్-ప్రోగ్రామర్, J-Link మరియు CMSIS-DAPకి అనుకూలమైనది;
- స్టాటిక్ మెమరీ 4Mbit (256k x 16, 10 ns);
- ఫ్లాష్ మెమరీ చిప్ 64Mbit, Winbond 25Q64FVSIG;
- RTS మరియు CTS లైన్లతో RS-232 ఇంటర్ఫేస్ ట్రాన్స్సీవర్;
- ఈథర్నెట్, USB, CAN కోసం ఇంటర్ఫేస్లు మరియు కనెక్టర్లు;
- MAX7 7221-సెగ్మెంట్ డిస్ప్లే కంట్రోలర్;
- MKIO (MIL_STD_1553) మరియు ARINC429తో పని చేయడానికి పిన్ కనెక్టర్;
- ఫోటోట్రాన్సిస్టర్ ఎవర్లైట్ PT17-21C;
- ఐదు రంగు LED లు, ఒక రీసెట్ బటన్ మరియు రెండు వినియోగదారు బటన్లు;
- USB పోర్ట్కు విద్యుత్ సరఫరా 5 వోల్ట్లు;
- ప్రింటెడ్ సర్క్యూట్ బోర్డ్ కొలతలు 100 x 80, mm
నేను STM-డిస్కవరీ సిరీస్ బోర్డ్లను ఇష్టపడ్డాను ఎందుకంటే వాటిలో అంతర్నిర్మిత ప్రోగ్రామర్-డీబగ్గర్ - ST-లింక్ ఉంది. బ్రాండెడ్ ST-Link STMicroelectronics నుండి కంట్రోలర్లతో మాత్రమే పని చేస్తుంది, అయితే కొన్ని సంవత్సరాల క్రితం ST-Linkలో ఫర్మ్వేర్ను నవీకరించడం మరియు SEGGER J-Link OB (ఆన్-బోర్డ్) డీబగ్గర్ను పొందడం సాధ్యమైంది. చట్టబద్ధంగా, అటువంటి డీబగ్గర్ను STMicroelectronics బోర్డులతో మాత్రమే ఉపయోగించడంపై పరిమితి ఉంది, కానీ వాస్తవానికి సంభావ్యత పరిమితం కాదు. కాబట్టి, J-Link OBని కలిగి ఉంటే, మీరు డీబగ్గింగ్ బోర్డ్లో అంతర్నిర్మిత ప్రోగ్రామర్-డీబగ్గర్ని కలిగి ఉండవచ్చు. LDM-Systems ఉత్పత్తులు CP2102 (Usb2Uart) కన్వర్టర్ని ఉపయోగిస్తాయని నేను గమనించాను, ఇది ఫ్లాష్ మాత్రమే చేయగలదు.
STM32F103C8T6 మైక్రోకంట్రోలర్లు, నిజమైనవి మరియు అంత వాస్తవమైనవి కావు, (సి) రచయిత ఫోటో
కాబట్టి, క్లోన్తో యాజమాన్య ఫర్మ్వేర్ సరిగ్గా పని చేయదు కాబట్టి, అసలు STM32F103C8T6ని కొనుగోలు చేయడం అవసరం. నేను ఈ థీసిస్ను అనుమానించాను మరియు చైనీస్ కంపెనీ CKS నుండి CS32F103C8T6 కంట్రోలర్ను ప్రయత్నించాలని నిర్ణయించుకున్నాను. కంట్రోలర్ గురించి నాకు ఎటువంటి ఫిర్యాదులు లేవు, కానీ యాజమాన్య ST-Link ఫర్మ్వేర్ దానిలో పని చేయలేదు. J- లింక్ పాక్షికంగా పనిచేసింది - USB పరికరం కనుగొనబడింది, కానీ ప్రోగ్రామర్ దాని విధులను నిర్వహించలేదు మరియు అది “లోపభూయిష్టంగా” ఉందని నిరంతరం గుర్తుచేస్తుంది.
అసలైన కంట్రోలర్లో డీబగ్గర్ని అమలు చేస్తున్నప్పుడు లోపం
నేను దీనితో సంతృప్తి చెందలేదు మరియు మొదట LED బ్లింక్ చేయడానికి ఫర్మ్వేర్ను వ్రాసాను, ఆపై JTAG ప్రోటోకాల్ని ఉపయోగించి IDCODE అభ్యర్థనను అమలు చేసాను. డిస్కవరీ బోర్డ్లో నేను కలిగి ఉన్న ST-Link ప్రోగ్రామర్ మరియు ST-Link యుటిలిటీ ప్రోగ్రామ్ ఎటువంటి సమస్యలు లేకుండా CS32F103C8T6ని ఫ్లాష్ చేశాయి.చివరికి, నా బోర్డు పని చేస్తుందని నేను నమ్మాను. నా ఆనందానికి, టార్గెట్ కంట్రోలర్ K1986BE1QI (ఏవియేషన్) TDO లైన్ ద్వారా సంతోషంగా దాని IDCODEని జారీ చేసింది.
ఎన్కోడ్ చేసిన IDCODE ప్రతిస్పందనతో TDO సిగ్నల్ లైన్ యొక్క ఓసిల్లోగ్రామ్, (సి) రచయిత ఫోటో
కాబట్టి డీబగ్గర్ను డీబగ్గింగ్ చేయడానికి మరియు IDCODEని తనిఖీ చేయడానికి SWD పోర్ట్ ఉపయోగపడుతుంది
డీబగ్గర్తో ఒక ఎంపిక ఉంది
అంతర్నిర్మిత డీబగ్గర్ J-Link STLink V2 యొక్క విజయవంతమైన ఆపరేషన్
ఫ్యూచర్ డెవలప్మెంట్ బోర్డ్లోని అన్ని కీలక భాగాలు అందుబాటులో ఉన్నప్పుడు, నేను Eagle CADలోకి వెళ్లి అవి ఎలిమెంట్ లైబ్రరీలో లేవని కనుగొన్నాను. వెళ్ళడానికి ఎక్కడా లేదు - నేను వాటిని నేనే గీయవలసి వచ్చింది. అదే సమయంలో, నేను మెమరీ కోసం మౌంటు స్పాట్లు, ఈథర్నెట్ కోసం HanRun కనెక్టర్ మరియు రెసిస్టర్లు మరియు కెపాసిటర్ల కోసం ఫ్రేమ్లను జోడించాను. ప్రాజెక్ట్ ఫైల్ మరియు కాంపోనెంట్ లైబ్రరీని కనుగొనవచ్చు
MDB1986 డెవలప్మెంట్ బోర్డ్ యొక్క స్కీమాటిక్ రేఖాచిత్రం
బోర్డు USB పోర్ట్ నుండి పొందిన 5 వోల్ట్ DC మూలం ద్వారా శక్తిని పొందుతుంది. బోర్డులో మొత్తం రెండు USB టైప్-బి పోర్ట్లు ఉన్నాయి. ఒకటి ప్రోగ్రామర్ కోసం, రెండవది K1986BE1QI కంట్రోలర్ కోసం. బోర్డు ఈ మూలాల నుండి లేదా రెండింటి నుండి ఏకకాలంలో పనిచేయగలదు. సర్క్యూట్ D2 మరియు D3 (SS24)లో షాట్కీ డయోడ్లను ఉపయోగించి సరళమైన లోడ్ నియంత్రణ మరియు పవర్ లైన్ రక్షణ అమలు చేయబడుతుంది. అలాగే రేఖాచిత్రంలో మీరు 1 mA వద్ద స్వీయ-పునరుద్ధరణ ఫ్యూజ్లు F2 మరియు F500లను చూడవచ్చు. USB పోర్ట్ యొక్క సిగ్నల్ లైన్లు USBLC6-2SC6 డయోడ్ అసెంబ్లీ ద్వారా రక్షించబడతాయి.
ST-లింక్ డీబగ్గర్-ప్రోగ్రామర్ సర్క్యూట్ చాలా మందికి తెలుసు; ఇది STM32-డిస్కవరీ బోర్డులు మరియు ఇతర మూలాల కోసం డాక్యుమెంటేషన్లో కనుగొనబడుతుంది. ST-Link/J-Link-OB/DAP క్లోన్ (ఐచ్ఛికం) యొక్క ప్రారంభ ఫర్మ్వేర్ కోసం, నేను SWDIO (PA13), SWCLK (PA14), GND లైన్లను తీసుకువచ్చాను. చాలా మంది వ్యక్తులు ఫర్మ్వేర్ కోసం UARTని ఉపయోగిస్తున్నారు మరియు BOOT జంపర్లను లాగవలసి వస్తుంది. కానీ నేను SWDని మరింత సౌకర్యవంతంగా భావిస్తున్నాను మరియు ఈ ప్రోటోకాల్ డీబగ్గింగ్ను అనుమతిస్తుంది.
బోర్డ్ యొక్క దాదాపు అన్ని భాగాలు 3.3 వోల్ట్ల ద్వారా శక్తిని పొందుతాయి, ఇవి AMS1117-3.3 వోల్టేజ్ రెగ్యులేటర్ నుండి వస్తాయి. విద్యుదయస్కాంత జోక్యం మరియు కరెంట్ సర్జ్లను అణిచివేసేందుకు, BLM31PG సిరీస్ యొక్క కెపాసిటర్లు మరియు చోక్ల నుండి LC ఫిల్టర్లు ఉపయోగించబడతాయి.
విడిగా, MAX7 7221-సెగ్మెంట్ డిస్ప్లే డ్రైవర్ను పేర్కొనడం విలువ. స్పెసిఫికేషన్ ప్రకారం, సిఫార్సు చేయబడిన విద్యుత్ సరఫరా 4 నుండి 5.5 వోల్ట్ల వరకు ఉంటుంది మరియు అధిక సిగ్నల్ స్థాయి (లాజికల్ ఒకటి) కనీసం 3.5V (0.7 x VCC), 5V సరఫరాతో ఉంటుంది. K1986BE1QI (ఏవియేషన్) కంట్రోలర్ కోసం, లాజికల్ యూనిట్ యొక్క అవుట్పుట్ 2.8 నుండి 3.3V వరకు వోల్టేజ్కు అనుగుణంగా ఉంటుంది. సహజంగానే సిగ్నల్ స్థాయిల మధ్య అసమతుల్యత ఉంది, ఇది సాధారణ ఆపరేషన్కు అంతరాయం కలిగించవచ్చు. నేను MAX7221ని 4V వద్ద పవర్ చేయాలని మరియు సిగ్నల్ స్థాయిలను 2.8V (0.7 x 4 = 2.8)కి తగ్గించాలని నిర్ణయించుకున్నాను. దీన్ని చేయడానికి, డయోడ్ D4 (RS1A లేదా FR103) డ్రైవర్ పవర్ సర్క్యూట్లో సిరీస్లో ఇన్స్టాల్ చేయబడింది. మొత్తం వోల్టేజ్ డ్రాప్ 0.9V (షాట్కీ డయోడ్ 0.3V మరియు డయోడ్ 0.6V), మరియు ప్రతిదీ పనిచేస్తుంది.
K1986BE1QI (ఏవియేషన్) మైక్రోకంట్రోలర్ యొక్క చాలా పోర్ట్లు 5V వరకు సిగ్నల్లకు అనుకూలంగా ఉంటాయి. అందువల్ల, MCP2551 CAN ట్రాన్స్సీవర్ని ఉపయోగించడంలో సమస్య లేదు, ఇది 5Vలో కూడా పనిచేస్తుంది. రేఖాచిత్రంలో MAX232 చిప్ RS-3232 ట్రాన్స్సీవర్గా సూచించబడింది, అయితే వాస్తవానికి నేను టెక్సాస్ ఇన్స్ట్రుమెంట్స్ నుండి SN65C3232Dని ఉపయోగించాను, ఎందుకంటే ఇది 3.3V నుండి పనిచేస్తుంది మరియు 1Mbit/s వరకు వేగాన్ని అందిస్తుంది.
బోర్డు 4 క్వార్ట్జ్ రెసొనేటర్లను కలిగి ఉంది - ఒకటి డీబగ్గర్ (8 MHz) మరియు మూడు టార్గెట్ మైక్రోకంట్రోలర్ K1986BE1QI (ఏవియేషన్) కోసం 32.768 kHz, 16 MHz, 25 MHz రేటింగ్లు. ఇవి అవసరమైన భాగాలు, ఎందుకంటే అంతర్నిర్మిత RC ఓసిలేటర్ యొక్క పారామితులు 6 నుండి 10 MHz వరకు విస్తృత పరిధిలో ఉన్నాయి. అంతర్నిర్మిత ఈథర్నెట్ కంట్రోలర్ యొక్క ఆపరేషన్ కోసం 25 MHz ఫ్రీక్వెన్సీ అవసరం. కొన్ని కారణాల వల్ల, మిలాంద్రా వెబ్సైట్ (బహుశా పొరపాటున) ప్లాస్టిక్ కేసులో ఈథర్నెట్ లేదని పేర్కొంది. కానీ మేము స్పెసిఫికేషన్ మరియు వాస్తవాలపై ఆధారపడతాము.
నా స్వంత డెవలప్మెంట్ బోర్డ్ను రూపొందించడానికి ఒక ముఖ్యమైన ప్రోత్సాహకం బాహ్య సిస్టమ్ బస్ EBC (బాహ్య బస్ కంట్రోలర్)తో పని చేసే అవకాశం, ఇది తప్పనిసరిగా సమాంతర పోర్ట్. K1986BE1QI మైక్రోకంట్రోలర్ (విమానం) బాహ్య మెమరీ చిప్లు మరియు పరిధీయ పరికరాలతో కనెక్ట్ అవ్వడానికి మరియు పని చేయడానికి మిమ్మల్ని అనుమతిస్తుంది, ఉదాహరణకు, ADCలు, FPGAలు మొదలైనవి. బాహ్య సిస్టమ్ బస్సు యొక్క సామర్థ్యాలు చాలా పెద్దవి - మీరు 8-బిట్, 16-బిట్ మరియు 32-బిట్ స్టాటిక్ RAM, ROM మరియు NAND ఫ్లాష్తో పని చేయవచ్చు. 32-బిట్ డేటాను చదవడానికి/వ్రాయడానికి, కంట్రోలర్ స్వయంచాలకంగా 2-బిట్ చిప్ల కోసం 16 సంబంధిత ఆపరేషన్లను మరియు 8-బిట్ చిప్ల కోసం 4 ఆపరేషన్లను చేయగలదు. సహజంగానే, 32-బిట్ I/O ఆపరేషన్ 32-బిట్ డేటా బస్తో వేగంగా పూర్తవుతుంది. ప్రతికూలతలు ప్రోగ్రామ్ 32-బిట్ డేటాతో పనిచేయవలసిన అవసరాన్ని కలిగి ఉంటాయి మరియు బోర్డు 32 ట్రాక్లను వేయాలి.
స్టాటిక్ RAM చిప్లు, ఉపయోగించబడ్డాయి (ఏది లోపభూయిష్టంగా ఉందో ఊహించండి)
16-బిట్ మెమరీ చిప్లను ఉపయోగించడం సమతుల్య పరిష్కారం. నేను స్టాక్లో ఇంటిగ్రేటెడ్ సిలికాన్ సొల్యూషన్స్ ఇంక్. చిప్లను కలిగి ఉన్నాను. (ISSI IS61LV25616AL, 16 x 256k, 10 ns, 3.3V). వాస్తవానికి, మిలాండర్ కంపెనీకి దాని స్వంత స్టాటిక్ మెమరీ చిప్లు ఉన్నాయి
బాహ్య బస్సు మరియు స్టాండ్అలోన్ మోడ్K1986BE1QI మైక్రోకంట్రోలర్ (విమానం) ఒక ప్రత్యేకమైన స్టాండ్అలోన్ మోడ్ను కలిగి ఉంది, ఇది రీసెట్ స్టేట్లో కోర్తో బాహ్య బస్సు ద్వారా ఈథర్నెట్ మరియు MKIO కంట్రోలర్లకు (MIL_STD_1553) ప్రత్యక్ష బాహ్య యాక్సెస్ కోసం రూపొందించబడింది, అనగా. ఉపయోగం లో లేదు. ఈథర్నెట్ మరియు/లేదా MKIO లేని ప్రాసెసర్లు మరియు FPGAలకు ఈ మోడ్ సౌకర్యవంతంగా ఉంటుంది.
కనెక్షన్ రేఖాచిత్రం క్రింది విధంగా ఉంది:
- డేటా బస్సు MCU(D0-D15) => SRAM(I/O0-I/O15),
- చిరునామా బస్సు MCU(A1-A18) => SRAM(A0-A17),
- నియంత్రణ MCU(nWR,nRD,PortC2) => SRAM (WE,OE,CE),
- SRAM(UB,LB) రెసిస్టర్ ద్వారా అనుసంధానించబడి లేదా భూమికి లాగబడతాయి.
CE లైన్ రెసిస్టర్ ద్వారా విద్యుత్ సరఫరాకు కనెక్ట్ చేయబడింది; MCU బైట్ (BE0-BE3) నమూనా కోసం పిన్లు ఉపయోగించబడవు. స్పాయిలర్ కింద, నేను పోర్ట్లు మరియు బాహ్య బస్ కంట్రోలర్ను ప్రారంభించడం కోసం కోడ్ను అందిస్తాను.
పోర్ట్లను ప్రారంభించడం మరియు EBC కంట్రోలర్ (బాహ్య బస్ కంట్రోలర్)
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 ప్యాకేజీలోని మైక్రోకంట్రోలర్ మరియు TSOP-44 ప్యాకేజీలోని మెమరీ అనేక అనుబంధ పిన్లను కలిగి ఉంటాయి మరియు ప్రింటెడ్ సర్క్యూట్ బోర్డ్లో చాలా స్థలాన్ని తీసుకుంటాయి. ఎకనామిక్స్ రంగంలో ఆప్టిమైజేషన్ సమస్యలను పరిష్కరించడంలో అనుభవం ఉన్నందున, ఈ మైక్రో సర్క్యూట్లను ముందుగా బోర్డులో ఉంచడం అవసరమని నాకు స్పష్టంగా కనిపించింది. వివిధ వనరులలో నేను గురించి ప్రశంసనీయమైన సమీక్షలను చూశాను
ప్రింటెడ్ సర్క్యూట్ బోర్డ్ యొక్క ముఖ్యమైన అంశం సిల్క్-స్క్రీన్ ప్రింటింగ్. డెవలప్మెంట్ బోర్డు తప్పనిసరిగా ఎలక్ట్రానిక్ భాగాల కోసం లేబుల్లను కలిగి ఉండటమే కాకుండా, అన్ని కనెక్టర్లకు కూడా లేబుల్ చేయబడాలి. బోర్డు వెనుక భాగంలో నేను కంట్రోలర్ పోర్ట్ల (ప్రధాన, ప్రత్యామ్నాయ, ఓవర్రైడ్, అసలైన) ఫంక్షన్లతో పట్టికలను ఉంచాను. నేను ప్రసిద్ధ PCBWay కార్యాలయం నుండి చైనాలో ప్రింటెడ్ సర్క్యూట్ బోర్డ్ల ఉత్పత్తిని ఆదేశించాను. నాణ్యత బాగున్నందున నేను దానిని ప్రశంసించను. వారు కఠినమైన సహనంతో మెరుగ్గా చేయగలరు, కానీ
తయారు చేసిన MDB1986 ప్రింటెడ్ సర్క్యూట్ బోర్డ్లు, (సి) రచయిత ఫోటో
నేను 40-వాట్ల టంకం ఇనుము మరియు POS-61 టంకముతో "నా మోకాళ్లపై" భాగాలను టంకము చేయవలసి వచ్చింది, ఎందుకంటే నేను చాలా అరుదుగా టంకము, సంవత్సరానికి 1-2 సార్లు, మరియు టంకం పేస్ట్ ఎండిపోయింది. నేను చైనీస్ CS32F103 కంట్రోలర్ను అసలు STM32F103కి మార్చవలసి వచ్చింది, ఆపై మెమరీని కూడా భర్తీ చేయాలి. సాధారణంగా, ఇప్పుడు నేను ఫలితంతో పూర్తిగా సంతృప్తి చెందాను, అయినప్పటికీ నేను RS-232 మరియు CAN యొక్క ఆపరేషన్ను ఇంకా తనిఖీ చేయలేదు.
MDB1986 డీబగ్ బోర్డ్ ఆపరేషన్లో ఉంది - ఇది ప్రకాశిస్తుంది మరియు వేడెక్కుతుంది, (సి) రచయిత ఫోటో
Milandra వెబ్సైట్లో మీరు తగినంతగా కనుగొనవచ్చు
మిలాంద్ర గురించి ఆలోచించానురష్యాలో మైక్రోఎలక్ట్రానిక్స్ అభివృద్ధి చెందుతోంది మరియు ఈ ప్రక్రియలో మిలాండర్ కంపెనీ ప్రముఖ పాత్ర పోషిస్తుంది. కొత్త ఆసక్తికరమైన మైక్రోకంట్రోలర్లు కనిపిస్తాయి, ఉదాహరణకు, SpaceWire మరియు MKIO ఇంటర్ఫేస్లతో 1986BE81T మరియు Elektrosila (1986BE1లో మరియు బహుశా అదే సమస్యలతో) మొదలైనవి. కానీ సాధారణ విద్యార్థులు, ఉపాధ్యాయులు మరియు సివిల్ ఇంజనీర్లు ఇటువంటి మైక్రో సర్క్యూట్లను కొనుగోలు చేయలేరు. దీని అర్థం ఇంజనీరింగ్ సంఘం ఈ చిప్తో లోపాలను మరియు సమస్యలను త్వరగా గుర్తించలేకపోతుంది. మొదట ప్లాస్టిక్ కేసులో మైక్రో సర్క్యూట్లను ఉత్పత్తి చేయడం, ఆసక్తి ఉన్న పార్టీలందరికీ పంపిణీ చేయడం మరియు నిపుణులచే ఆమోదించబడిన (లాటిన్ ఆమోదం, గుర్తింపు) తర్వాత, వారు మెటల్-సిరామిక్ కేసులో పునర్విమర్శను సిద్ధం చేయగలరని నాకు అనిపిస్తోంది. అన్ని భయంకరమైన కారకాల నుండి రక్షణ. నేను సమీప భవిష్యత్తులో ఎగ్జిబిషన్లలో ప్రకటించిన కొత్త ప్రాజెక్ట్లతో మనమందరం సంతోషిస్తానని ఆశిస్తున్నాను.
నేను అభివృద్ధి చేసిన డీబగ్ బోర్డ్ను విద్యా ప్రక్రియలో ఎవరైనా పునరావృతం చేయవచ్చు, సవరించవచ్చు మరియు ఉపయోగించవచ్చు. అన్నింటిలో మొదటిది, నేను నా కోసం బోర్డుని తయారు చేసాను, కానీ అది చాలా బాగా మారింది
K1986BE1QI (గాలి) అనేది విద్యార్థులకు బోధించడానికి విశ్వవిద్యాలయాలలో ఉపయోగించబడే ప్రత్యేకమైన ఇంటర్ఫేస్లతో కూడిన చాలా ఆసక్తికరమైన నియంత్రిక. కంట్రోలర్లో గుర్తించిన లోపాలను సరిదిద్దడం మరియు ధృవీకరణ పరీక్షలలో ఉత్తీర్ణత సాధించిన తర్వాత, నియంత్రిక పదం యొక్క నిజమైన అర్థంలో ఎగురుతుందని నేను భావిస్తున్నాను!
మూలం: www.habr.com