UART გადამცემი მიკროკონტროლერში.
პუბლიკაციაში „UART მიკროკონტროლერში“ განხილული იყო მიკროკონტროლერის UART მიმღების მუშაობის პრინციპები, მაგრამ თითქმის არაფერი იყო ნათქვამი UART გადამცემის შესახებ. ამ პუბლიკაციაში შევეცდები გამოვასწორო ეს ხარვეზი.
გადამცემის რეგისტრის როლს, ისევე როგორც მიმღების შემთხვევაში, ასრულებს UDR მონაცემთა რეგისტრი. გადამცემის მუშაობის ნებართვა ხორციელდება UCSRB რეგისტრის TXEN ბიტის „1“ -ში დაყენებით. ამ შემთხვევაში, პირველივე ბაიტი, რომელიც ჩაწერილი იქნება UDR რეგისტრში, გადაიწერება გადამცემის წანაცვლების რეგისტრში, საიდანაც მიმდევრობით გამოვა მიკროკონტროლერის TXD გამომყვანზე (რა თქმა უნდა, შესაბამისი “Start” და “Stop” ბიტების თანხლებით). თუ გადასაცემი ბაიტის ყველა ბიტი უკვე გადაცემულია, მაშინ ახლი გადასაცემი ბაიტის გადაწერა წანაცვლების რეგისტრში ხორციელდება UDR რეგისტრში ამ ბაიტის გადაგზავნისთანავე. თუ გადასაცემი ბაიტი გადაიგზავნა UDR რეგისტრში მანამ, სანამ წინა ბაიტის მიმდევრობითი გადაცემა ჯერ დასრულებული არ არის, მაშინ მისი გადაწერა წანაცვლების რეგისტრში ხორციელდება წინა ბაიტის გადაცემის დასრულების შემდეგ. გადასაცემი ბაიტის UDR რეგისტრიდან წანაცვლების რეგისტრში გადაწერის ფაქტზე მიუთითებს UCSRA რეგისტრის UDRE ბიტის „1“-ში გადართვა. ეს ბიტი (ალამი) მიუთითებს გადამცემის მზად ყოფნაზე მიიღოს ახალი გადასაცემი ბაიტი. თუ მორიგი ბატის გადაცემის დამთავრების მომენტისათვის UDR რეგისტრი ცარიელი აღმოჩნდება, მაშინ განხორციელდება წყვეტის ალმის „გადაცემა დამთავრებულია“ გააქტიურება – UCSRA რეგისტრის TXC ბიტის „1“-ში გადართვა. გადამცემის გამორთვა ხორციელდება UCSRB რეგისტრის TXEN ბიტის „0“ -ში დაყენებით.
დაწვრილებითი ინფორმაციისათვის გაეცანით პუბლიკაციას “მიმდევრობითი (Serial) პორტი“.
სურათზე ნაჩვენებია Algorithm Builder -ში შესაბამისი სეტერის დაყენება. განყოფილებიდან “Files” შეგიძლიათ ჩამოტვირთოთ არქივი “UART_Transmitter_receaver.rar”, რომელიც შეიცავს Algorithm Builder -ის პროექტს (.alp) და Proteus -ის პროექტს (.DSN). გაუშვით კომპიუტერზე Proteus -ს პროექტი და ვირტუალური ტერმინალის ფანჯარაში ჩაწერეთ ციფრები 0 -დან 7-ჩათვლით. სქემაზე აინთება ციფრის შესაბამისი შუქდიოდები, ხოლო UART გიპასუხებთ “OK”. ვირტუალურ ტერმინალში სხვა სიმბოლოების ჩაწერისას შუქდიოდების მდგომარეობა არ შეიცვლება, ხოლო UART შეგატყობინებთ, რომ მონაცემების მნიშვნელობები არასწორია – “ERROR”.
შეგახსენებთ, რომ თუ მიკროკონტროლერი იმართება პერსონალური კომპიუტერიდან, მაშინ საჭირო იქნება დონეების შემათანხმებელი მოწყობილობის (მაგ. MAXIM MAX232) გამოყენება.
რობოტექნიკის 3 კანონი
1. რობოტმა არ შეიძლება მიაყენოს ზიანი ადამიანს ან დაუშვას, რომ მისი უმოქმედობით ადამიანს მიადგეს ზიანი.
2. რობოტმა უნდა შეასრულოს ადამიანის ყველა ბრძანება, თუ ეს არ ეწინააღმდეგება პირველ კანონს.
3. რობოტმა უნდა იზრუნოს საკუთარ თავზე, თუ ეს არ ეწინააღმდეგება პირველ და მეორე კანონებს..
აიზეკ აზიმოვი.
სტატისტიკა
- 281,719 ნახვა
ძიება საიტზე
რას დავინახავთ, თუ ინფრაწითელი ფანქრით დავხატავთ?
ციტატა
კითხვის სწორად დასმისათვის პასუხის უდიდესი ნაწილი უკვე უნდა იცოდე.რობერტ შეკლი. "მოპასუხე".
Files
Datasheets
Top Posts & Pages
-
უახლესი პოსტები
- OLED დისპლეი
- რობოტი 42
- რობოტი “კუსა” გილოცავთ ახალ 2018 წელს.
- მარტივი რობოტი – გააკეთე შენ თვითონ.
- პი-ს დღე
- ჩინური სახურავი.
- რედუქტორი სერვო ძრავისთვის.
- ბლუთუზი
- რობოტი “კუსა” (თავი).
- ხუთი ვაშლი.
- ARDUINO + PROTEUS
- დიფერენციალი
- რობოტი “ანდრო”.
- რობოტი მაქსიმუსი – ნიჭიერი
- ხაზის გასწვრივ მოძრაობა
- საკერავი მანქანის მუშაობის პრინციპი
- AVR ALGORITHM BUILDER ქართული წიგნი
- ედი და მაქსი რუსთავი2-ზე
- ზეგამტარობა. მაგნიტური ლევიტაცია.
- GDS-TV. გადაცემა “კიბერჰაუსი”.
- გიგანტური რობოტი თბილისში.
- მსოფლიოს საუკეთესო რობოტები.
- კოსმოსური ზონდი “როზეტა”
- იუტუ – მთვარეზე მცხოვრები კურდღელი.
- Innov-a-thon Tbilisi
- სარაკეტო საწვავი.
- GEOROBOT
- პრაქტიკული სქემები მიკროკონტროლერებზე. Mersedes 230 კლიმატის კონტროლის ძრავის მართვა.
- UART გადამცემი მიკროკონტროლერში
- Kinect – დღე 4.
არქივი თარიღის მიხედვით
რობოტები YOUTUBE
აიზეკ აზიმოვი (ვიდეო)
მიკროკონტროლერი
კონსტრუქციები ATmega მიკროკონროლერზე .....................................................................................კატეგორიები
- ელექტრონიკა (40)
- კომპიუტერული ტექნიკა (14)
- მიკროკონტროლერები (23)
- პროგრამირება (14)
- რობოტები (19)
- ფიზიკა (19)
- Uncategorized (16)
სხვა ქართული რესურსები მიკროკონტროლერების შესახებ
საუკეთესო ქართული ბლოგი მეცნიერების შესახებ.
Blog from Brazil
საიტის გეოგრაფია
მეტა
Contacts
zalian kargia ,madloba informaciistvis, kargi iqneboda programis patara nawilic rom dagedot vizualurad dzalian dagvexmareba, madloba winaswar.
OK.პუბლიკაციაში “UART გადამცემი მიკროკონტროლერში” შევიტანე თქვენთვის სასურველი ცვლილებები.
შეგიძლიათ modbus პროტოკოლზე დაწეროთ რამე?
თუ რეგისტრს UDR აქვს მხოლოდ ერთი მისამართი მაშინ როგორ უნდა იყოს გამოყენებული ასეთი რეგისტრი როგორც გადაცემისთვის ასევე მიღებისთვის, ან დავუშვად ერთი და იგივე დროს ხდება რიგორც მიღება ასევე
გადაცემა მონაცემის, როგორ მოიქცევა UDR როცა მივმართავთ მას წასაკითხად მასში იქნება გადასაცემი მონაცემი თუ მიღებული მონაცემი?
ყვალა Atmega ტიპის მიკროკონტროლერებში უნივერსალური სინქრონულ/ასინქრონული მიმღებ-გადამცემები (USART) მუშაობენ ნახევრად დუპლექსურ რეჟიმში, ანუ მიღება და გადაცემა ერთდროულად არ ხდება.
მაშასადამე ჯერ უნდა დაველოდოდ გადაცემას შევამოწმო განსაზღვრული რეგისტრის განსაზღვრული ფლაგი და როდესაც დამთავრდება გადაცემა დავიწყო წაკიტხვა. ეს მიკროსხემის დონეზე ადვილად შევძლებტ მაგრამ როცა მს გადმოვცემტ მონაცემებს სხვა მოწყობილობიდან მან როგორ უნდა შეამოწმოს , ის გადმოსცემს მონაცემბს გადაამოწმებს კონტროლის ბიტს და დაამტავრებს გადაცემას. ანუ მს მიმღებმა რაღაც ალგორიტმიტ ტუ არ დაუდასტურა მიგება მონაცემის გადმომცემს, გადმომცემი არ გაიმეორებს გადაცემას. შეგვიძლია ამის ალგორიტმიც დავწერი მაგრამ დავუშვად ასეტი სიტუაცია, მს1 გადასცემს მს3 მონაცემებს ამავე დროს მს2 ცდილობს გადასცეს მს1 მონაცემი, მაგრამ რადგან მს2 დასტურს ვერ ღებულობს მს1 დან ის ცდილობს გადაცემის კვლა და კვლავ განმეორებას რაზეც იხარჯება პროცესორის ტაქტები რასაც მოყვება ჩაციკვლა, com პორტებს ამისატვის სპეციალურ პინებზე აყენებენ სიგნალს რიტაც გებულობენ მზად ყოფნას მიმღების. მს ეს არ აქვს მე როგორც ვხვდები ეს რავად უნდა აღვწეროტ ტუ არსებობს სხვა ხერხი მიკროსხემაში ამ საკიტხის გადასაწყვეტად. ატმეგა მიკროსხემებს ვგულისხმობ.
უებარი ხერხი არსებობს – პრაქტიკული გამოცდილება.