- ST-LINK V2
- STM32CubeMX
- పదార్థాలు అవసరం
- సర్క్యూట్ రేఖాచిత్రం మరియు కనెక్షన్లు
- కైల్ యువిజన్ మరియు ఎస్టీ-లింక్ ఉపయోగించి STM32 లోకి ఒక ప్రోగ్రామ్ను సృష్టించడం మరియు బర్న్ చేయడం
- కైల్ ప్రోగ్రామ్డ్ STM32 బోర్డు యొక్క అవుట్పుట్
- కార్యక్రమం
ARM కార్టెక్స్ M నిర్మాణాన్ని ఉపయోగించే STM32 మైక్రోకంట్రోలర్లు ఇప్పుడు ప్రాచుర్యం పొందాయి మరియు దాని లక్షణం, ఖర్చు మరియు పనితీరు కారణంగా అనేక అనువర్తనాల్లో ఉపయోగించబడుతున్నాయి. మేము మా మునుపటి ట్యుటోరియల్లలో Arduino IDE ని ఉపయోగించి STM32F103C8 ను ప్రోగ్రామ్ చేసాము. ఆర్డునో IDE తో STM32 ను ప్రోగ్రామింగ్ చేయడం చాలా సులభం, ఎందుకంటే ఏదైనా పనిని నిర్వహించడానికి వివిధ సెన్సార్ల కోసం చాలా లైబ్రరీలు అందుబాటులో ఉన్నాయి, మేము ప్రోగ్రామ్లో ఆ లైబ్రరీలను జోడించాలి. ఇది సులభమైన విధానం మరియు మీరు ARM ప్రాసెసర్ల గురించి లోతైన అభ్యాసానికి రాకపోవచ్చు. కాబట్టి ఇప్పుడు మేము ARM ప్రోగ్రామింగ్ అని పిలువబడే తదుపరి స్థాయి ప్రోగ్రామింగ్లోకి ప్రవేశిస్తున్నాము. దీని ద్వారా, మన కోడ్ యొక్క నిర్మాణాన్ని మెరుగుపరచడమే కాక, అనవసరమైన లైబ్రరీలను ఉపయోగించకుండా మెమరీ స్థలాన్ని కూడా ఆదా చేయవచ్చు.
STMicroelectronics STM32Cube MX అనే సాధనాన్ని ప్రవేశపెట్టింది, ఇది పెరిఫెరల్స్ మరియు ఎంచుకున్న STM32 బోర్డు ప్రకారం ప్రాథమిక కోడ్ను ఉత్పత్తి చేస్తుంది. కాబట్టి ప్రాథమిక డ్రైవర్లు మరియు పెరిఫెరల్స్ కోసం కోడింగ్ గురించి మేము ఆందోళన చెందాల్సిన అవసరం లేదు. అవసరానికి అనుగుణంగా ఎడిటింగ్ కోసం ఈ ఉత్పత్తి కోడ్ను కైల్ యువిజన్లో ఉపయోగించవచ్చు. చివరకు కోడ్ STMicroelectronics నుండి ST- లింక్ ప్రోగ్రామర్ ఉపయోగించి STM32 లోకి బర్న్ చేయబడుతుంది.
ఈ ట్యుటోరియల్లో STM32F103C8 బ్లూ పిల్ బోర్డ్తో పుష్ బటన్ను మరియు LED ని ఇంటర్ఫేస్ చేసే సరళమైన ప్రాజెక్ట్ చేయడం ద్వారా కైల్ uVision & STM32CubeMX ను ఉపయోగించి STM32F103C8 ను ఎలా ప్రోగ్రామ్ చేయాలో నేర్చుకుంటాము. మేము STM32Cube MX ను ఉపయోగించి కోడ్ను రూపొందిస్తాము, ఆపై కైల్ uVision ఉపయోగించి కోడ్ను STM32F103C8 కు సవరించండి మరియు అప్లోడ్ చేస్తాము. వివరాల్లోకి రాకముందు, మేము మొదట ST-LINK ప్రోగ్రామర్ మరియు STM32CubeMX సాఫ్ట్వేర్ సాధనం గురించి నేర్చుకుంటాము .
ST-LINK V2
ST-LINK / V2 ఒక లో సర్క్యూట్ డీబగ్గర్ మరియు ప్రోగ్రామర్ ఉంది STM8 మరియు STM32 మైక్రోకంట్రోలర్ కుటుంబాలకు. ఈ ST-LINK ని ఉపయోగించి మేము STM32F103C8 మరియు ఇతర STM8 & STM32 మైక్రోకంట్రోలర్లకు కోడ్ను అప్లోడ్ చేయవచ్చు. సింగిల్ వైర్ ఇంటర్ఫేస్ మాడ్యూల్ (SWIM) మరియు JTAG / సీరియల్ వైర్ డీబగ్గింగ్ (SWD) ఇంటర్ఫేస్లు ఒక అప్లికేషన్ బోర్డులో ఉన్న ఏదైనా STM8 లేదా STM32 మైక్రోకంట్రోలర్తో కమ్యూనికేట్ చేయడానికి ఉపయోగించబడతాయి. అటోలిక్, IAR, కైల్ లేదా టాస్కింగ్ ఇంటిగ్రేటెడ్ డెవలప్మెంట్ ఎన్విరాన్మెంట్స్తో కమ్యూనికేట్ చేయడానికి STM32 అనువర్తనాలు USB పూర్తి-వేగ ఇంటర్ఫేస్ను ఉపయోగిస్తాయి కాబట్టి, STM 8 & STM32 మైక్రోకంట్రోలర్లను ప్రోగ్రామ్ చేయడానికి మేము ఈ హార్డ్వేర్ను ఉపయోగించవచ్చు.
పైన STMicroelectronics నుండి ST-LINK V2 డాంగిల్ యొక్క చిత్రం పూర్తి స్థాయి STM32 SWD డీబగ్గింగ్ ఇంటర్ఫేస్, సాధారణ 4-వైర్ ఇంటర్ఫేస్ (శక్తితో సహా), వేగంగా మరియు స్థిరంగా ఉంటుంది. ఇది రకరకాల రంగులలో లభిస్తుంది. శరీరం అల్యూమినియం మిశ్రమం నుండి తయారవుతుంది. ఇది ST-LINK యొక్క పని స్థితిని గమనించడానికి ఉపయోగించబడుతున్నందున ఇది నీలి రంగు LED సూచనను కలిగి ఉంది. పై చిత్రంలో మనం చూడగలిగినట్లుగా పిన్ పేర్లు షెల్ మీద స్పష్టంగా గుర్తించబడతాయి. ఇది కైల్ సాఫ్ట్వేర్తో ఇంటర్ఫేస్ చేయవచ్చు, ఇక్కడ ప్రోగ్రామ్ను STM32 మైక్రోకంట్రోలర్లకు ఫ్లాష్ చేయవచ్చు. కాబట్టి ఈ ట్యుటోరియల్లో STM32 మైక్రోకంట్రోలర్ను ప్రోగ్రామ్ చేయడానికి ఈ ST-LINK ప్రోగ్రామర్ ఎలా ఉపయోగపడుతుందో చూద్దాం. క్రింద ఉన్న చిత్రం ST-LINK V2 మాడ్యూల్ యొక్క పిన్లను చూపుతుంది.
గమనిక: మొదటిసారి కంప్యూటర్తో ఎస్టీ-లింక్ను కనెక్ట్ చేసినప్పుడు.మేము పరికర డ్రైవర్ను ఇన్స్టాల్ చేయాలి. మీ ఆపరేటింగ్ సిస్టమ్ ప్రకారం పరికర డ్రైవర్లను ఈ లింక్లో చూడవచ్చు.
STM32CubeMX
STM32CubeMX సాధనం STMicroelectronics STMCube లో భాగం.ఈ సాఫ్ట్వేర్ సాధనం అభివృద్ధి ప్రయత్నం, సమయం మరియు వ్యయాన్ని తగ్గించడం ద్వారా అభివృద్ధిని సులభతరం చేస్తుంది. STM32 క్యూబ్లో STM32CubeMX ఉంది, ఇది గ్రాఫికల్ సాఫ్ట్వేర్ కాన్ఫిగరేషన్ సాధనం, ఇది గ్రాఫికల్ విజార్డ్లను ఉపయోగించి సి ప్రారంభ కోడ్ను రూపొందించడానికి అనుమతిస్తుంది. ఆ కోడ్ను కైల్ యువిజన్, జిసిసి, ఐఎఆర్ వంటి వివిధ అభివృద్ధి పరిసరాలలో ఉపయోగించవచ్చు. మీరు ఈ సాధనాన్ని క్రింది లింక్ నుండి డౌన్లోడ్ చేసుకోవచ్చు.
STM32CubeMX కింది లక్షణాలను కలిగి ఉంది
- అవుట్-సంఘర్షణ పరిష్కారాన్ని పిన్ చేయండి
- గడియారం-చెట్టు సెట్టింగ్ సహాయకుడు
- శక్తి-వినియోగ కాలిక్యులేటర్
- GPIO పిన్స్, USART మొదలైన MCU పరిధీయ కాన్ఫిగరేషన్ను ప్రదర్శించే యుటిలిటీ
- USB, TCP / IP మొదలైన మిడిల్వేర్ స్టాక్ల కోసం MCU పరిధీయ కాన్ఫిగరేషన్ను ప్రదర్శించే యుటిలిటీ
పదార్థాలు అవసరం
హార్డ్వేర్
- STM32F103C8 బ్లూ పిల్ బోర్డు
- ST-LINK V2
- నొక్కుడు మీట
- LED
- బ్రెడ్బోర్డ్
- జంపర్ వైర్లు
సాఫ్ట్వేర్
- STM32CubeMX కోడ్ జనరేషన్ సాధనం (లింక్)
- కైల్ యువిజన్ 5 (లింక్)
- ST- లింక్ V2 (లింక్) కోసం డ్రైవర్లు
సర్క్యూట్ రేఖాచిత్రం మరియు కనెక్షన్లు
పుష్బటన్ ఉపయోగించి STM32 బోర్డ్తో LED ని కనెక్ట్ చేయడానికి సర్క్యూట్ రేఖాచిత్రం క్రింద ఉంది.
ST-LINK V2 & STM32F103C8 మధ్య కనెక్షన్
ఇక్కడ STM32 బ్లూ పిల్ బోర్డు ST-LINK నుండి శక్తినిస్తుంది, ఇది కంప్యూటర్ యొక్క USB పోర్ట్కు అనుసంధానించబడి ఉంది. కాబట్టి మేము STM32 ను విడిగా శక్తినివ్వవలసిన అవసరం లేదు. దిగువ పట్టిక ST- లింక్ మరియు బ్లూ పిల్ బోర్డు మధ్య కనెక్షన్ను చూపుతుంది.
STM32F103C8 |
ST- లింక్ V2 |
GND |
GND |
SWCLK |
SWCLK |
SWDIO |
SWDIO |
3 వి 3 |
3.3 వి |
LED & పుష్ బటన్
పుష్ బటన్ నొక్కినప్పుడు బ్లూ పిల్ బోర్డు నుండి అవుట్పుట్ను సూచించడానికి LED ఉపయోగించబడుతుంది. LED యొక్క యానోడ్ బ్లూ పిల్ బోర్డు యొక్క పిన్ PC13 కి అనుసంధానించబడి ఉంది మరియు కాథోడ్ గ్రౌన్దేడ్ చేయబడింది.
ఒక పుష్ బటన్ బ్లూ పిల్ బోర్డు పిన్ PA1 ఇన్పుట్ అందించడానికి అనుసంధానించబడి ఉంది. విలువ 10 కె యొక్క పుల్ అప్ రెసిస్టర్ను కూడా మనం ఉపయోగించాలి ఎందుకంటే బటన్ విడుదలైనప్పుడు పిన్ ఎటువంటి ఇన్పుట్ లేకుండా తేలుతుంది. పుష్ బటన్ యొక్క ఒక చివర భూమికి మరియు మరొక చివర పిన్ PA1 కి అనుసంధానించబడి ఉంది మరియు 10 కె యొక్క పుల్ అప్ రెసిస్టర్ కూడా బ్లూ పిల్ బోర్డు యొక్క 3.3 వికి అనుసంధానించబడి ఉంది.
కైల్ యువిజన్ మరియు ఎస్టీ-లింక్ ఉపయోగించి STM32 లోకి ఒక ప్రోగ్రామ్ను సృష్టించడం మరియు బర్న్ చేయడం
దశ 1: - మొదట అన్ని పరికర డ్రైవర్లను ST-LINK V2, సాఫ్ట్వేర్ సాధనాలు STM32Cube MX & Keil uVision కోసం ఇన్స్టాల్ చేయండి మరియు STM32F103C8 కోసం అవసరమైన ప్యాకేజీలను ఇన్స్టాల్ చేయండి.
దశ 2: - రెండవ దశ ఓపెన్ >> STM32Cube MX
దశ 3: - ఆపై కొత్త ప్రాజెక్ట్ పై క్లిక్ చేయండి
దశ 4: - ఆ శోధన తరువాత & మా మైక్రోకంట్రోలర్ STM32F103C8 ని ఎంచుకోండి
దశ 5: - ఇప్పుడు STM32F103C8 యొక్క పిన్-అవుట్ స్కెచ్ కనిపిస్తుంది, ఇక్కడ మనం పిన్ కాన్ఫిగరేషన్లను సెట్ చేయవచ్చు. మన ప్రాజెక్ట్ ప్రకారం పెరిఫెరల్స్ విభాగంలో మన పిన్నులను కూడా ఎంచుకోవచ్చు.
దశ 6: - మీరు నేరుగా పిన్పై క్లిక్ చేయవచ్చు మరియు జాబితా కనిపిస్తుంది, ఇప్పుడు అవసరమైన పిన్ కాన్ఫిగరేషన్ను ఎంచుకోండి.
దశ 7: - మా ప్రాజెక్ట్ కోసం మేము PA1 ని GPIO INPUT గా, PC13 ను GPIO OUTPUT & SYS డీబగ్ను SERIAL WIRE గా ఎంచుకున్నాము, ఇక్కడ మేము ST-LINK SWCLK & SWDIO పిన్లను మాత్రమే కనెక్ట్ చేస్తాము. ఎంచుకున్న & కాన్ఫిగర్ చేసిన పిన్స్ GREEN రంగులో కనిపిస్తాయి. దిగువ చిత్రంలో మీరు గమనించవచ్చు.
దశ 8: - కాన్ఫిగరేషన్ టాబ్ క్రింద , మేము ఎంచుకున్న పిన్ల కోసం GPIO పిన్ కాన్ఫిగరేషన్లను సెట్ చేయడానికి GPIO ని ఎంచుకోండి.
దశ 9: - ఈ పిన్ కాన్ఫిగరేషన్ బాక్స్లో మనం ఉపయోగిస్తున్న పిన్ల కోసం యూజర్ లేబుల్ని కాన్ఫిగర్ చేయవచ్చు, అంటే యూజర్ నిర్వచించిన పిన్ పేర్లు.
దశ 10: - ఆ తరువాత ప్రాజెక్ట్ >> జనరేట్ కోడ్ పై క్లిక్ చేయండి.
దశ 11: - ఇప్పుడు ప్రాజెక్ట్ సెట్టింగుల డైలాగ్ బాక్స్ కనిపిస్తుంది. ఈ పెట్టెలో మీ ప్రాజెక్ట్ పేరు మరియు స్థానాన్ని ఎన్నుకోండి మరియు అభివృద్ధి వాతావరణాన్ని ఎంచుకోండి.మేము కైల్ ను ఉపయోగిస్తున్నాము కాబట్టి MDK-ARMv5 ను IDE గా ఎంచుకోండి .
దశ 12: - క్రింద తదుపరి కోడ్ జెనరేటర్ టాబ్, ఎంచుకోండి కాపీ మాత్రమే అవసరం లైబ్రరీ ఫైళ్లు ఆపై సరి క్లిక్ చేయండి.
దశ 13: - ఇప్పుడు కోడ్ జనరేషన్ డైలాగ్ బాక్స్ కనిపిస్తుంది. కైల్ uvsion లో ఉత్పత్తి చేయబడిన కోడ్ను స్వయంచాలకంగా తెరవడానికి ఓపెన్ ప్రాజెక్ట్ ఎంచుకోండి.
దశ 14: - ఇప్పుడు కైల్ యువిజన్ సాధనం STM32CubeMx లో మా ఉత్పత్తి చేసిన కోడ్తో అదే ప్రాజెక్ట్ పేరుతో అవసరమైన లైబ్రరీ మరియు మేము ఎంచుకున్న పిన్ల కోసం కాన్ఫిగర్ చేయబడిన కోడ్లతో తెరుస్తుంది.
దశ 15: - ఇప్పుడు మనం GPIO ఇన్పుట్ (పిన్ PA1) వద్ద బటన్ నొక్కినప్పుడు విడుదల చేయబడినప్పుడు అవుట్పుట్ LED (పిన్ పిసి 13) వద్ద కొంత చర్య తీసుకోవడానికి తర్కాన్ని చేర్చాలి. కాబట్టి కొన్ని కోడ్లను చేర్చడానికి మా main.c ప్రోగ్రామ్ను ఎంచుకోండి.
దశ 16: - ఇప్పుడు (1) లూప్లో కోడ్ను జోడించండి , కోడ్ను నిరంతరం అమలు చేయడానికి నేను ఆ విభాగాన్ని హైలైట్ చేసిన క్రింది చిత్రాన్ని చూడండి.
(1) {if (HAL_GPIO_ReadPin (BUTN_GPIO_Port, BUTN_Pin) == 0) // => DETECTS బటన్ నొక్కినప్పుడు {HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 1); // బటన్ నొక్కినప్పుడు అవుట్పుట్ను అధికంగా చేయడానికి} else {HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 0); // బటన్ డి నొక్కినప్పుడు అవుట్పుట్ తక్కువగా చేయడానికి}}
దశ 17: - కోడ్ను సవరించడం పూర్తయిన తర్వాత, డీబగ్ టాబ్ క్రింద ఉన్న టార్గెట్ ఐకాన్ కోసం క్లిక్ చేయండి ST-LINK డీబగ్గర్ ఎంచుకోండి
అలాగే, సెట్టింగుల బటన్పై క్లిక్ చేసి, ఆపై ఫ్లాష్ డౌన్లోడ్ టాబ్ కింద రీసెట్ అండ్ రన్ చెక్ బాక్స్ను టిక్ చేసి, 'సరే' క్లిక్ చేయండి.
దశ 18: - ఇప్పుడు అన్ని లక్ష్య ఫైళ్ళను పునర్నిర్మించడానికి పునర్నిర్మాణ చిహ్నంపై క్లిక్ చేయండి.
దశ 19: - ఇప్పుడు మీరు సర్క్యూట్ కనెక్షన్లతో సిద్ధంగా ఉన్న కంప్యూటర్కు ST-LINK ని ప్లగ్ చేసి, డౌన్లోడ్ ఐకాన్పై క్లిక్ చేయండి లేదా మీరు ఉత్పత్తి చేసిన మరియు సవరించిన కోడ్తో STM32F103C8 ని ఫ్లాష్ చేయడానికి F8 నొక్కండి.
దశ 20: - మీరు కైల్ యువిజన్ విండో దిగువన మెరుస్తున్న సూచనను గమనించవచ్చు.
కైల్ ప్రోగ్రామ్డ్ STM32 బోర్డు యొక్క అవుట్పుట్
ఇప్పుడు మనం పుష్ బటన్ నొక్కినప్పుడు, LED ఆన్ చేయండి మరియు మేము దానిని విడుదల చేసినప్పుడు, LED ఆపివేయబడుతుంది.
కార్యక్రమం
ఉత్పత్తి చేసిన ప్రోగ్రామ్లో మేము జోడించిన ప్రధాన భాగం క్రింద చూపబడింది. STM32CubeMX చే ఉత్పత్తి చేయబడిన main.c ప్రోగ్రామ్ యొక్క (1 ) అయితే ఈ క్రింది కోడ్ను చేర్చాలి. Main.c ప్రోగ్రామ్లో దీన్ని ఎలా జోడించాలో తెలుసుకోవడానికి మీరు 17 వ దశ నుండి 15 వ దశకు తిరిగి వెళ్ళవచ్చు.
(1) {if (HAL_GPIO_ReadPin (BUTN_GPIO_Port, BUTN_Pin) == 0) // => DETECTS బటన్ నొక్కినప్పుడు {HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 1); // బటన్ నొక్కినప్పుడు అవుట్పుట్ను అధికంగా చేయడానికి} else {HAL_GPIO_WritePin (LEDOUT_GPIO_Port, LEDOUT_Pin, 0); // బటన్ డి నొక్కినప్పుడు అవుట్పుట్ తక్కువగా చేయడానికి}}
STM32 బోర్డ్లోకి ప్రాజెక్ట్ను సృష్టించడం మరియు అప్లోడ్ చేయడం పూర్తి ప్రక్రియ చివరిలో ఇచ్చిన వీడియోలో కూడా వివరించబడింది. మెయిన్.సి ఫైల్ యొక్క పూర్తి కోడ్ పైన ఇచ్చిన కోడ్తో సహా క్రింద ఇవ్వబడింది.
ఇంకా, మీరు మా పూర్తి STM32 ప్రాజెక్టులను ఇక్కడ చూడవచ్చు.