- న్యూక్లియో 64 బోర్డుల కోసం అవసరమైన అభివృద్ధి వేదికలను ఎంచుకోవడం మరియు డౌన్లోడ్ చేయడం
- సర్క్యూట్ రేఖాచిత్రం మరియు హార్డ్వేర్ సెటప్
- STM32 న్యూక్లియో 64 డెవలప్మెంట్ బోర్డుల కోసం STM32CubeMX తో ప్రారంభించడం
- ప్రోగ్రామింగ్ STM32 న్యూక్లియో 64 డెవలప్మెంట్ బోర్డ్ ఉపయోగించి ట్రూస్టూడియో
- పుష్ బటన్ ఉపయోగించి LED ని నియంత్రించడానికి STM32 న్యూక్లియో 64 ప్రోగ్రామ్
- ట్రూస్టూడియోని ఉపయోగించి STM32 Necleo64 డెవలప్మెంట్ బోర్డ్కు కోడ్ను డీబగ్గింగ్ మరియు అప్లోడ్ చేస్తోంది
మనలో చాలా మందికి ప్రసిద్ధ మైక్రోకంట్రోలర్లు మరియు ఆర్డునో, రాస్ప్బెర్రీ పై, ESP8266, నోడుఎంసియు, 8051, వంటి అభివృద్ధి బోర్డులతో పరిచయం ఉండాలి. వాస్తవానికి, చాలా మందికి, ఆర్డునో వారి మొదటి అభివృద్ధి బోర్డు అయ్యేది, కాని మనం లోతుగా త్రవ్వి ప్రారంభించినప్పుడు వృత్తిపరమైన నమూనాలు, మేము త్వరలో ఆర్డునో యొక్క పరిమితులను (ఖర్చు, పాండిత్యము, స్థిరత్వం, వేగం మొదలైనవి వంటివి) గ్రహిస్తాము మరియు పిఐసి, ఎస్టిఎమ్, రెనెసాస్ మొదలైన స్థానిక మైక్రోకంట్రోలర్ ప్లాట్ఫామ్లోకి మారవలసిన అవసరాన్ని అర్థం చేసుకుంటాము.
మేము ఇప్పటికే పిఐసి మైక్రోకంట్రోలర్ ట్యుటోరియల్స్ యొక్క క్రమాన్ని కవర్ చేసాము, ఇది పిఐసి మైక్రోకంట్రోలర్లను నేర్చుకోవడానికి ప్రారంభకులకు మార్గనిర్దేశం చేస్తుంది. అదేవిధంగా, ఈ ఆర్టికల్తో ప్రారంభించి, STM32 న్యూక్లియో 64 డెవలప్మెంట్ బోర్డ్ ట్యుటోరియల్స్ యొక్క క్రమాన్ని కూడా ప్లాన్ చేస్తాము, ఇది STM32 ప్లాట్ఫామ్ను ఉపయోగించి సంపూర్ణ ప్రారంభకులకు నేర్చుకోవడానికి మరియు అభివృద్ధి చేయడానికి సహాయపడుతుంది. న్యూక్లియో 64 డెవలప్మెంట్ బోర్డులు తక్కువ ఖర్చుతో కూడుకున్నవి మరియు ప్రొఫెషనల్ డెవలపర్లతో పాటు అభిరుచి గలవారికి ప్లాట్ఫారమ్ను ఉపయోగించడం సులభం. మీరు STM32 న్యూక్లియో 64 డెవలప్మెంట్ బోర్డులకు పూర్తిగా క్రొత్తగా ఉంటే, మీరు మరింత ముందుకు వెళ్ళే ముందు ఈ బోర్డు యొక్క ప్రాథమికాలను అర్థం చేసుకోవడానికి ఈ న్యూక్లియో 64 రివ్యూ వీడియోను చూడండి. ARM Mbed ప్లాట్ఫామ్ ఉపయోగించి STM32 ను ఎలా ప్రోగ్రామ్ చేయాలో కూడా వీడియో చూపిస్తుంది కానీ ఈ ట్యుటోరియల్ కోసం, ట్రూస్టూడియో అని పిలువబడే ST మైక్రోఎలక్ట్రానిక్స్ నుండి ప్లాట్ఫారమ్ను ఉపయోగించడానికి మరొక ఉచితాన్ని ఉపయోగిస్తాము.
గమనిక: STM32 న్యూక్లియో 64 డెవలప్మెంట్ బోర్డుల యొక్క అనేక వెర్షన్లు ఉన్నాయి, ఈ ట్యుటోరియల్లో ఉపయోగించిన ప్రత్యేక బోర్డు NUCLEO-F030R8. మేము ఈ బోర్డుని తక్కువ ఖర్చుతో ఎంచుకున్నాము. మీరు వేరే సంస్కరణను కలిగి ఉన్నప్పటికీ, ట్యుటోరియల్లో చర్చించిన చాలా విషయాలు మీరు ప్రారంభించడానికి సరిపోతాయి.
న్యూక్లియో 64 బోర్డుల కోసం అవసరమైన అభివృద్ధి వేదికలను ఎంచుకోవడం మరియు డౌన్లోడ్ చేయడం
ఏదైనా మైక్రోకంట్రోలర్తో ప్రారంభించడానికి మనకు ఆర్డునో బోర్డుల కోసం ఆర్డునో ఐడిఇ, ఎవిఆర్ మైక్రోకంట్రోలర్ కోసం అట్మెల్ స్టూడియో, పిఐసి కోసం ఎంపి ల్యాబ్ మొదలైనవి ఉన్నాయి. కాబట్టి ఇక్కడ ప్రోగ్రామింగ్ మరియు డీబగ్గింగ్ చేయడానికి మా ఎస్టిఎమ్ 32 న్యూక్లియో 64 బోర్డులకు ఐడిఇ అవసరం. STM32 కుటుంబం 32-బిట్ మైక్రోకంట్రోలర్లను కలిగి ఉంటుంది, ఇవి క్రింది IDE లు మరియు టూల్చైన్లకు మద్దతు ఇస్తాయి:
- ARM® (EWARM) కోసం IAR ఎంబెడెడ్ వర్క్బెంచ్.
- MDK-ARM కైల్
- ట్రూస్టూడియో
- STM32 కోసం సిస్టమ్ వర్క్బెంచ్
ఇక్కడ మా ట్యుటోరియల్స్ కోసం, ట్రూస్టూడియో కోడ్ రాయడం, కంపైల్ చేయడం మరియు డీబగ్గింగ్ కోసం ఉపయోగించబడుతుంది ఎందుకంటే ఎటువంటి లైసెన్స్ అవసరం లేకుండా వాణిజ్య ప్రాజెక్టులకు కూడా డౌన్లోడ్ చేసి ఉపయోగించడం ఉచితం. అప్పుడు STM32CubeMX సవరణలకు STM32 బోర్డులు సులభమైన ప్రోగ్రామింగ్ కోసం పరిధీయ డ్రైవర్లు ఉత్పత్తి ఉపయోగించబడుతుంది. మా ప్రోగ్రామ్ (హెక్స్ ఫైల్) ను మా డెవలప్మెంట్ బోర్డ్లోకి అప్లోడ్ చేయడానికి, ప్రజలు సాధారణంగా STM32 ST-LINK యుటిలిటీ సాధనాన్ని ఉపయోగిస్తారు, కానీ బదులుగా, దీన్ని చేయడానికి మేము TrueSTUDIO ను ఉపయోగిస్తాము. TrueSTUDIO డీబగ్ మోడ్ను కలిగి ఉంది, ఇది ప్రోగ్రామర్లు హెక్స్ ఫైల్ను నేరుగా STM32 బోర్డుకు అప్లోడ్ చేయడానికి అనుమతిస్తుంది. TrueSTUIO మరియు STM32CubeMX రెండూ డౌన్లోడ్ చేయడం సులభం, ఈ క్రింది లింక్ను అనుసరించండి, సైన్ అప్ చేయండి మరియు సెటప్ను డౌన్లోడ్ చేయండి. అప్పుడు వాటిని మీ ల్యాప్టాప్లో ఇన్స్టాల్ చేయండి.
- STM32Cube MX ని డౌన్లోడ్ చేయండి
- TrueSTUDIO ని డౌన్లోడ్ చేయండి
సర్క్యూట్ రేఖాచిత్రం మరియు హార్డ్వేర్ సెటప్
మేము సాఫ్ట్వేర్ విభాగం మరియు కోడింగ్తో కొనసాగడానికి ముందు, ఈ ప్రాజెక్ట్ కోసం మా బోర్డుని సిద్ధం చేద్దాం. ఈ వ్యాసంలో ఇంతకు ముందు చెప్పినట్లుగా, మేము పుష్ బటన్ ఉపయోగించి LED ని నియంత్రించబోతున్నాము. ఇప్పుడు, మీరు పైన లింక్ చేసిన వీడియోను చూసినట్లయితే, మీ STM32 డెవలప్మెంట్ బోర్డ్లో ST మోర్ఫో పిన్స్ అని పిలువబడే ఇరువైపులా రెండు సెట్ల కనెక్టర్ పిన్లు ఉన్నాయని మీరు ఇప్పటికే తెలుసుకోవాలి. దిగువ సర్క్యూట్ రేఖాచిత్రంలో చూపిన విధంగా మేము ఈ పిన్లకు పుష్-బటన్ మరియు LED ని కనెక్ట్ చేసాము.
ఈ ప్రాజెక్ట్ కోసం సర్క్యూట్ కనెక్షన్లు సులభం, మేము GORD కి సంబంధించి PORTA యొక్క PA5 వద్ద ఒక LED ని మరియు PORTC యొక్క PC13 వద్ద ఒక స్విచ్ను కనెక్ట్ చేయాలి. కనెక్షన్లు చేసిన తర్వాత, నా పరీక్ష సెటప్ ఇలా ఉంది.
ప్రత్యామ్నాయంగా, మేము బోర్డులోని ఇన్బిల్ట్ LED మరియు పుష్ బటన్ను కూడా ఉపయోగించవచ్చు. ఈ అంతర్నిర్మిత LED లు మరియు పుష్-బటన్ కూడా సర్క్యూట్ రేఖాచిత్రంలో చూపిన విధంగా అదే పిన్ వద్ద అనుసంధానించబడి ఉన్నాయి. మేము అభ్యాసం కోసం మాత్రమే బాహ్య భాగాలను జోడించాము. ప్రతి మోర్ఫో పిన్లు ఆన్బోర్డ్కు ఎక్కడ కనెక్ట్ చేయబడిందో తెలుసుకోవడానికి STM32 డెవలప్మెంట్ బోర్డ్ యొక్క దిగువ పిన్ రేఖాచిత్రం ఉపయోగపడుతుంది.
STM32 న్యూక్లియో 64 డెవలప్మెంట్ బోర్డుల కోసం STM32CubeMX తో ప్రారంభించడం
దశ 1: సంస్థాపన తరువాత, STM32CubeMX ను ప్రారంభించండి, ఆపై STM32 బోర్డును ఎంచుకోవడానికి యాక్సెస్ బోర్డు సెలెక్టర్ను ఎంచుకోండి.
దశ 2: ఇప్పుడు NUCLEO-F030R8 వంటి మీ STM32 బోర్డు పేరు ద్వారా బోర్డును శోధించండి మరియు చిత్రంలో చూపించే బోర్డుపై క్లిక్ చేయండి. మీరు దాని పేరు కోసం వేరే బోర్డు శోధనను కలిగి ఉంటే. ఈ సాఫ్ట్వేర్ ST మైక్రోఎలక్ట్రానిక్స్ నుండి అన్ని STM32 డెవలప్మెంట్ బోర్డులకు మద్దతు ఇస్తుంది.
దశ 3: ఇప్పుడు అన్ని పెరిఫెరల్స్ డిఫాల్ట్ మోడ్లో ప్రారంభించడానికి, క్రింది చిత్రంలో చూపిన విధంగా అవునుపై క్లిక్ చేయండి. మన ప్రాజెక్ట్ ద్వారా అవసరమైన వాటిని తరువాత మార్చవచ్చు.
'అవును' పై క్లిక్ చేసిన తరువాత, స్క్రీన్ దిగువ చిత్రం మరియు గ్రీన్ కలర్ పిన్తో సమానంగా ఉంటుంది, అవి అప్రమేయంగా ప్రారంభించబడిందని సూచిస్తాయి.
దశ 4: ఇప్పుడు వినియోగదారులు వర్గాల నుండి కావలసిన అమరికను ఎంచుకోవచ్చు. ఇక్కడ ఈ ట్యుటోరియల్లో, మేము పుష్ బటన్ను ఉపయోగించి LED ని టోగుల్ చేయబోతున్నాము. కాబట్టి, మనం ఎల్ఈడీ పిన్ను అవుట్పుట్గా, స్విచ్ పిన్ను ఇన్పుట్గా చేసుకోవాలి.
మీరు ఏదైనా పిన్ను ఎంచుకోవచ్చు, కాని నేను PA5 ను ఎంచుకుంటాను మరియు దాని స్థితిని GPIO_Output గా మారుస్తున్నాను, ఇది క్రింది చిత్రంలో చూపిన విధంగా అవుట్పుట్ పిన్గా పని చేస్తుంది.
అదేవిధంగా, నేను PC13 ని GPIO_Input గా ఎంచుకుంటున్నాను, తద్వారా నా పుష్-బటన్ యొక్క స్థితిని చదవగలను.
ప్రత్యామ్నాయంగా, మేము పిన్అవుట్ మరియు కాన్ఫిగరేషన్ టాబ్ నుండి పిన్లను కాన్ఫిగర్ చేయగలము అలాగే క్రింద చూపాము.
దశ 5: తదుపరి దశలో, బాహ్య మరియు అంతర్గత ఓసిలేటర్ ప్రకారం వినియోగదారు మైక్రోకంట్రోలర్ మరియు పిన్స్ కోసం కావలసిన ఫ్రీక్వెన్సీని సెట్ చేయవచ్చు. అప్రమేయంగా, అంతర్గత 8 MHz క్రిస్టల్ ఓసిలేటర్ ఎంపిక చేయబడింది మరియు PLL ను ఉపయోగించడం ద్వారా, ఈ 8 48MHz గా మార్చబడుతుంది. డిఫాల్ట్గా అర్థం STM32 బోర్డు లేదా మైక్రోకంట్రోలర్ మరియు పిన్స్ 48MHz లో పని చేస్తాయి.
దశ 6: ఇప్పుడు ప్రాజెక్ట్ మేనేజర్లో కదిలి, మీ ప్రాజెక్ట్, ప్రాజెక్ట్ స్థానానికి పేరు ఇవ్వండి మరియు టూల్చైన్ లేదా IDE ని ఎంచుకోండి. ఇక్కడ మేము TrueSTUDIO ని ఉపయోగిస్తున్నాము, కాబట్టి నేను క్రింద చూపిన విధంగానే ఎంచుకున్నాను.
దశ 7: ఇప్పుడు క్రింది చిత్రంలో ఎరుపు వృత్తం ద్వారా జనరేట్ కోడ్ గుర్తుపై క్లిక్ చేయండి.
దశ 8: ఇప్పుడు మీరు ఇచ్చిన విధంగా పాపప్ చూస్తారు, ఆపై ఓపెన్ ప్రాజెక్ట్ పై క్లిక్ చేయండి. కానీ, మీరు ఈ దశకు ముందు TrueSTUDIO ని ఇన్స్టాల్ చేశారని నిర్ధారించుకోండి.
ప్రోగ్రామింగ్ STM32 న్యూక్లియో 64 డెవలప్మెంట్ బోర్డ్ ఉపయోగించి ట్రూస్టూడియో
ట్రూస్టూడియో వర్క్స్పేస్ స్థానాన్ని అడిగితే ఇప్పుడు మీ కోడ్ లేదా ప్రాజెక్ట్ ట్రూస్టూడియోలో స్వయంచాలకంగా తెరవబడుతుంది, అప్పుడు వర్క్స్పేస్ స్థానాన్ని అందించండి లేదా డిఫాల్ట్ స్థానంతో వెళ్లండి.
వినియోగదారు క్రింద ఇచ్చిన స్క్రీన్ను చూస్తారు, ఆపై ఎరుపు రంగులో మూలలో గుర్తు వద్ద క్లిక్ చేయాలి.
ఇప్పుడు మన ట్రెస్టూడియో IDE లో కోడ్ చూడవచ్చు. 'Src' ఫోల్డర్ క్రింద ఎడమ వైపున STM32Cube నుండి మన కోసం ఇప్పటికే ఉత్పత్తి చేయబడిన ఇతర ప్రోగ్రామ్ ఫైళ్ళను (.c పొడిగింపుతో) చూడవచ్చు. మేము మెయిన్.సి ఫైల్ను ప్రోగ్రామ్ చేయాలి. Main.c ఫైల్లో కూడా మనకు ఇప్పటికే క్యూబ్ఎమ్ఎక్స్ ద్వారా కొన్ని విషయాలు సెటప్ చేయబడతాయి, మన ప్రోగ్రామ్కు తగినట్లుగా మాత్రమే దీన్ని సవరించాలి. Main.c ఫైల్ లోపల పూర్తి కోడ్ ఈ పేజీ దిగువన ఇవ్వబడింది.
పుష్ బటన్ ఉపయోగించి LED ని నియంత్రించడానికి STM32 న్యూక్లియో 64 ప్రోగ్రామ్
అవసరమైన అన్ని డ్రైవర్ మరియు కోడ్ STM32CubeMX చేత ఉత్పత్తి చేయబడినందున, మేము LED పిన్ను అవుట్పుట్గా మరియు పుష్-బటన్ను ఇన్పుట్గా మాత్రమే కాన్ఫిగర్ చేయాలి. పుష్ బటన్ను ఉపయోగించి లీడ్ను నియంత్రించే ప్రోగ్రామ్ను మెయిన్.సి ఫైల్లో వ్రాయాలి. పూర్తి ప్రోగ్రామ్ ఈ పేజీ దిగువన చూడవచ్చు. దాని వివరణ ఈ క్రింది విధంగా ఉంది
పుష్ బటన్ను ఉపయోగించి LED ని టోగుల్ చేయడానికి మాత్రమే మనకు వ్రాసిన కోడ్ ఉంది. దీన్ని సాధించడానికి, మేము మొదట LED మరియు పుష్-బటన్ల కోసం పిన్లను నిర్వచించాము. ఇక్కడ మేము PORTA యొక్క పిన్ 5 సంఖ్య వద్ద LED ని నిర్వచించాము
# LED_PORT GPIOA ని నిర్వచించండి # LED_PIN GPIO_PIN_5 ని నిర్వచించండి
మరియు PORTC యొక్క పిన్ నంబర్ 13 వద్ద స్విచ్ను నిర్వచించండి.
# SW_PORT GPIOC ని నిర్వచించండి # SW_PIN GPIO_PIN_13 ని నిర్వచించండి
అప్పుడు ప్రధాన ఫంక్షన్లో, మేము ఉపయోగించిన అన్ని పెరిఫెరల్స్ ను ప్రారంభించాము.
/ * అన్ని కాన్ఫిగర్ చేసిన పెరిఫెరల్స్ ప్రారంభించండి * / MX_GPIO_Init (); MX_USART2_Init ();
ఆపై if స్టేట్మెంట్ ఉపయోగించి పుష్ బటన్ చదవండి మరియు బటన్ ప్రెస్ (LOW) దొరికితే LED దాని స్థితిని టోగుల్ చేస్తుంది.
(1) {/ * USER CODE END WHILE * / if (! HAL_GPIO_ReadPin (SW_PORT, SW_PIN)) {HAL_GPIO_TogglePin (SW_PORT, LED_PIN); HAL_Delay (200); } / * USER కోడ్ ప్రారంభమవుతుంది 3 * /}
ఇక్కడ HAL_GPIO_ReadPin (SW_PORT, SW_PIN) ఫంక్షన్ రెండు ఆర్గ్యుమెంట్లను కలిగి ఉంది, ఒకటి PORT మరియు మరొకటి స్విచ్ కనెక్ట్ అయిన పిన్ మరియు STM32CubeMX లో పరిధీయని కాన్ఫిగర్ చేసేటప్పుడు ఈ పిన్ INPUT గా కాన్ఫిగర్ చేయబడింది.
ట్రూస్టూడియోని ఉపయోగించి STM32 Necleo64 డెవలప్మెంట్ బోర్డ్కు కోడ్ను డీబగ్గింగ్ మరియు అప్లోడ్ చేస్తోంది
ఇప్పుడు ప్రోగ్రామర్ కేబుల్ ఉపయోగించి మీ బోర్డుని కంప్యూటర్కు కనెక్ట్ చేయండి. మీరు దాన్ని కనెక్ట్ చేసిన తర్వాత, బోర్డుకి అవసరమైన డ్రైవర్ స్వయంచాలకంగా డౌన్లోడ్ చేయబడాలి, మీరు దీన్ని పరికర నిర్వాహికిని ఉపయోగించి తనిఖీ చేయవచ్చు.
అప్పుడు, ప్రోగ్రామ్ను కంపైల్ చేయడానికి మరియు డీబగ్ మోడ్లోకి ప్రవేశించడానికి క్రింద ఇచ్చిన చిత్రంలో ఎరుపు వృత్తం గుర్తించిన డీబగ్ చిహ్నాన్ని నొక్కండి.
డీబగ్ మోడ్లో, కోడ్ స్వయంచాలకంగా అప్లోడ్ చేయబడుతుంది. ఇప్పుడు మనం 'రెస్యూమ్' లేదా ఎఫ్ 8 (దిగువ చిత్రంలో రెడ్ సర్క్యూట్లో గుర్తించబడింది) నొక్కడం ద్వారా కోడ్ను రన్ చేయాలి.
ఇప్పుడు మనం పుష్ బటన్ను నొక్కడం ద్వారా LED నియంత్రణను పరీక్షించవచ్చు. కోడ్ ప్రకారం, మీరు పుష్ బటన్ను నొక్కిన ప్రతిసారీ LED దాని స్థితిని మార్చాలి. ఈ పేజీ దిగువన లింక్ చేయబడిన వీడియోలో కూడా పూర్తి పని చూడవచ్చు.
పరీక్షించిన తరువాత, దిగువ చిత్రంలో ఎరుపు వృత్తం ద్వారా గుర్తించబడిన టెర్మినేట్ చిహ్నాన్ని నొక్కడం ద్వారా కూడా మేము ప్రోగ్రామ్ను ముగించవచ్చు.