- AVR లో ఫ్యూజులు ఏమిటి - ఒక వివరణాత్మక వివరణ
- ఆర్డునోలో ఫ్యూజ్ బిట్స్
- AVR లో ఫ్యూజులను పరీక్షించడానికి అవసరమైన భాగాలు
- AVR లో ఫ్యూజ్ బిట్లను పరీక్షించడానికి స్కీమాటిక్
- AVR లో ఫ్యూజులను పరీక్షిస్తోంది
ఈ ట్యుటోరియల్లో, మేము ఫ్యూజ్ల గురించి మాట్లాడబోతున్నాం. తిరిగి నేను కాలేజీలో ఉన్నప్పుడు మరియు ఎలక్ట్రానిక్స్లోని అన్ని మంచి విషయాల గురించి తెలుసుకున్నప్పుడు, AVR లో ఫ్యూజ్ అనే పదాన్ని నేను మొదటిసారి విన్నాను, ఈ అంశంపై నా ప్రారంభ ఆలోచన, ఓహ్! AVR లోపల ఏదో ఉంది, నేను ఏదో తప్పు చేస్తే అది చెదరగొడుతుంది. అప్పటికి, ఇంటర్నెట్లో ఎక్కువ వనరులు అందుబాటులో లేవు. ఈ ఫ్యూజులు AVR మైక్రోకంట్రోలర్ లోపల కొన్ని ప్రత్యేక బిట్లను సూచిస్తాయని తెలుసుకోవడానికి నేను కొంచెం శోధించాను. ఈ బిట్స్ AVR లోపల చిన్న స్విచ్లు వంటివి మరియు వాటిని ఆన్ / ఆఫ్ చేయడం ద్వారా, మేము AVR యొక్క కొన్ని ప్రత్యేక లక్షణాలను ఆన్ / ఆఫ్ చేయవచ్చు. దీన్ని ఆన్ మరియు ఆఫ్ చేయడం అంటే సెట్టింగ్ మరియు రీసెట్ చేయడం.
AVR లోని ఫ్యూజ్ బిట్స్ గురించి ఉన్నవన్నీ చర్చించడానికి మేము ఈ అవకాశాన్ని ఉపయోగించబోతున్నాము. సరళత కోసం, ప్రసిద్ధ ATmega328P మైక్రోకంట్రోలర్ను కలిగి ఉన్న Arduino బోర్డు యొక్క ఉదాహరణను మేము తీసుకుంటాము. నిజ జీవిత అనువర్తనాల్లో నిజంగా ఉపయోగపడే ఈ లక్షణాలలో కొన్నింటిని ఆన్ మరియు ఆఫ్ సెట్ చేయడానికి ఈ ఫ్యూజులను ఎలా సెట్ చేయాలో ఇక్కడ మీరు నేర్చుకుంటారు. కాబట్టి, దానిలోకి ప్రవేశిద్దాం.
మా మునుపటి పోస్ట్లలో, AVR మైక్రోకంట్రోలర్తో ఇంటర్ఫేసింగ్ GSM మాడ్యూల్ మరియు AVR మైక్రోకంట్రోలర్తో ఇంటర్ఫేసింగ్ HC-05 వంటి AVR మైక్రోకంట్రోలర్స్ ప్రాజెక్ట్లను మేము నిర్మించాము. మీరు ఆ ప్రాజెక్టుల గురించి మరింత తెలుసుకోవాలనుకుంటే మీరు వాటిని తనిఖీ చేయవచ్చు.
AVR లో ఫ్యూజులు ఏమిటి - ఒక వివరణాత్మక వివరణ
మేము ఇంతకుముందు చర్చించినట్లుగా, మైక్రోకంట్రోలర్లోని ఫ్యూజులు చిన్న స్విచ్లు వంటివి, ఇవి AVR మైక్రోకంట్రోలర్లోని వివిధ లక్షణాలను ప్రారంభించడానికి మరియు నిలిపివేయడానికి ఆన్ మరియు ఆఫ్ చేయవచ్చు. ఇది మా తదుపరి ప్రశ్న తలెత్తే భాగం, కాబట్టి మేము ఈ ఫ్యూజ్లను ఎలా సెట్ చేస్తాము లేదా రీసెట్ చేయాలి? ఈ ప్రశ్నకు సమాధానం చాలా సులభం: ఫ్యూజ్ రిజిస్టర్ల సహాయంతో మేము దీన్ని చేస్తాము.
ATmega328P IC లో, మొత్తం 19 ఫ్యూజ్ బిట్స్ ఉన్నాయి మరియు అవి మూడు ఫ్యూజ్ బైట్లుగా విభజించబడ్డాయి. వాటిని “ఎక్స్టెండెడ్ ఫ్యూజ్ బైట్లు”, “హై ఫ్యూజ్ బైట్” మరియు “లో ఫ్యూజ్ బైట్” గా నిర్వచించారు .
మీరు ATmega328 / P డేటాషీట్ యొక్క టేబుల్ -27 ను చూస్తే Rev: 7810D - AVR - 01/15, మీరు ఫ్యూజ్ బిట్ల గురించి అన్ని చిన్న వివరాలను తెలుసుకోవచ్చు. కానీ దిగువ చిత్రం డేటాషీట్ యొక్క ఫ్యూజ్ బిట్స్ విభాగం గురించి మీకు మంచి ఆలోచన ఇస్తుంది.
ఇప్పుడు మీరు ఫ్యూజ్ బిట్ల గురించి కొంచెం నేర్చుకున్నట్లుగా, డేటాషీట్ ద్వారా వెళ్లి ఈ ఐసి గురించి అవసరమైన అన్ని వివరాలను తెలుసుకుందాం.
విస్తరించిన ఫ్యూజ్ బిట్స్:
మీరు ఫ్యూజ్ బిట్స్ ట్యాబ్పై క్లిక్ చేసి, కొద్దిగా క్రిందికి స్క్రోల్ చేస్తే, మీరు టేబుల్ 27-5 ను కనుగొంటారు: ఇది సాధారణంగా “ ఎఫ్యూస్” అని పిలువబడే “ఎక్స్టెండెడ్ ఫ్యూజ్ బైట్” కోసం పట్టికను చూపుతుంది . క్రింద ఉన్న చిత్రం ఖచ్చితంగా చూపిస్తుంది.
ఈ పట్టికలో, ఉపయోగించదగిన మూడు బిట్స్ మాత్రమే ఉన్నాయి, మరియు మిగిలిన మూడు రిజర్వు చేయబడ్డాయి. ఈ మూడు బిట్స్ బ్రౌనౌట్ డిటెక్షన్ స్థాయితో వ్యవహరిస్తాయి. మేము టేబుల్ 28-5 ను చూస్తే మీరు గమనికలో చూడగలిగినట్లుగా, దాని గురించి మరిన్ని వివరాలను కనుగొనవచ్చు.
పై పట్టికలో మీరు చూడగలిగినట్లుగా, బ్రౌన్అవుట్ డిటెక్షన్ కోసం మాకు టేబుల్ ఉంది. బ్రౌనౌట్ డిటెక్షన్ అనేది సరఫరా వోల్టేజ్ ఒక నిర్దిష్ట వోల్టేజ్ స్థాయి కంటే పడిపోయినప్పుడు మైక్రోకంట్రోలర్ను రీసెట్ చేసే లక్షణం. ATmega328P IC లో, మేము బ్రౌన్అవుట్ గుర్తింపును పూర్తిగా నిలిపివేయవచ్చు లేదా పై పట్టికలో చూపిన స్థాయిలకు సెట్ చేయవచ్చు.
హై ఫ్యూజ్ బైట్లు:
దిగువ చిత్రంలో మీరు చూడగలిగినట్లుగా, డేటాషీట్ యొక్క టేబుల్ 27-6: ATmega328P IC యొక్క హయ్యర్ ఫ్యూజ్ బిట్లను చూపిస్తుంది.
హై ఫ్యూజ్ ATmega328 సూక్ష్మ లోపల వివిధ పనులు ఒప్పందం. ఈ విభాగంలో, మేము హయ్యర్ ఫ్యూజ్ బిట్స్ మరియు వాటి పనితీరు గురించి మాట్లాడుతాము. BOOTRST, BOOTSZ0 మరియు BOOTSZ1 బిట్లతో ప్రారంభిద్దాం. బూట్ పరిమాణాన్ని సెట్ చేయడానికి ఈ మూడు బిట్స్ బాధ్యత వహిస్తాయి; బూట్ పరిమాణం బూట్లోడర్ను ఇన్స్టాల్ చేయడానికి కేటాయించిన మెమరీ మొత్తాన్ని సూచిస్తుంది .
బూట్లోడర్ అనేది మైక్రోకంట్రోలర్ పైన నడుస్తున్న మరియు విభిన్నమైన పనులను నిర్వహించే ఒక ప్రత్యేక సాఫ్ట్వేర్. Arduino విషయంలో, మైక్రోకంట్రోలర్ లోపల Arduino స్కెచ్ను అప్లోడ్ చేయడానికి బూట్లోడర్ ఉపయోగించబడుతుంది. మా మునుపటి వ్యాసాలలో ఒకదానిలో, Arduino ఉపయోగించి ATmega328P లో బూట్లోడర్ను ఎలా బర్న్ చేయాలో మీకు చూపించాము. మీకు అంశంపై ఆసక్తి ఉంటే మీరు దాన్ని తనిఖీ చేయవచ్చు. మా అంశానికి తిరిగి రావడం, అధిక బైట్లోని ఇతర బిట్ల యొక్క ప్రయోజనాలు సహేతుకంగా స్పష్టంగా తెలుస్తాయి, చిప్ చెరిపివేసే చక్రం కింద ప్రదర్శించేటప్పుడు EEPROM మెమరీని కాపాడుకోవడం EESAVE బిట్. వాచ్డాగ్ టైమర్ను ప్రారంభించడం లేదా నిలిపివేయడం WDTON బిట్.
వాచ్డాగ్ టైమర్ అనేది ATmega328P IC లో ఒక ప్రత్యేక టైమర్, ఇది దాని ప్రత్యేక గడియారాన్ని కలిగి ఉంది మరియు స్వతంత్రంగా నడుస్తుంది. వాచ్డాగ్ టైమర్ ప్రారంభించబడితే, మీరు దానిని ఒక నిర్దిష్ట కాలంతో క్లియర్ చేయాలి, లేకపోతే, వాచ్డాగ్ టైమర్ మైక్రోకంట్రోలర్ను రీసెట్ చేస్తుంది. ప్రాసెసర్ చిక్కుకుపోతే ఇది చాలా మైక్రోకంట్రోలర్లలో వచ్చే ఉపయోగకరమైన లక్షణం; అంతిమ అనువర్తనానికి ఎటువంటి నష్టం జరగకుండా వాచ్డాగ్ దాన్ని రీసెట్ చేస్తుంది.
డీబగ్ వైర్ను ప్రారంభించడానికి DWEN బిట్ ఉంది; ఇది ప్రిపరేటరీ ప్రోటోకాల్, ఇది అంతర్గతంగా వారి హార్డ్వేర్లో నిర్మించబడింది, ఇది ప్రాసెసర్లను ప్రోగ్రామ్ చేయడానికి మరియు డీబగ్ చేయడానికి ఉపయోగించబడుతుంది. ఈ లక్షణం ప్రారంభించబడితే, మీరు ఒకే వైర్తో జతచేయబడిన ప్రాసెసర్ను ఫ్లాష్ చేయవచ్చు మరియు డీబగ్ చేయవచ్చు. కానీ దీన్ని ఉపయోగించడానికి, మీకు ప్రత్యేక హార్డ్వేర్ అవసరం, అది అట్మెల్కు సన్నాహకంగా ఉంటుంది.
మిగిలిన రెండు బిట్స్ మీరు ఏమి చేస్తున్నారో మీకు ఖచ్చితంగా తెలియకపోతే మీరు తప్పించాల్సిన బిట్స్. ఇవి RSTDISBL బిట్ -7 మరియు SPIEN బిట్ -5. RSTDISBL (బాహ్య రీసెట్ డిసేబుల్) పేరు బాహ్య హార్డ్వేర్ రీసెట్ పిన్ను నిలిపివేస్తుంది, మరియు SPIEN బిట్ SPI ప్రోగ్రామింగ్ ఇంటర్ఫేస్ను నిలిపివేయడానికి ఉపయోగించబడుతుంది. ఈ రెండు బిట్లలో దేనినైనా నిలిపివేయడం వలన మీ AVR ను పూర్తిగా ఇటుక చేయవచ్చు; కాబట్టి, వారిని ఒంటరిగా వదిలివేయడం మంచి ఆలోచన.
తక్కువ ఫ్యూజ్ బైట్లు:
దిగువ చిత్రంలో మీరు చూడగలిగినట్లుగా, డేటాషీట్ యొక్క టేబుల్ 27-7: ATmega328P IC యొక్క లోయర్ ఫ్యూజ్ బిట్లను చూపిస్తుంది.
ఈ ఫ్యూజ్ బైట్ AVR లోపల గడియార మూలాన్ని మరియు గడియారం యొక్క కొన్ని ఇతర పారామితులను ఏర్పాటు చేయడానికి బాధ్యత వహిస్తుంది. ఈ విభాగంలో, మేము దాని గురించి నేర్చుకుంటాము.
7 వ బిట్ లేదా సికెడివి 8 ఫ్లాగ్ గడియార మూలాన్ని 8 ద్వారా విభజించడానికి సెట్ చేయవచ్చు, ఇది చాలా ఉపయోగకరంగా ఉంటుంది, మీరు AVR ను ప్రోగ్రామింగ్ చేయడానికి ప్రయత్నించినట్లయితే మీకు ఇది ఇప్పటికే తెలిసి ఉండవచ్చు. తదుపరి బిట్ CKOUT బిట్ మరియు ఇది తక్కువ ఫ్యూజ్ బైట్లో 6 వ బిట్. దీన్ని ప్రోగ్రామింగ్ చేస్తే మైక్రోకంట్రోలర్ యొక్క PORTB0 పై అంతర్గత గడియార సిగ్నల్ను అవుట్పుట్ చేస్తుంది.
బిట్స్ -5 మరియు బిట్ -4 ఎస్యుటి 1 మరియు ఎస్యుటి 0 మైక్రోకంట్రోలర్ యొక్క ప్రారంభ సమయాన్ని నియంత్రిస్తాయి. సరఫరా వోల్టేజ్ ఆమోదయోగ్యమైన కనీస ప్రవేశ వోల్టేజ్ స్థాయికి చేరుకోవడానికి ముందు లేదా జరగకపోవచ్చు. మరియు మైక్రోకంట్రోలర్ యొక్క గడియార మూలాన్ని ఎంచుకోవడానికి చివరి నాలుగు CKSEL0 - 4 బిట్లను ఉపయోగిస్తారు. క్రింద చూపిన పట్టిక గడియార మూలాన్ని ఏర్పాటు చేయడానికి బాధ్యత వహించే ఈ నాలుగు బిట్ల గురించి మీకు మంచి అవగాహన ఇస్తుంది, మీరు డేటాషీట్ యొక్క క్లాక్ సోర్స్ విభాగంలో ఈ పట్టికను కనుగొనవచ్చు.
ఇప్పుడు, మనం ఇంకేముందు రాకముందే, ఓసిలేటర్ ప్రారంభ ఆలస్యం కోసం పట్టిక ద్వారా నేను వెళ్ళవలసిన మరో విషయం ఉంది. ప్రారంభ ఆలస్యం ద్వారా, మేము తక్కువ ఫ్యూజ్ బైట్ యొక్క 4 మరియు 5 బిట్లను సూచిస్తున్నాము. సర్క్యూట్ పనిచేసే పరిస్థితి మరియు మీరు ఉపయోగిస్తున్న ఓసిలేటర్ రకాన్ని బట్టి ఆలస్యాన్ని సెట్ చేయాలి. పవర్-అప్ లేదా పవర్-డౌన్ సీక్వెన్స్ నిర్వహించినప్పుడు డిఫాల్ట్ విలువలు 6 గడియార చక్రాలతో నెమ్మదిగా పెరుగుతున్న శక్తిని సెట్ చేస్తాయి. తరువాత, ప్రారంభించిన తర్వాత 65 గడియారంతో 14 గడియార చక్రాల ఆలస్యం ఉంది.
ఓహ్! అది జీర్ణించుకోవడానికి చాలా సమాచారం. ఇంకా ముందుకు వెళ్ళే ముందు, ఈ విభాగాన్ని శీఘ్ర గమనికతో ముగించండి.
గమనిక:
మీరు డేటాషీట్ను జాగ్రత్తగా చూస్తే, మీరు గమనించాలి, ఫ్యూజ్ బిట్ను ప్రోగ్రామింగ్ చేయడం అంటే దాన్ని తక్కువ సెట్ చేయడం, అంటే 0 (సున్నా), ఇది పోర్టును అధికంగా లేదా తక్కువగా చేయడానికి మేము సాధారణంగా చేసే దానికి వ్యతిరేకం. మీ ఫ్యూజులను కాన్ఫిగర్ చేసేటప్పుడు మీరు దానిని గుర్తుంచుకోవాలి.
ఆర్డునోలో ఫ్యూజ్ బిట్స్
పై విభాగంలో ఫ్యూజ్ల గురించి మేము చాలా మాట్లాడాము, కాని ఈ విభాగంలో, వాటిని ఎలా కాన్ఫిగర్ చేయాలి మరియు మైక్రోకంట్రోలర్లో ఎలా వ్రాయాలి అనే దాని గురించి మాట్లాడుదాం. దాని కోసం, అవ్రుడ్యూడ్ అనే సాధనం మాకు అవసరం . ఇది AVR మైక్రోకంట్రోలర్లలో మెమరీని చదవడానికి, వ్రాయడానికి మరియు సవరించడానికి ఉపయోగపడే సాధనం. ఇది SPI తో పనిచేస్తుంది మరియు ఇది వివిధ రకాల ప్రోగ్రామర్లకు మద్దతు యొక్క సుదీర్ఘ జాబితాను కలిగి ఉంది. మీరు క్రింద ఇచ్చిన లింక్ నుండి సాధనాన్ని డౌన్లోడ్ చేసుకోవచ్చు. అలాగే, మేము మా అభిమాన మైక్రోకంట్రోలర్ ఆర్డునోను ఉపయోగిస్తాము.
- అవ్రుడ్యూ వెర్షన్ 6.3 విండోస్-మింగ్ 32 ని డౌన్లోడ్ చేసుకోండి
ఇప్పుడు, మీకు అవ్రుడ్యూడ్ ఉన్నందున, మీరు దానిని సంగ్రహించి, ఆ ఫోల్డర్లో కమాండ్ విండోను తెరవాలి. అలాగే, మీరు దీన్ని తరువాత ఉపయోగించాలనుకుంటే, మీరు మీ విండోస్ ఎన్విరాన్మెంట్ వేరియబుల్ విభాగానికి ఫోల్డర్ మార్గాన్ని జోడించవచ్చు. కానీ నేను దానిని నా డెస్క్టాప్లో ఉంచి అక్కడ కమాండ్ విండోను తెరుస్తాను. మేము దాన్ని పూర్తి చేసిన తర్వాత, మేము USBasp ప్రోగ్రామర్ను మా PC కి కనెక్ట్ చేస్తాము మరియు మా USBasp ప్రోగ్రామర్కు సరైన డ్రైవర్ ఉందని నిర్ధారించుకుంటాము. మేము అలా చేసిన తర్వాత, మేము వెళ్ళడం మంచిది మరియు ముందుగా డిఫాల్ట్ ఫ్యూజ్ విలువను చదువుతాము. అలా చేయడానికి, మీరు ఈ క్రింది ఆదేశాన్ని అమలు చేయాలి.
avrdude.exe -c usbasp -p m328p -U lfuse: r: low_fuse_val.txt: h -U hfuse: r: high_fuse_val.txt: h -U efuse: r: ext_fuse_val.txt: h
ప్రతిదీ సరిగ్గా ఉంటే, ఈ ఆదేశం ఫ్యూజ్ బైట్లను చదివి వాటిని మూడు వేర్వేరు టెక్స్ట్ ఫైల్లుగా ఉంచుతుంది. దిగువ చిత్రం మీకు ప్రక్రియ గురించి మంచి ఆలోచన ఇస్తుంది.
మీరు గమనిస్తే, అవ్రుడు ఆర్డునో నానోలోని ఫ్యూజ్ బిట్స్ ద్వారా చదివి వాటిని మూడు వేర్వేరు టెక్స్ట్ ఫైళ్ళలో సేవ్ చేసారు. ఇప్పుడు, మేము వాటిని తెరిచి మూడు విలువలను పొందాము; కోసం 0xFD: EFUSE కోసం HFUSE: 0XDA, కోసం LFUSE: 0xFF. ఇది ఆర్డునో నానో కోసం మాకు లభించిన డిఫాల్ట్ ఫ్యూజ్ విలువ. ఇప్పుడు, ఈ బిట్లను బైనరీగా మార్చండి మరియు డేటాషీట్ నుండి వాటి డిఫాల్ట్ విలువతో పోల్చండి. దిగువ పట్టిక ఖచ్చితంగా చూపిస్తుంది.
సౌలభ్యం కోసం, ఫ్యూజ్ బిట్స్ హెక్సాడెసిమల్ విలువలలో వ్రాయబడ్డాయి, కాని మేము వాటిని బైనరీ విలువలుగా మార్చి డేటాషీట్తో పోల్చినట్లయితే, ఏమి జరుగుతుందో మాకు తెలుస్తుంది. లోయర్ ఫ్యూజ్ బైట్తో ప్రారంభిద్దాం. పై స్ట్రింగ్ నుండి మీరు చూడగలిగినట్లుగా, ఇది 0XFF కు సెట్ చేయబడింది మరియు బైనరీ విలువ 0B11111111 అవుతుంది.
స్టాక్ లోయర్ ఫ్యూజ్ బైట్లను ఆర్డునోతో పోల్చడం:
తక్కువ ఫ్యూజ్ బైట్ |
బిట్ నం. |
AVR లో డిఫాల్ట్ విలువ |
Arduino యొక్క డిఫాల్ట్ విలువ |
CKDIV8 |
7 |
0 (ప్రోగ్రామ్ చేయబడింది) |
1 (ప్రోగ్రామ్ చేయనిది) |
CKOUT |
6 |
1 (ప్రోగ్రామ్ చేయనిది) |
1 (ప్రోగ్రామ్ చేయనిది) |
SUT1 |
5 |
1 (ప్రోగ్రామ్ చేయనిది) |
1 (ప్రోగ్రామ్ చేయనిది) |
SUT0 |
4 |
0 (ప్రోగ్రామ్ చేయబడింది) |
1 (ప్రోగ్రామ్ చేయనిది) |
CKSEL3 |
3 |
0 (ప్రోగ్రామ్ చేయబడింది) |
1 (ప్రోగ్రామ్ చేయనిది) |
CKSEL2 |
2 |
0 (ప్రోగ్రామ్ చేయబడింది) |
1 (ప్రోగ్రామ్ చేయనిది) |
CKSEL1 |
1 |
1 (ప్రోగ్రామ్ చేయనిది) |
1 (ప్రోగ్రామ్ చేయనిది) |
CKSEL0 |
0 |
0 (ప్రోగ్రామ్ చేయబడింది) |
1 (ప్రోగ్రామ్ చేయనిది) |
హయ్యర్ ఫ్యూజ్ బైట్ బైనరీలో 0XDA కి సెట్ చేయబడింది, అది 0B11011010.
బైనరీలో అధిక ఫ్యూజ్ బైట్:
హై ఫ్యూజ్ బైట్ |
బిట్ నం. |
AVR లో డిఫాల్ట్ విలువ |
Arduino యొక్క డిఫాల్ట్ విలువ |
RSTDISBL |
7 |
1 (ప్రోగ్రామ్ చేయనిది) |
1 (ప్రోగ్రామ్ చేయనిది) |
DWEN |
6 |
1 (ప్రోగ్రామ్ చేయనిది) |
1 (ప్రోగ్రామ్ చేయనిది) |
SPIEN |
5 |
0 (ప్రోగ్రామ్ చేయబడింది) |
0 (ప్రోగ్రామ్ చేయబడింది) |
WDTON |
4 |
1 (ప్రోగ్రామ్ చేయనిది) |
1 (ప్రోగ్రామ్ చేయనిది) |
తప్పించుకోండి |
3 |
1 (ప్రోగ్రామ్ చేయనిది) |
1 (ప్రోగ్రామ్ చేయనిది) |
BOOTSZ1 |
2 |
0 (ప్రోగ్రామ్ చేయబడింది) |
0 (ప్రోగ్రామ్ చేయబడింది) |
BOOTSZ0 |
1 |
0 (ప్రోగ్రామ్ చేయబడింది) |
1 (ప్రోగ్రామ్ చేయనిది) |
BOOTRST |
0 |
1 (ప్రోగ్రామ్ చేయనిది) |
0 (ప్రోగ్రామ్ చేయబడింది)) |
విస్తరించిన ఫ్యూజ్ బైట్ కోసం సెట్టింగ్ 0XFD కి సెట్ చేయబడింది, బైనరీలో ఇది 0B11111101.
బైనరీలో విస్తరించిన ఫ్యూజ్ బైట్:
విస్తరించిన ఫ్యూజ్ బైట్ |
బిట్ నం. |
AVR లో డిఫాల్ట్ విలువ |
Arduino యొక్క డిఫాల్ట్ విలువ |
- |
7 |
1 |
1 |
- |
6 |
1 |
1 |
- |
5 |
1 |
1 |
- |
4 |
1 |
1 |
- |
3 |
1 |
1 |
BODLEVEL2 |
2 |
1 (ప్రోగ్రామ్ చేయనిది) |
1 (ప్రోగ్రామ్ చేయనిది) |
BODLEVEL1 |
1 |
1 (ప్రోగ్రామ్ చేయనిది) |
0 (ప్రోగ్రామ్ చేయబడింది) |
BODLEVEL0 |
0 |
1 (ప్రోగ్రామ్ చేయనిది) |
1 (ప్రోగ్రామ్ చేయనిది) |
ఇప్పుడు, ఇది ఈ విభాగం యొక్క ముగింపును సూచిస్తుంది. ప్రస్తుతానికి, మేము AVR మైక్రోకంట్రోలర్ మరియు దాని ఫ్యూజ్ బిట్ల గురించి చాలా నేర్చుకున్నాము. కాబట్టి, ఆర్డునో నానోలోని కొన్ని ఫ్యూజ్ బిట్లను మార్చడం మరియు ప్రయోగాలు చేయడం ద్వారా మన సిద్ధాంతాన్ని పరీక్షించడం ద్వారా ఈ కథనాన్ని మూటగట్టుకుందాం.
AVR లో ఫ్యూజులను పరీక్షించడానికి అవసరమైన భాగాలు
పై భాగంలోని ఫ్యూజ్ల గురించి మేము చాలా మాట్లాడాము. కానీ వ్యాసంలో ఇంకా ముందుకు సాగడానికి, మాకు కొన్ని హార్డ్వేర్ భాగాలు మరియు కొన్ని సాఫ్ట్వేర్ సాధనాలు అవసరం. ఈ విభాగంలో, మేము వాటి గురించి మాట్లాడుతాము. చిత్రాలతో అవసరమైన భాగాల జాబితా క్రింద చూపబడింది.
- బ్రెడ్బోర్డ్ - 1
- ఆర్డునో నానో - 1
- USBasp AVR ప్రోగ్రామర్ - 1
- USB కేబుల్ - 1
- AVR 10-పిన్ నుండి 6- పిన్ కన్వర్టర్ - 1
- అవ్రుడ్యూడ్ (AVR ప్రోగ్రామింగ్ కోసం సాఫ్ట్వేర్ సాధనం)
- LED - 1
- 330 ఆర్ రెసిస్టర్ - 1
- జంపర్ కేబుల్స్
AVR లో ఫ్యూజ్ బిట్లను పరీక్షించడానికి స్కీమాటిక్
హార్డ్వేర్ పరీక్ష సెటప్ ఈ సెటప్లో క్రింద చూపబడింది. మేము ఆర్డునో నానోను యుఎస్బి కేబుల్తో పిసికి కనెక్ట్ చేసాము మరియు యుఎస్బాస్ప్ ప్రోగ్రామర్ను పిసికి కనెక్ట్ చేసాము. ఈ వ్యాసం యొక్క లక్ష్యం AVR లో ఫ్యూజ్ బిట్లను ప్రోగ్రామ్ చేయడం. ఆ కారణంగా, మేము USBasp ప్రోగ్రామర్ను Arduino తో కనెక్ట్ చేసాము. దిగువ చిత్రం మీకు సెటప్ గురించి మంచి ఆలోచన ఇస్తుంది.
AVR లో ఫ్యూజులను పరీక్షిస్తోంది
పరీక్ష సెటప్ క్రింద చూపబడింది. మీరు గమనిస్తే, మేము ఆర్డునో మరియు యుఎస్బాస్ప్ ప్రోగ్రామర్ను నా ల్యాప్టాప్ యొక్క యుఎస్బికి కనెక్ట్ చేసాము.
ఇప్పుడు Arduino IDE ని తెరిచి బేసిక్ బ్లింక్ స్కెచ్ అప్లోడ్ చేద్దాం. బేసిక్ బ్లింక్ స్కెచ్ యొక్క కంటెంట్ స్వీయ వివరణాత్మకమైనది, కాబట్టి నేను దాని గురించి ఎటువంటి వివరాలు ఉంచలేదు.
పిన్ నంబర్ 13 పై దారితీసినట్లు మెరిసేటట్లు మీరు వీడియోలో చూస్తారు. ఇప్పుడు ఫ్యూజ్ సెట్టింగులను సర్దుబాటు చేసి దాని డిఫాల్ట్ విలువలకు సెట్ చేద్దాం. మరియు మేము ఇంతకుముందు డేటాషీట్లో చూసినట్లుగా; EFUSE 0XFF ఉంది; HFUSE D9; LFUSE: 62. ఇప్పుడు దాన్ని అవ్రుడ్యూడ్తో కాన్ఫిగర్ చేద్దాం, దాన్ని ఫ్లాష్ చేసి, ఏమి జరుగుతుందో చూద్దాం. మేము ఉపయోగిస్తున్న కోడ్-
avrdude -c usbasp -p m328P -U lfuse: w: 0x62: m -U hfuse: w: 0xd9: m -U efuse: w: 0xff: m
నేను దీన్ని చేసిన తర్వాత, LED చాలా నెమ్మదిగా మెరిసిపోతుందని మీరు చూస్తారు ఎందుకంటే మేము 16Mhz గడియారం విలువను లెక్కించాము మరియు ప్రోగ్రామ్ చేసాము మరియు ఇప్పుడు ఫ్యూజులను కాల్చిన తరువాత, ఇది 1Mhz అంతర్గత RC ఓసిలేటర్ మాత్రమే. అందుకే ఎల్ఈడీ చాలా నెమ్మదిగా మెరిసిపోతోంది. ఇప్పుడు మరోసారి స్కెచ్ను అప్లోడ్ చేయడానికి ప్రయత్నిద్దాం. Arduino లోపం ఇస్తుందని మరియు కోడ్ అప్లోడ్ చేయబడలేదని మేము చూస్తాము. ఎందుకంటే ఫ్యూజ్లను మార్చడం ద్వారా, మేము బూట్లోడర్ సెట్టింగులను కూడా గందరగోళంలో పడేసాము. మీరు దానిని క్రింది చిత్రంలో చూడవచ్చు.
దీన్ని పరిష్కరించడానికి మరియు ఆర్డునోను మునుపటిలా ఉంచడానికి, మేము ఆర్డునో కోసం బూట్లోడర్ను మళ్లీ బర్న్ చేయాలి. అలా చేయడానికి, ఉపకరణాలు -> ప్రోగ్రామర్- యుఎస్బాస్ప్కు వెళ్లండి మరియు మేము అలా చేసిన తర్వాత, మనం మళ్ళీ సాధనాలకు వెళ్ళవచ్చు మరియు బర్న్ బూట్లోడర్ ఎంపికపై క్లిక్ చేయవచ్చు. ఇది మీ ఆర్డునోలో స్టాక్ బూట్లోడర్ను మళ్లీ బర్న్ చేస్తుంది మరియు అంతా మునుపటిలాగే తిరిగి వెళ్తుంది.
బూట్లోడర్ తిరిగి ఆర్డునోకు వెలుగులోకి వచ్చిన తరువాత, అది తిరిగి దాని అసలు స్థితికి వెళ్లింది మరియు బూట్లోడర్ మళ్లీ కాలిపోయిన తర్వాత చివరి చిత్రం మీకు మెరిసే LED ని చూపిస్తుంది.
మరియు ఇది ఈ వ్యాసం ముగింపును సూచిస్తుంది. మీరు వ్యాసాన్ని ఆస్వాదించారని మరియు క్రొత్తదాన్ని నేర్చుకున్నారని నేను ఆశిస్తున్నాను. వ్యాసానికి సంబంధించి మీకు ఏవైనా ప్రశ్నలు ఉంటే, క్రింద ఒక వ్యాఖ్యను ఇవ్వడానికి వెనుకాడరు.