Სარჩევი:

როგორ გააკეთოთ სტატიკური LCD დრაივერი I²C ინტერფეისით: 12 ნაბიჯი
როგორ გააკეთოთ სტატიკური LCD დრაივერი I²C ინტერფეისით: 12 ნაბიჯი

ვიდეო: როგორ გააკეთოთ სტატიკური LCD დრაივერი I²C ინტერფეისით: 12 ნაბიჯი

ვიდეო: როგორ გააკეთოთ სტატიკური LCD დრაივერი I²C ინტერფეისით: 12 ნაბიჯი
ვიდეო: 1. რა არის Arduino? როგორ მუშაობს კომპიუტერი? 2024, ივლისი
Anonim
როგორ გააკეთოთ სტატიკური LCD დრაივერი I²C ინტერფეისით
როგორ გააკეთოთ სტატიკური LCD დრაივერი I²C ინტერფეისით

თხევადი ბროლის მონიტორები (LCD) ფართოდ გამოიყენება კომერციული და სამრეწველო პროგრამებისთვის, ვიზუალური კარგი თვისებების, დაბალი ღირებულებისა და ენერგიის დაბალი მოხმარების გამო. ეს თვისებები LCD– ს აქცევს სტანდარტულ გადაწყვეტას ბატარეაზე მომუშავე მოწყობილობებისთვის, როგორიცაა პორტატული ინსტრუმენტები, კალკულატორები, საათები, რადიოები და ა.

ამასთან, იმის გასაკონტროლებლად, რასაც LCD აჩვენებს, LCD– ის ელექტრონულმა დრაივერმა უნდა შექმნას შესაბამისი ძაბვის ტალღის ფორმა LCD ქინძისთავებზე. ტალღის ფორმები უნდა იყოს AC (ალტერნატიული დენი) ბუნებაში, რადგან DC (პირდაპირი მიმდინარე) ძაბვები სამუდამოდ დააზიანებს მოწყობილობას. შესაბამისი დრაივერი ამ სიგნალებს მიაწოდებს LCD- ს ენერგიის მინიმალური მოხმარებით.

არსებობს ორი სახის LCD ეკრანი, სტატიკური, მხოლოდ ერთი უკანა პლანითა და ერთი პინით ცალკეული სეგმენტის კონტროლისთვის და მრავალფუნქციური, მრავალჯერადი საზურგე თვითმფრინავით და თითოეული სვეტისთვის დაკავშირებული რამდენიმე სეგმენტით.

ეს ინსტრუქცია წარმოგიდგენთ ერთი სტატიკური LCD დრაივერის დიზაინს SLG46537V GreenPAK ™ მოწყობილობით. დაპროექტებული LCD დრაივერი მართავდა LCD– ის 15 – მდე სეგმენტს, ელექტროენერგიის წყაროდან რამდენიმე მიკროამპერის დენის გამოყენებით და შესთავაზებდა I²C ინტერფეისს კონტროლისთვის.

შემდეგ სექციებში ნაჩვენები იქნება:

● ძირითადი ცოდნა ინფორმაცია LCD– ების შესახებ;

S SLG46537V GreenPAK LCD დრაივერის დიზაინი დეტალურად;

● როგორ მართოთ შვიდი სეგმენტიანი, ოთხნიშნა სტატიკური LCD ორი GreenPAK მოწყობილობით.

ქვემოთ ჩვენ აღვწერეთ საჭირო ნაბიჯები იმის გასაგებად, თუ როგორ იქნა დაპროგრამებული გამოსავალი I²C ინტერფეისით სტატიკური LCD დრაივერის შესაქმნელად. თუმცა, თუ თქვენ უბრალოდ გსურთ მიიღოთ პროგრამირების შედეგი, გადმოწერეთ GreenPAK პროგრამული უზრუნველყოფა, რომ ნახოთ უკვე დასრულებული GreenPAK დიზაინის ფაილი. შეაერთეთ GreenPAK განვითარების ნაკრები თქვენს კომპიუტერში და დააჭირეთ პროგრამას სტატიკური LCD დრაივერის შესაქმნელად I²C ინტერფეისით.

ნაბიჯი 1: თხევადი ბროლის ჩვენების საფუძვლები

თხევადი ბროლის ჩვენების საფუძვლები
თხევადი ბროლის ჩვენების საფუძვლები
თხევადი ბროლის ჩვენების საფუძვლები
თხევადი ბროლის ჩვენების საფუძვლები

Liquid Crystal Displays (LCD) არის ტექნოლოგია, რომელიც არ ასხივებს სინათლეს, ის მხოლოდ აკონტროლებს როგორ გადის გარე სინათლის წყარო. ეს გარე სინათლის წყარო შეიძლება იყოს გარემოს შუქი, ამრეკლავი ეკრანის ტიპით, ან შუქნიშნის შუქით ან ნათურიდან, გადამცემი ეკრანის ტიპში. LCD– ები აგებულია მინის ორი ფირფიტით (ზედა და ქვედა), თხევადი ბროლის თხელი ფენით (LC) მათ შორის და ორი მსუბუქი პოლარიზატორით (განაცხადის შენიშვნა AN-001-LCD ტექნოლოგიის საფუძვლები, Hitachi, განაცხადის შენიშვნა AN-005-ჩვენება რეჟიმები, ჰიტაჩი). პოლარიზატორი არის სინათლის ფილტრი მსუბუქი ელექტრომაგნიტური ველისთვის. მხოლოდ სინათლის კომპონენტები სწორი ელექტრომაგნიტური ველის მიმართულებით გადის პოლარიზატორში, ხოლო სხვა კომპონენტები დაბლოკილია.

თხევადი ბროლი არის ორგანული მასალა, რომელიც ბრუნავს სინათლის ელექტრომაგნიტურ ველს 90 გრადუსით ან მეტით. თუმცა, როდესაც ელექტრული ველი გამოიყენება LC– ზე, ის აღარ ბრუნავს შუქს. გამჭვირვალე ელექტროდების დამატებით ზედა და ქვედა ჩვენების მინაში, მისი კონტროლი შესაძლებელია, როდესაც შუქი გადის და როდის არა, ელექტრული ველის გარე წყაროსთან. ფიგურა 1 (იხ. განაცხადის შენიშვნა AN-001-LCD ტექნოლოგიის საფუძვლები, ჰიტაჩი) ზემოთ ასახავს ამ ოპერაციის კონტროლს. ფიგურა 1 -ში ეკრანი ბნელია, როდესაც არ არის ელექტრული ველი. ეს იმიტომ ხდება, რომ ორივე პოლარიზატორი ანაწილებს სინათლეს ერთი მიმართულებით. თუ პოლარიზატორები ორთოგონალურია, მაშინ ეკრანი ბნელი იქნება ელექტრული ველის არსებობისას. ეს არის ყველაზე გავრცელებული სიტუაცია ამრეკლავი ჩვენებისთვის.

მინიმალური ელექტრული ველი, ანუ ძაბვა, LCD ეკრანის გასაკონტროლებლად ეწოდება ON ბარიერს. LC გავლენას ახდენს მხოლოდ ძაბვაზე და თითქმის არ არის დენი LC მასალაში. LCD– ის ელექტროდები წარმოქმნის მცირე ტევადობას და ეს არის ერთადერთი დატვირთვა მძღოლისთვის. ეს არის იმის მიზეზი, რომ LCD არის დაბალი სიმძლავრის მოწყობილობა ვიზუალური ინფორმაციის საჩვენებლად.

ამასთან, მნიშვნელოვანია აღინიშნოს, რომ LCD არ შეუძლია დიდხანს იმუშაოს პირდაპირი დენის (DC) ძაბვის წყაროსთან. DC ძაბვის გამოყენება გამოიწვევს ქიმიურ რეაქციებს LC მასალაში, სამუდამოდ აზიანებს მას (განაცხადის შენიშვნა AN-001-LCD ტექნოლოგიის საფუძვლები, ჰიტაჩი). გამოსავალი არის LCD– ის ელექტროდებში ალტერნატიული ძაბვის (AC) გამოყენება.

სტატიკურ LCD– ებში, უკანა თვითმფრინავის ელექტროდი არის ჩაშენებული ერთ მინაში და ცალკეული LCD– ის სეგმენტები, ან პიქსელები, მოთავსებულია მეორე მინაში. ეს არის ერთ – ერთი უმარტივესი LCD ტიპი და საუკეთესო კონტრასტული თანაფარდობით. თუმცა, ამ ტიპის ჩვენება ჩვეულებრივ მოითხოვს ძალიან ბევრ ქინძისთავს თითოეული ცალკეული სეგმენტის გასაკონტროლებლად.

ზოგადად, მძღოლის კონტროლერი წყაროს კვადრატული ტალღის საათის სიგნალს უკანა პლანზე და საათის სიგნალს წინა სიბრტყის სეგმენტებისთვის ერთად. როდესაც უკანა საათის საათი ფაზაშია სეგმენტის საათთან, ფესვთა საშუალო კვადრატის (RMS) ძაბვა ორივე სიბრტყეს შორის არის ნული, ხოლო სეგმენტი გამჭვირვალეა. წინააღმდეგ შემთხვევაში, თუ RMS ძაბვა უფრო მაღალია ვიდრე LCD ON ბარიერი, სეგმენტი ბნელდება. ტალღის ფორმები უკანა პლანზე, ჩართულ და გამორთულ სეგმენტზე ნაჩვენებია ნახაზზე 2. როგორც ფიგურაში ჩანს, ON სეგმენტი უკანა პლანის სიგნალთან მიმართებაში ფაზის მიღმაა. გამორთული სეგმენტი ფაზაშია უკანა თვითმფრინავის სიგნალთან მიმართებაში. დაბალი ძაბვის და დაბალი სიმძლავრის ეკრანებზე გამოყენებული ძაბვა შეიძლება იყოს 3 -დან 5 ვოლტამდე.

საათის სიგნალი LCD უკანა პლანზე და სეგმენტებზე ჩვეულებრივ არის 30 -დან 100 ჰერცამდე დიაპაზონში, მინიმალური სიხშირე LCD ეკრანზე ვიზუალური ციმციმის ეფექტის თავიდან ასაცილებლად. უფრო მაღალი სიხშირეები თავს არიდებენ მთლიანი სისტემის ენერგომოხმარების შესამცირებლად. LCD და დრაივერებისგან შემდგარი სისტემა მოიხმარს მცირე დენს, მიკროამპერიანი რიგის მიხედვით. ეს ხდის მათ სრულყოფილად შესაფერისი დაბალი სიმძლავრის და ბატარეის დენის წყაროს პროგრამებისთვის.

მომდევნო სექციებში დეტალურად არის წარმოდგენილი LCD სტატიკური დრაივერის დიზაინი GreenPAK მოწყობილობით, რომელსაც შეუძლია შექმნას უკანა პლანზე საათის სიგნალი და ინდივიდუალური სეგმენტის საათის სიგნალი კომერციული LCD– ისთვის.

ნაბიჯი 2: GreenPAK დიზაინი ძირითადი ბლოკის დიაგრამა

GreenPAK დიზაინი ძირითადი ბლოკის დიაგრამა
GreenPAK დიზაინი ძირითადი ბლოკის დიაგრამა
GreenPAK დიზაინი ძირითადი ბლოკის დიაგრამა
GreenPAK დიზაინი ძირითადი ბლოკის დიაგრამა

ბლოკ დიაგრამა, რომელიც ასახავს GreenPAK- ის დიზაინს, ნაჩვენებია ნახატზე 3. დიზაინის ძირითადი ბლოკია I²C ინტერფეისი, გამომავალი სეგმენტის დრაივერი, შიდა ოსცილატორი და უკანა თვითმფრინავის საათის წყაროს სელექტორი.

I²C ინტერფეისის ბლოკი აკონტროლებს თითოეული ცალკეული სეგმენტის გამოსვლას და LCD ეკრანის უკანა თვითმფრინავის საათის წყაროს. I²C ინტერფეისის ბლოკი არის ერთადერთი სისტემის შეყვანა სეგმენტის გამომავალი კონტროლისთვის.

როდესაც შიდა სეგმენტის კონტროლის ხაზი დაყენებულია (მაღალი დონე) შესაბამისი LCD სეგმენტი მუქი გაუმჭვირვალეა. როდესაც შიდა სეგმენტის კონტროლის ხაზი გადატვირთულია (დაბალი დონე) შესაბამისი LCD სეგმენტი გამჭვირვალეა.

თითოეული შიდა სეგმენტის საკონტროლო ხაზი უკავშირდება გამომავალ დრაივერს. გამომავალი სეგმენტის დრაივერის ბლოკი გამოიმუშავებს ფაზის საათის სიგნალს უკანა პლანზე საათის მიმართ გამჭვირვალე სეგმენტებისთვის. ბნელი სეგმენტებისთვის, ეს სიგნალი ფაზის მიღმაა უკანა თვითმფრინავის საათთან მიმართებაში.

უკანა თვითმფრინავის საათის წყარო ასევე შერჩეულია I²C ინტერფეისით. როდესაც ირჩევა შიდა უკანა საათის საათის წყარო, შიდა ოსცილატორი ჩართულია. შიდა ოსცილატორი გამოიმუშავებს საათის სიხშირეს 48 ჰც. ეს სიგნალი გამოყენებული იქნება გამომავალი სეგმენტის დრაივერის ბლოკის მიერ და მიმართულია უკანა თვითმფრინავის საათის გამომავალი პინით (GreenPAK pin 20).

გარე არხის საათის წყაროს არჩევისას, შიდა ოსცილატორი გამორთულია. გამომავალი სეგმენტის დრაივერის მითითება არის გარე უკანა საათის საათის შეყვანა (GreenPAK pin 2). ამ შემთხვევაში, უკანა თვითმფრინავის საათის გამომავალი პინი შეიძლება გამოყენებულ იქნას როგორც დამატებითი სეგმენტის საკონტროლო ხაზი, სეგმენტი OUT15.

ერთზე მეტი GreenPAK მოწყობილობა შეიძლება გამოყენებულ იქნას იმავე I²C ხაზზე. ამისათვის თითოეული მოწყობილობა უნდა იყოს დაპროგრამებული განსხვავებული I²C მისამართით. ამ გზით შესაძლებელია გაფართოვდეს მართული LCD სეგმენტების რაოდენობა. ერთი მოწყობილობა არის კონფიგურირებული, რომ შექმნას უკანა საათის საათის წყარო, მართავს 14 სეგმენტს, ხოლო დანარჩენი არის კონფიგურირებული გამოიყენოს გარე უკანა თვითმფრინავის საათის წყარო. თითოეულ დამატებით მოწყობილობას შეეძლო 15 -ზე მეტი სეგმენტის მართვა ამ გზით. შესაძლებელია 16 – მდე მოწყობილობის დაკავშირება იმავე I²C ხაზზე და შემდეგ შესაძლებელია LCD– ის 239 - მდე სეგმენტის კონტროლი.

ამ ინსტრუქციაში, ეს იდეა გამოიყენება LCD– ის 29 სეგმენტის გასაკონტროლებლად 2 GreenPAK მოწყობილობით. მოწყობილობის pinout ფუნქციონირება შეჯამებულია ცხრილში 1.

ნაბიჯი 3: შექმენით მიმდინარე მოხმარება

ამ დიზაინში მნიშვნელოვანი საზრუნავია მიმდინარე მოხმარება, რაც უნდა იყოს რაც შეიძლება დაბალი. GreenPAK მოწყობილობის სავარაუდო წყნარი დენი არის 0.75 μA 3.3 V მიწოდების ოპერაციისთვის და 1.12 µA 5 V მომარაგების ოპერაციისთვის. შიდა ოსცილატორის ამჟამინდელი მოხმარება არის 7.6 μA და 8.68 µA 3.3 V და 5 V კვების ბლოკის შესაბამისად. მოსალოდნელია, რომ მას არ ექნება მნიშვნელოვანი ზრდა მიმდინარე მოხმარების დანაკარგებიდან, რადგან ეს დიზაინი მუშაობს საათის დაბალი სიხშირით. ამ დიზაინისთვის მოხმარებული მაქსიმალური დენი 15 μA- ზე დაბალია შიდა ოსცილატორის ჩართვისას და 10 µA როდესაც შიდა ოსცილატორი გამორთულია. ორივე სიტუაციაში მოხმარებული გაზომილი დენი ნაჩვენებია განყოფილების ტესტის შედეგებში.

ნაბიჯი 4: GreenPAK მოწყობილობის სქემა

GreenPAK მოწყობილობის სქემატური
GreenPAK მოწყობილობის სქემატური

GreenPAK პროგრამულ უზრუნველყოფაში შემუშავებული პროექტი ნაჩვენებია ნახაზზე 4. ეს სქემა აღწერილია ძირითადი ბლოკების დიაგრამების გამოყენებით, როგორც მითითება.

ნაბიჯი 5: I²C ინტერფეისი

I²C ინტერფეისი
I²C ინტერფეისი
I²C ინტერფეისი
I²C ინტერფეისი

I²C ინტერფეისის ბლოკი გამოიყენება როგორც მოწყობილობის ოპერაციული კონტროლის მთავარი საკონტროლო ბლოკი. ბლოკის კავშირებისა და კონფიგურირებული თვისებების ახლო ხედი ნაჩვენებია ფიგურა 5 -ში.

ეს ბლოკი უკავშირდება PIN 8 და PIN 9, ეს არის შესაბამისად I²C SCL და SDA ქინძისთავები. მოწყობილობის შიგნით, I²C ბლოკი გთავაზობთ 8 ვირტუალურ შეყვანას. თითოეული ვირტუალური შეყვანის საწყისი მნიშვნელობა ნაჩვენებია თვისებების ფანჯარაში (იხ. სურათი 5). ვირტუალური შეყვანა OUT0– დან OUT6– მდე გამოიყენება სეგმენტის საკონტროლო ხაზებად. ეს საკონტროლო ხაზები შეესაბამება სეგმენტის გამომავალს 1 სეგმენტის გამომავალს 7 და უკავშირდება სეგმენტის გამომავალ დრაივერს. ვირტუალური შეყვანა OUT7 გამოიყენება როგორც უკანა თვითმფრინავის საათის წყაროს ამომრჩევი ხაზის კონტროლი, წმინდა სახელით BCKP_SOURCE. ამ ბადეს გამოიყენებენ დიზაინის სხვა ბლოკები. I²C კონტროლის კოდი არის კონფიგურირებული განსხვავებული მნიშვნელობით პროექტის თითოეული IC- სთვის.

კიდევ 8 შიდა სეგმენტის კონტროლის ხაზი ხელმისაწვდომია ასინქრონული სახელმწიფოს აპარატის (ASM) გამომავალში, როგორც ეს ნაჩვენებია ფიგურაში 6 ზემოთ. სეგმენტის გამომავალი ხაზი 8 (SEG_OUT_8 თვისებების ფანჯარაში) სეგმენტის გამომავალი ხაზი 15 -მდე (SEG_OUT_15) კონტროლდება ASM გამომავალი მდგომარეობით 0. არ არსებობს რაიმე სახის გადასვლა ASM ბლოკში, ის ყოველთვის არის 0. მდგომარეობა ASM- ის გამომავალია დაკავშირებულია სეგმენტის გამომავალი დრაივერებით.

სეგმენტის გამომავალი დრაივერი გამოიმუშავებს მოწყობილობის გამომავალ სიგნალს.

ნაბიჯი 6: გამოყვანის სეგმენტის დრაივერი

გამომავალი სეგმენტის დრაივერი არსებითად Lookup table (LUT) კონფიგურირებულია როგორც XOR ლოგიკური პორტი. თითოეული გამომავალი სეგმენტისთვის ის უნდა იყოს XOR პორტი, რომელიც დაკავშირებულია სეგმენტის მართვის ხაზთან და უკანა თვითმფრინავის საათთან (BCKP_CLOCK). XOR პორტი პასუხისმგებელია გამომუშავებულ სეგმენტზე წარმოქმნას ფაზის და ფაზის გარეთ სიგნალი. როდესაც სეგმენტის საკონტროლო ხაზი მაღალ დონეზეა, XOR პორტის გამომავალი შებრუნდება უკანა თვითმფრინავის საათის სიგნალი და გამოიმუშავებს ფაზის გარეთ სიგნალს სეგმენტის პინზე. LCD უკანა და LCD სეგმენტს შორის ძაბვის სხვაობა, ამ შემთხვევაში, LCD სეგმენტს ბნელ სეგმენტად დაადგენს. როდესაც სეგმენტის კონტროლის ხაზი დაბალ დონეზეა, XOR პორტის გამომავალი მიჰყვება უკანა თვითმფრინავის საათის სიგნალს და შემდეგ გამოიმუშავებს ფაზის სიგნალს სეგმენტის პინზე. ვინაიდან ამ შემთხვევაში LCD ძაბვასა და სეგმენტს შორის ძაბვა არ გამოიყენება, ეს სეგმენტი სინათლისთვის გამჭვირვალეა.

ნაბიჯი 7: შიდა ოსცილატორი და უკანა პლანზე საათის წყაროს კონტროლი

შიდა ოსცილატორი და უკანა პლანზე საათის წყაროს კონტროლი
შიდა ოსცილატორი და უკანა პლანზე საათის წყაროს კონტროლი

შიდა ოსცილატორი გამოიყენება მაშინ, როდესაც სიგნალი BCKP_CLOCK I²C ინტერფეისიდან დაყენებულია მაღალ დონეზე. საათის წყაროს კონტროლის დიაგრამის ახლო ხედი ნაჩვენებია ფიგურაში 7 ზემოთ.

ოსცილატორი კონფიგურებულია როგორც 25 kHz RC სიხშირე, უმაღლესი გამომავალი გამყოფი ხელმისაწვდომია ოსტილატორის OUT0 (8/64) რეჟიმში. მთელი კონფიგურაცია ჩანს სურათზე ნაჩვენები თვისებების ფანჯარაში. ამ გზით, შიდა ოსცილატორი გამოიმუშავებს საათის სიხშირეს 48 ჰც.

ოსცილატორი აქტიურია მხოლოდ მაშინ, როდესაც BCKP_SOURCE სიგნალი მაღალ დონეზეა POR სიგნალთან ერთად. ეს კონტროლი ხდება ამ ორი სიგნალის 4-L1 LUT NAND პორტთან შეერთებით. NAND– ის გამომუშავება შემდეგ უკავშირდება ოსცილატორის სიმძლავრის შემცირების კონტროლის პინს.

სიგნალი BCKP_SOURCE აკონტროლებს 3-L10 LUT- ით აგებულ MUX- ს. როდესაც BCKP_SOURCE სიგნალი დაბალ დონეზეა, უკანა თვითმფრინავის საათის წყარო მოდის PIN2– დან. როდესაც ეს სიგნალი მაღალ დონეზეა, უკანა თვითმფრინავის საათის წყარო მოდის შიდა ოსცილატორიდან.

ნაბიჯი 8: უკანა თვითმფრინავის საათის გამომავალი ან სეგმენტი 15 გამომავალი პინის კონტროლი

Backplane Clock Output ან სეგმენტი 15 Output Pin Control
Backplane Clock Output ან სეგმენტი 15 Output Pin Control

ამ დიზაინის პინ 20 -ს აქვს ორმაგი ფუნქცია, რაც დამოკიდებულია არჩეული უკანა თვითმფრინავის საათის წყაროზე. ამ პინის მოქმედება კონტროლდება ერთი 4 შეყვანის LUT– ით, როგორც ეს ნაჩვენებია ფიგურაში 8. 4 – ბიტიანი LUT– ით შესაძლებელია XOR პორტის მუშაობის დაკავშირება გამომავალ MUX– თან. როდესაც BCKP_SOURCE სიგნალი მაღალ დონეზეა, LUT გამომავალი მიჰყვება შიდა ოსცილატორის საათს. შემდეგ pin 20 მუშაობს როგორც უკანა თვითმფრინავის საათის გამომავალი. როდესაც BCKP_SOURCE სიგნალი დაბალ დონეზეა, LUT გამომავალი იქნება XOR ოპერაცია SEG_OUT_15 შორის, ASM გამომავალიდან და უკანა თვითმფრინავის საათის სიგნალი. ამ ოპერაციის შესასრულებლად 4-ბიტიანი LUT კონფიგურაცია ნაჩვენებია ფიგურაში 8.

ნაბიჯი 9: LCD სისტემის პროტოტიპი

LCD სისტემის პროტოტიპი
LCD სისტემის პროტოტიპი
LCD სისტემის პროტოტიპი
LCD სისტემის პროტოტიპი

GreenPAK- ის დიზაინის გადაწყვეტის გამოყენების დემონსტრირების მიზნით, LCD სისტემის პროტოტიპი შეიკრიბა პურის დაფაზე. პროტოტიპისთვის, შვიდ სეგმენტიანი, ოთხნიშნა სტატიკური LCD დისკი დაფუძნებულია ორ GreenPAK მოწყობილობაზე DIP დაფაზე. ერთი მოწყობილობა (IC1) იყენებს შიდა ოსცილატორს LCD უკანა თვითმფრინავის მართვისთვის, ხოლო მეორე მოწყობილობა (IC2) იყენებს ამ სიგნალს, როგორც უკანა თვითმფრინავის შეყვანის მითითებას. ორივე IC კონტროლდება I²C ინტერფეისზე STM32F103C8T6 მიკროკონტროლით (MCU) მინიმალური განვითარების დაფაზე.

სურათი 9 გვიჩვენებს GreenPAK– ის ორ IC– ს, LCD დისპლეის და MCU დაფას შორის კავშირების სქემატურს. სქემატურად, GreenPAK მოწყობილობა U1 (IC1) მითითებით მართავს LCD ციფრს ერთი და ორი (LCD მარცხენა მხარე). GreenPAK მოწყობილობა U2 (IC2) მითითებით მართავს LCD ციფრებს სამ და ოთხს, პლუს COL სეგმენტს (LCD მარჯვენა მხარე). ორივე მოწყობილობის ელექტრომომარაგება მოდის მარეგულირებელიდან მიკროკონტროლერის განვითარების დაფაზე. ორი მოსახსნელი მხტუნავი დენის წყაროს და თითოეული GreenPAK მოწყობილობის VDD ქინძისთავებს ემატება მიმდინარე გაზომვისთვის მულტიმეტრით.

აწყობილი პროტოტიპის სურათი ნაჩვენებია ფიგურაში 10.

ნაბიჯი 10: I²C ბრძანებები LCD კონტროლისთვის

I²C ბრძანებები LCD კონტროლისთვის
I²C ბრძანებები LCD კონტროლისთვის
I²C ბრძანებები LCD კონტროლისთვის
I²C ბრძანებები LCD კონტროლისთვის
I²C ბრძანებები LCD კონტროლისთვის
I²C ბრძანებები LCD კონტროლისთვის

ორი GreenPAK მოწყობილობა პურის დაფაზე დაპროგრამებულია ერთი და იგივე დიზაინით, გარდა Control Byte მნიშვნელობისა. IC1- ის საკონტროლო ბაიტი არის 0 (I²C მისამართი 0x00), ხოლო I²C საკონტროლო ბაიტი არის 1 (I²C მისამართი 0x10). კავშირები ჩვენების სეგმენტებსა და მოწყობილობის დრაივერებს შორის შეჯამებულია ზემოთ მოცემულ ცხრილში.

კავშირები შეირჩა ამ გზით, რათა შეიქმნას უფრო მკაფიო სქემა და გაამარტივოს პურის დაფის კავშირები.

სეგმენტის გამომუშავების კონტროლი ხორციელდება I²C ვირტუალური შეყვანისა და ASM გამომავალი რეგისტრების I writeC ბრძანებების ჩაწერით. როგორც აღწერილია განაცხადის შენიშვნაში AN-1090 მარტივი I²C IO კონტროლერები SLG46531V (იხ. განაცხადის შენიშვნა AN-1090 მარტივი I²C IO კონტროლერები SLG46531V, დიალოგური ნახევარგამტარი), I²C ჩაწერის ბრძანება სტრუქტურირებულია შემდეგნაირად:

● დაწყება;

● საკონტროლო ბაიტი (R/W ბიტი არის 0);

● სიტყვის მისამართი;

● მონაცემები;

● გაჩერდი.

ყველა I²C ჩაწერის ბრძანება მზადდება Word მისამართისთვის 0xF4 (I²C ვირტუალური შეყვანა) და 0xD0 (ASM გამომავალი მდგომარეობისთვის 0). IC1– ში ჩაწერისა და LCD ციფრის 1 და 2 ბრძანებების შეჯამება მოცემულია ცხრილში 3. ბრძანების თანმიმდევრობით წარმოდგენაში ღია ფრჩხილი „[“აღნიშნავს დაწყების სიგნალს, ხოლო დახურული ფრჩხილი “]” აღნიშნავს გაჩერების სიგნალს.

ორი ბაიტი ზემოთ მოყვანილია LCD ციფრის 1 და ციფრის საკონტროლო სეგმენტები ერთად. აქ, მიდგომაა გამოიყენოს ინდივიდუალური საძიებელი ცხრილი (LUT) პროგრამული უზრუნველყოფაში თითოეული ციფრისთვის, ორივე ბაიტის სეგმენტების გათვალისწინებით. საძიებელი ცხრილიდან ბაიტის მნიშვნელობები უნდა იყოს შერეული ბიტივი OR ოპერაციის გამოყენებით და შემდეგ გაგზავნოს IC- ში. ცხრილში 4 ნაჩვენებია Byte0 და Byte1 მნიშვნელობა თითოეული რიცხვითი მნიშვნელობისათვის, რომელიც უნდა იყოს ჩაწერილი თითოეული ჩვენების ციფრში.

მაგალითად, ციფრ 1 -ში ჩაწეროთ ნომერი 3, ხოლო ციფრში 2 რიცხვი 4, Byte0 არის 0xBD (0x8D bitwise OR 0xB0) და Byte 1 არის 0x33 (0x30 bitwise OR 0x03).

IC2– ში ჩაწერის ბრძანება და ციფრების 3 და 4 კონტროლი მოცემულია ცხრილში 5.

3 და 4 ციფრების საკონტროლო ლოგიკა ჰგავს ციფრების 1 და 2. კონტროლს. ცხრილი 6 გვიჩვენებს LUT ამ ორ ციფრს.

განსხვავება IC2– ში არის COL სეგმენტი. ამ სეგმენტს აკონტროლებს Byte1. ამ სეგმენტის მუქი კონფიგურაციისთვის, უნდა გაკეთდეს ბიტური ან ოპერაცია Byte1- სა და 0x40 მნიშვნელობას შორის.

ნაბიჯი 11: I²C ბრძანებები LCD ტესტისთვის

I²C ბრძანებები LCD ტესტისთვის
I²C ბრძანებები LCD ტესტისთვის

LCD ტესტისთვის შეიქმნა firmware C ენაზე MCU დაფისთვის. ეს firmware გაგზავნის ბრძანებების თანმიმდევრობას ორივე IC- ზე პურის დაფაზე. ამ ფირმის წყაროს კოდი არის დანართის განყოფილებაში. მთელი ხსნარი შემუშავებულია Atollic TrueStudio– ს გამოყენებით STM32 9.0.1 IDE– სთვის.

ბრძანებების თანმიმდევრობა და ეკრანზე ნაჩვენები შესაბამისი მნიშვნელობები შეჯამებულია ზემოთ ცხრილში 7.

ნაბიჯი 12: ტესტის შედეგები

Ტესტის პასუხები
Ტესტის პასუხები
Ტესტის პასუხები
Ტესტის პასუხები

პროტოტიპის ტესტი მოიცავს ეკრანის მნიშვნელობების გადამოწმებას MCU ბრძანების შემდეგ და მოქმედი ნიჟარის გაზომვას თითოეული IC– ით მუშაობის დროს.

LCD– ის სურათები თითოეული ბრძანების მნიშვნელობისათვის ნაჩვენებია ცხრილში 8 ზემოთ.

თითოეული მოწყობილობისთვის არსებული ნიჟარა იზომება მულტიმეტრით, მისი ყველაზე დაბალი დიაპაზონის 200 µA. თითოეული მოწყობილობის გაზომილი დენის სურათები, დაწყებისა და ნორმალური მუშაობის დროს, ნაჩვენებია ცხრილში 9 ზემოთ.

დასკვნა და შედეგები დისკუსია

წარმოდგენილი იყო დაბალი სიმძლავრის სტატიკური LCD დრაივერის დიზაინი GreenPAK მოწყობილობით. ეს დიზაინი ნათლად აჩვენებს GreenPAK მოწყობილობების ერთ -ერთ უდიდეს მახასიათებელს: მათ დაბალ წყნარ დენს. იმის გამო, რომ GreenPAK მოწყობილობები არის ტექნიკაზე დაფუძნებული გადაწყვეტა, შესაძლებელია დაბალი სიხშირის ოპერაციაზე მუშაობა, ამ შემთხვევაში, 48 ჰც. MCU– ზე დაფუძნებული გადაწყვეტა მოითხოვს ოპერაციის უფრო მაღალ სიხშირეს, თუნდაც პერიოდულად მოკლე პერიოდის განმავლობაში, შემდეგ კი მოიტანს მეტ ენერგიას. და GreenPAK მოწყობილობის შედარება CPLD– სთან (კომპლექსური პროგრამირებადი ლოგიკური მოწყობილობა), ნათელია იმის დანახვა, რომ ჩვეულებრივ CPLD– ს აქვს წყნარი დენი 20 μA– ზე მაღალი.

საინტერესოა აღინიშნოს, რომ ეს დიზაინი ადვილად შეიძლება შეიცვალოს კონკრეტული პროექტის მოთხოვნებში უკეთ მორგებისთვის. კარგი მაგალითია სეგმენტის კონტროლის pinout. ისინი ადვილად შეიცვლება დაბეჭდილი მიკროსქემის დაფისა და პროგრამული უზრუნველყოფის შემსუბუქების მიზნით. ეს არის საინტერესო თვისება, როდესაც მოწყობილობა შედარებულია გამორჩეულ ASIC– თან (პროგრამის სპეციფიკური ინტეგრირებული წრე).ჩვეულებრივ, ASIC– ები შექმნილია პროგრამების ფართო სპექტრზე და პროგრამული უზრუნველყოფის საწყისი რუტინა უნდა დაიწეროს, რათა ოპერაციამდე მოხდეს IC– ის სწორად კონფიგურაცია. კონფიგურირებადი მოწყობილობა შეიძლება შეიქმნას ისე, რომ ის მზად იყოს გამოსაყენებლად დენის ჩართვის შემდეგ. ამ გზით, შესაძლებელია შემცირდეს პროგრამული უზრუნველყოფის შემუშავების დრო IC საწყისი კონფიგურაციისთვის.

პროგრამის წყაროს კოდი შეგიძლიათ იხილოთ აქ დანართში A.

გირჩევთ: