AVR మైక్రోకంట్రోలర్ (Atmel 8) సీరియల్ కమ్యూనికేషన్ USART కాన్ఫిగరేషన్

సమస్యలను తొలగించడానికి మా పరికరాన్ని ప్రయత్నించండి





మైక్రోకంట్రోలర్ ఒక నియంత్రణ పరికరం, ఇది RAM, ROM TIMERS, సీరియల్ డేటా కమ్యూనికేషన్ మొదలైనవి, కొన్ని ముందే నిర్వచించిన పనులను నిర్వహించడానికి అవసరం. ఈ రోజుల్లో, ఆధునిక రకం మైక్రోకంట్రోలర్లు కొన్ని కావలసిన పనులను చేయటానికి వారి సామర్థ్యం మరియు సాధ్యత ప్రకారం అనేక రకాల అనువర్తనాలలో ఉపయోగిస్తారు మరియు ఈ నియంత్రికలు ఉన్నాయి 8051, ఎవిఆర్ మరియు పిఐసి మైక్రోకంట్రోలర్ . ఈ వ్యాసంలో, మేము ఆధునిక AVR ఫ్యామిలీ మైక్రోకంట్రోలర్ మరియు దాని ప్రోగ్రామింగ్ గురించి తెలుసుకోబోతున్నాము .

AVR మైక్రోకంట్రోలర్

AVR అనేది 1996 లో అట్మెల్ కార్పొరేషన్ చేత తయారు చేయబడిన ఒక రకమైన నియంత్రణ పరికరం. AVR దేనికోసం నిలబడదు, ఇది కేవలం పేరు. AVR మైక్రోకంట్రోలర్లు హార్వర్డ్ నిర్మాణాన్ని కలిగి ఉంటాయి , అందువల్ల, తక్కువ సంఖ్యలో యంత్ర స్థాయి సూచనలతో (RISC) పరికరం చాలా వేగంగా నడుస్తుంది. AVR మైక్రోకంట్రోలర్‌లలో 6-స్లీప్ మోడ్‌లు, ఇన్‌బిల్ట్ ADC, ఇంటర్నల్ ఓసిలేటర్ మరియు సీరియల్ డేటా కమ్యూనికేషన్ మొదలైన ఇతర మైక్రోకంట్రోలర్‌లతో పోలిస్తే ప్రత్యేక లక్షణాలు ఉంటాయి. AVR మైక్రోకంట్రోలర్లు వివిధ కార్యకలాపాలను నిర్వహించడానికి 8-బిట్, 16-బిట్ మరియు 32-బిట్ యొక్క విభిన్న కాన్ఫిగరేషన్లలో అందుబాటులో ఉన్నాయి.




AVR మైక్రోకంట్రోలర్

AVR మైక్రోకంట్రోలర్

AVR మైక్రోకంట్రోలర్‌లో USART సీరియల్ డేటా కమ్యూనికేషన్

USART అంటే యూనివర్సల్ సింక్రోనస్ మరియు ఎసిన్క్రోనస్ రిసీవర్ మరియు ట్రాన్స్మిటర్. ఇది రెండు ప్రోటోకాల్స్ యొక్క సీరియల్ కమ్యూనికేషన్. ఈ ప్రోటోకాల్ ఒకే తీగపై గడియార పప్పులకు సంబంధించి డేటాను బిట్ ద్వారా ప్రసారం చేయడానికి మరియు స్వీకరించడానికి ఉపయోగించబడుతుంది. ది AVR మైక్రోకంట్రోలర్ రెండు పిన్స్ ఉన్నాయి: TXD మరియు RXD, వీటిని ప్రత్యేకంగా డేటాను సీరియల్‌గా ప్రసారం చేయడానికి మరియు స్వీకరించడానికి ఉపయోగిస్తారు. ఏదైనా AVR మైక్రోకంట్రోలర్ దాని స్వంత లక్షణాలతో USART ప్రోటోకాల్‌ను కలిగి ఉంటుంది.



AVR మైక్రోకంట్రోలర్‌లో USART కమ్యూనికేషన్

AVR మైక్రోకంట్రోలర్‌లో USART కమ్యూనికేషన్

AVR USART యొక్క ప్రధాన లక్షణాలు

  • USART ప్రోటోకాల్ పూర్తి-డ్యూప్లెక్స్ ప్రోటోకాల్‌కు మద్దతు ఇస్తుంది.
  • ఇది అధిక రిజల్యూషన్ బాడ్ రేటును ఉత్పత్తి చేస్తుంది.
  • ఇది 5 నుండి 9 వరకు సీరియల్ డేటా బిట్లను ప్రసారం చేయడానికి మద్దతు ఇస్తుంది మరియు ఇది రెండు స్టాప్ బిట్లను కలిగి ఉంటుంది.

USART పిన్ కాన్ఫిగరేషన్

AVR యొక్క USART మూడు పిన్‌లను కలిగి ఉంటుంది:


  • RXD: USART రిసీవర్ పిన్ (ATMega8 PIN 2 ATMega16 / 32 పిన్ 14)
  • TXD: USART ట్రాన్స్మిటర్ పిన్ (ATMega8 PIN 3 ATMega16 / 32 పిన్ 15)
  • XCK: USART క్లాక్ పిన్ (ATMega8 PIN 6 ATMega16 / 32 పిన్ 1)

ఆపరేషన్ మోడ్లు

USART ప్రోటోకాల్ యొక్క AVR మైక్రోకంట్రోలర్ మూడు రీతుల్లో పనిచేస్తుంది:

  • అసమకాలిక సాధారణ మోడ్
  • అసమకాలిక డబుల్ స్పీడ్ మోడ్
  • సింక్రోనస్ మోడ్
ఆపరేషన్ మోడ్లు

ఆపరేషన్ మోడ్లు

అసమకాలిక సాధారణ మోడ్

ఈ కమ్యూనికేషన్ మోడ్‌లో, UBBR రిజిస్టర్ సెట్ చేసిన ముందే నిర్వచించిన బాడ్ రేట్ ద్వారా డేటా గడియార పప్పులు లేకుండా బిట్ ద్వారా ప్రసారం చేయబడుతుంది మరియు స్వీకరించబడుతుంది.

అసమకాలిక డబుల్ స్పీడ్ మోడ్

ఈ కమ్యూనికేషన్ మోడ్‌లో, బాడ్ రేటుకు రెట్టింపుగా బదిలీ చేయబడిన డేటా UBBR రిజిస్టర్ ద్వారా సెట్ చేయబడుతుంది మరియు UCSRA రిజిస్టర్‌లో U2X బిట్‌లను సెట్ చేస్తుంది. డేటాను త్వరగా ప్రసారం చేయడానికి మరియు స్వీకరించడానికి సింక్రోనస్ కమ్యూనికేషన్ కోసం ఇది హై-స్పీడ్ మోడ్. ఖచ్చితమైన బాడ్ రేట్ సెట్టింగులు మరియు సిస్టమ్ గడియారం అవసరమయ్యే చోట ఈ వ్యవస్థ ఉపయోగించబడుతుంది.

సింక్రోనస్ మోడ్

ఈ వ్యవస్థలో, క్లాక్ పల్స్కు సంబంధించి డేటాను ప్రసారం చేయడం మరియు స్వీకరించడం UCSRC రిజిస్టర్‌లో UMSEL = 1 గా సెట్ చేయబడింది.

AVR మైక్రోకంట్రోలర్‌లో USART కాన్ఫిగరేషన్

వంటి ఐదు రిజిస్టర్లను ఉపయోగించి USART ను కాన్ఫిగర్ చేయవచ్చు మూడు నియంత్రణ రిజిస్టర్లు , యుడిఆర్, యుసిఎస్ఆర్ఎ, యుసిఎస్ఆర్బి, యుసిఎస్ఆర్సి మరియు యుబిఆర్ఆర్ వంటి ఒక డేటా రిజిస్టర్ మరియు బాడ్-రేట్-సెలెక్షన్ రిజిస్టర్.

ప్రోగ్రామ్ కంపోజ్ చేయడానికి 7 దశలు

దశ 1: బౌడ్ రేట్‌ను లెక్కించండి మరియు సెట్ చేయండి

USART / UART యొక్క బాడ్ రేటు UBRR రిజిస్ట్రార్ చేత సెట్ చేయబడింది. ఈ రిజిస్టర్ నిర్దిష్ట వేగంతో డేటా ప్రసారాన్ని రూపొందించడానికి ఉపయోగించబడుతుంది. యుబిఆర్ఆర్ 16-బిట్ రిజిస్టర్. AVR 8-బిట్ మైక్రోకంట్రోలర్ కాబట్టి మరియు దాని రిజిస్టర్ పరిమాణం 8-బిట్. అందువల్ల, ఇక్కడ 16-బిట్ యుబిఆర్ఆర్ రిజిస్టర్ యుబిఆర్ఆర్ (హెచ్), యుబిఆర్ఆర్ (ఎల్) వంటి రెండు 8-బిట్ రిజిస్టర్లతో కూడి ఉంటుంది.

బాడ్ రేటు యొక్క సూత్రం

BAUD = చీకటి / (16 * (UBBR + 1))

UBRR రిజిస్టర్ యొక్క సూత్రం

UBRR = చీకటి / (16 * (BAUD-1))

AVR మైక్రోకంట్రోలర్ యొక్క ఫ్రీక్వెన్సీ 16MHz = 16000000 బాడ్ రేటును 19200Bps గా ume హించుకుందాం, అప్పుడు

UBRR = 16000000 / (16 * (19200-1))

UBRR = 16000000 / (16 * (19200-1))

యుబిఆర్ఆర్ = 51.099

చివరికి బాడ్ రేటును కనుగొనండి

BAUD = 16000000 / (16 * (51 + 1))
UBRR = 19230bps

దశ 2: డేటా మోడ్ ఎంపిక

డేటా ట్రాన్స్మిషన్ మోడ్, స్టార్ట్ బిట్ మరియు స్టాప్ బిట్ మరియు అక్షర పరిమాణం కంట్రోల్ అండ్ స్టేటస్ రిజిస్టర్ UCSRC చే సెట్ చేయబడింది.

డేటా మోడ్ ఎంపిక

డేటా మోడ్ ఎంపిక

దశ 3: డేటా ట్రాన్స్మిషన్ మోడ్ ఎంపిక

నియంత్రణ స్థితి రిజిస్టర్ యొక్క UMSEL బిట్ ద్వారా సింక్రోనస్ మరియు అసమకాలిక మోడ్ ఎంపిక చేయబడుతుంది. మేము UMSEL = 0 ఇస్తే, USART అసమకాలిక మోడ్‌లో పనిచేస్తుంది, లేకపోతే సింక్రోనస్ మోడ్‌లో పనిచేస్తుంది.

డేటా ట్రాన్స్మిషన్ మోడ్ ఎంపిక

డేటా ట్రాన్స్మిషన్ మోడ్ ఎంపిక

దశ 4: బిట్ ప్రారంభించండి మరియు బిట్ ఆపు

ప్రారంభ బిట్ మరియు స్టాప్ బిట్స్ డేటాను సీరియల్‌గా పంపించడానికి మరియు స్వీకరించడానికి ఒక మార్గం. సాధారణంగా ఏదైనా డేటా కీర్తి ఒక స్టాట్ బిట్ మరియు ఒక స్టాప్ బిట్‌ను కలిగి ఉంటుంది, అయితే AVR మైక్రోకంట్రోలర్‌లో డేటాను ప్రాసెస్ చేయడానికి ఒక ప్రారంభ బిట్ మరియు రెండు స్టాప్ బిట్‌లు ఉంటాయి. అదనపు స్టాప్ బిట్ కొంచెం అదనపు స్వీకరించే ప్రాసెసింగ్ సమయాన్ని జోడించడానికి ఉపయోగపడుతుంది. అధిక డేటా బదిలీ రేట్లకు ఇది చాలా ఉపయోగకరంగా ఉంటుంది, అయితే డేటా బదిలీ వేగం చాలా ఎక్కువగా ఉంది, కాబట్టి మాకు సరైన డేటా లభించదు. అందువల్ల, సరైన డేటాను పొందడానికి రెండు స్టాప్ బిట్లను ఉపయోగించడం ద్వారా ప్రాసెసింగ్ సమయాన్ని పెంచవచ్చు.

బిట్ ప్రారంభించండి మరియు బిట్ ఆపు

బిట్ ప్రారంభించండి మరియు బిట్ ఆపు

UCSRC యొక్క USBS బిట్ - నియంత్రణ స్థితి రిజిస్టర్ ద్వారా స్టాప్ బిట్ల సంఖ్యను ఎంచుకుంటారు. ఒక స్టాప్ బిట్ కోసం USBS = 0, మరియు రెండు స్టాప్ బిట్ల కోసం USBS = 1.

దశ 5: అక్షర పరిమాణాన్ని సెట్ చేయండి

విషయంలో ప్రాథమిక మైక్రోకంట్రోలర్లు ఒక సమయంలో డేటా బైట్ (8-బిట్స్) పంపడం మరియు స్వీకరించడం, AVR మైక్రోకంట్రోలర్‌లో అయినా, UCSRC రిజిస్టర్ యొక్క UCSZ బిట్ ద్వారా ప్రతి ఫ్రేమ్‌లో డేటా ఫ్రేమ్ ఆకృతిని ఎంచుకోవచ్చు.

డేటా ఫ్రేమ్ ఫార్మాట్

డేటా ఫ్రేమ్ ఫార్మాట్

దశ 6: స్వీకరించిన డేటాను నిల్వ చేయండి

AVR మైక్రోకంట్రోలర్ డేటాను ప్రసారం చేయడానికి మరియు స్వీకరించడానికి UDR బఫర్ రిజిస్టర్‌ను కలిగి ఉంటుంది. UDR అనేది 16-బిట్ బఫర్ రిజిస్టర్, దీనిలో డేటాను స్వీకరించడానికి (RXB) 8-బిట్స్ ఉపయోగించబడతాయి మరియు ఇతర బిట్స్ డేటాను (TXB) ప్రసారం చేయడానికి ఉపయోగిస్తారు. డేటా బఫర్ రిజిస్టర్‌ను ప్రసారం చేయడం దాని స్థానంపై వ్రాతపూర్వక డేటా కోసం యుడిఆర్ రిజిస్టర్‌కు గమ్యం అవుతుంది. డేటా బఫర్ రిజిస్టర్‌ను స్వీకరించడం UDR రిజిస్టర్ యొక్క కంటెంట్‌ను తిరిగి ఇస్తుంది.

దశ 7: ట్రాన్స్మిటర్ మరియు రిసీవర్ ఎనేబుల్

ప్రసారం చేయబడిన మరియు స్వీకరించిన డేటా మైక్రోకంట్రోలర్ యొక్క RXC మరియు TXC పిన్‌ల ద్వారా అనుమతించబడుతుంది, ఇవి మైక్రోకంట్రోలర్ యొక్క UCSRA రిజిస్టర్ ద్వారా సెట్ చేయబడతాయి. డేటా కోసం మైక్రోకంట్రోలర్ సెట్ చేసిన ఈ ఫ్లాగ్ బిట్ స్వీకరించడం మరియు ప్రసారం చేయడం ద్వారా పూర్తవుతుంది (TXC = RXC = 1).

బాడ్ రేట్‌ను రెట్టింపు చేయండి

మేము AVR యొక్క USART కమ్యూనికేషన్ యొక్క బదిలీ రేటును రెట్టింపు చేయవచ్చు మైక్రోకంట్రోలర్ 16 బిట్స్ నుండి 8-బిట్స్ వరకు UCSRA రిజిస్టర్‌లో U2X –bit ద్వారా సమర్థవంతంగా. ఈ బిట్ అసమకాలిక ఆపరేషన్‌పై మాత్రమే ప్రభావం చూపుతుంది. మేము ఈ బిట్‌ను (U2X = 1) సెట్ చేయగలిగితే, ఇది బాడ్ రేటును 16-బిట్ నుండి 8-బిట్‌కు తగ్గిస్తుంది, ఇది సింక్రోనస్ కమ్యూనికేషన్ కోసం బదిలీ రేటును రెట్టింపు చేస్తుంది.

డేటా యొక్క వేగవంతమైన ప్రాసెసింగ్ కోసం ఇది AVR మైక్రోకంట్రోలర్ యొక్క అధునాతన లక్షణం.

USART ప్రోగ్రామ్

ప్రతి మైక్రోకంట్రోలర్ ఒక నిర్దిష్ట IDE తో ముందే నిర్వచించబడింది మరియు ఈ IDE ఆధారంగా, మైక్రోకంట్రోలర్లు ఎంబెడెడ్ సి తో ప్రోగ్రామ్ చేయబడతాయి లేదా అసెంబ్లీ భాష. AVR మైక్రోకంట్రోలర్ ప్రోగ్రామింగ్‌ను AVR స్టూడియో అభివృద్ధి చేసింది. ఇంకా, మీకు అదనపు సమాచారం కావాలంటే మైక్రోకంట్రోలర్ ఆధారిత ప్రాజెక్టులను నిర్మించే దశలు , లేదా ఈ అంశంపై వివరణాత్మక సమాచారం, మీరు క్రింద వ్యాఖ్యానించడం ద్వారా మమ్మల్ని సంప్రదించవచ్చు.