Სარჩევი:

წვრილმანი PWM კონტროლი კომპიუტერის ფანებისთვის: 12 ნაბიჯი
წვრილმანი PWM კონტროლი კომპიუტერის ფანებისთვის: 12 ნაბიჯი

ვიდეო: წვრილმანი PWM კონტროლი კომპიუტერის ფანებისთვის: 12 ნაბიჯი

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

ეს ინსტრუქცია აღწერს სრულად გამორჩეული 12 V კომპიუტერის გულშემატკივართა PWM კონტროლერის შექმნას. დიზაინს შეუძლია გააკონტროლოს 16 – მდე 3 – პინიანი კომპიუტერის გულშემატკივარი. დიზაინი იყენებს წყვილ დიალოგურ GreenPAK ™ კონფიგურირებადი შერეული სიგნალის IC- ებს თითოეული გულშემატკივრის სამუშაო ციკლის გასაკონტროლებლად. ის ასევე მოიცავს ორ გზას, რომ შეცვალოთ ვენტილატორის სიჩქარე:

ა კვადრატის/მბრუნავი კოდირებით

ბ C# - ში ჩაშენებული Windows პროგრამით, რომელიც GreenPAK– თან კომუნიკაციას ახდენს I2C– ით.

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

ნაბიჯი 1: სისტემის ბლოკირების დიაგრამა

სისტემის ბლოკირების დიაგრამა
სისტემის ბლოკირების დიაგრამა

ნაბიჯი 2: SLG46108 მბრუნავი დეკოდერის დიზაინი

SLG46108 მბრუნავი დეკოდერის დიზაინი
SLG46108 მბრუნავი დეკოდერის დიზაინი
SLG46108 მბრუნავი დეკოდერის დიზაინი
SLG46108 მბრუნავი დეკოდერის დიზაინი
SLG46108 მბრუნავი დეკოდერის დიზაინი
SLG46108 მბრუნავი დეკოდერის დიზაინი

მბრუნავი კოდირება გამოიყენება გულშემატკივართა მუშაობის ციკლის ხელით გაზრდის ან შემცირების მიზნით. ეს მოწყობილობა გამოსცემს იმპულსებს მის A და B არხებზე, რომლებიც დაშორებულია 90 ° –ით. იხილეთ AN-1101: Unclocked Quadrature Decoder დამატებითი ინფორმაციისათვის, თუ როგორ მუშაობს მბრუნავი კოდირება.

საათის მბრუნავი დეკოდირების შექმნა შესაძლებელია დიალოგური GreenPAK SLG46108 გამოყენებით არხის A და B არხების სიგნალების დასამუშავებლად და გამოსაწერად საათის ისრის საწინააღმდეგოდ (CCW) და საათის ისრის მიმართულებით (CW) იმპულსების სახით.

როდესაც A არხი ხელმძღვანელობს B არხს, დიზაინი გამოდის მოკლე პულსი CW– ზე. როდესაც B არხი იწვევს A არხს, ის გამოდის მოკლე პულსი CCW– ზე

სამი DFF ა სინქრონიზებს A არხის შეყვანას საათთან. ანალოგიურად, მილის დაყოვნება OUT0– ით დაყენებულია ორ DFF– ზე და OUT1 სამი DFF– ით ქმნის ერთსა და იმავე ფუნქციურობას B არხისთვის.

CW და CCW შედეგების შესაქმნელად გამოიყენეთ რამდენიმე LUT, ამ სტანდარტული მბრუნავი დეკოდერის დიზაინის შესახებ დამატებითი ინფორმაციისათვის ეწვიეთ ამ ვებგვერდს.

GreenPAK- ის მბრუნავი დეკოდირება მიიღებს A და B იმპულსებს და გამოუშვებს CW და CCW იმპულსებს, როგორც ეს ნაჩვენებია სურათ 4 -ში.

სქემა XOR კარიბჭის შემდეგ უზრუნველყოფს იმას, რომ არასოდეს იქნება CW პულსი და CCW პულსი ერთდროულად, რაც საშუალებას მისცემს რაიმე შეცდომას მბრუნავი კოდირებით. CW და CCW სიგნალებზე 8 ms დაცემის ზღვარი აიძულებს მათ დარჩეს მაღალი 8 ms პლუს ერთი საათის ციკლი, რაც აუცილებელია ქვემო დინების SLG46826 GreenPAK– ებისთვის.

ნაბიჯი 3: SLG46826 გულშემატკივართა კონტროლერის დიზაინი

SLG46826 გულშემატკივართა კონტროლერის დიზაინი
SLG46826 გულშემატკივართა კონტროლერის დიზაინი

ნაბიჯი 4: PWM თაობა ოფსეტური მრიცხველებით

PWM თაობა ოფსეტური მრიცხველებით
PWM თაობა ოფსეტური მრიცხველებით
PWM თაობა ოფსეტური მრიცხველებით
PWM თაობა ოფსეტური მრიცხველებით

წყვილი ოფსეტური მრიცხველები იმავე პერიოდით გამოიყენება PWM სიგნალის შესაქმნელად. პირველი მრიცხველი ადგენს DFF- ს, მეორე კი აღადგენს მას, ქმნის თანმიმდევრულ ციკლის PWM სიგნალს, როგორც ეს ნაჩვენებია ფიგურაში 6 და სურათი 7.

CNT6 ადგენს DFF10- ს და CNT1- ის შებრუნებული გამომუშავება აღადგენს DFF10- ს. ქინძისთავები 18 და 19 გამოიყენება PWM სიგნალის გარე წრედში გამოსასვლელად

ნაბიჯი 5: მორიგე ციკლის კონტროლი საათის ინექციით და საათის გამოტოვებით

მორიგე ციკლის კონტროლი საათის ინექციით და საათის გამოტოვებით
მორიგე ციკლის კონტროლი საათის ინექციით და საათის გამოტოვებით
მორიგე ციკლის კონტროლი საათის ინექციით და საათის გამოტოვებით
მორიგე ციკლის კონტროლი საათის ინექციით და საათის გამოტოვებით

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

მოვალეობის ციკლი უნდა გაიზარდოს CW პულსის მიღებისას. ეს კეთდება CNT6 ბლოკში დამატებითი საათის იმპულსის ინექციით, რის შედეგადაც იგი გამოდის ერთი საათის ციკლით უფრო ადრე, ვიდრე სხვაგვარად იქნებოდა. ეს პროცესი ნაჩვენებია ფიგურაში 8.

CNT1 კვლავ დარეკილია მუდმივი სიჩქარით, მაგრამ CNT6– ს აქვს რამდენიმე დამატებითი საათის ინექცია. ყოველ ჯერზე, როდესაც მრიცხველს აქვს დამატებითი საათი, ის ცვლის თავის გამომავალს ერთი საათის პერიოდს მარცხნივ.

პირიქით, სამუშაო ციკლის შესამცირებლად, გამოტოვეთ საათის პულსი CNT6– ისთვის, როგორც ეს ნაჩვენებია ფიგურაში 9. CNT1 კვლავ დარეკილია მუდმივი სიჩქარით და არის გამოტოვებული საათის იმპულსები CNT6– ისთვის, სადაც მრიცხველი არ იყო დარეკილი, როდესაც ვარაუდობდნენ რათა ამრიგად, CNT6– ის გამომუშავება გადადის მარჯვნივ ერთი საათის განმავლობაში, რაც ამცირებს გამომავალი PWM სამუშაო ციკლს.

საათის ინექციისა და საათის გამოტოვების ფუნქცია ხორციელდება GreenPAK– ის ზოგიერთი ციფრული ლოგიკური ელემენტის გამოყენებით. წყვილი მრავალფუნქციური ბლოკი გამოიყენება წყვილი საკეტის/კიდეების დეტექტორის კომბინაციის შესაქმნელად. 4 ბიტიანი LUT0 გამოიყენება საერთო საათის სიგნალს (CLK/8) და საათის ინექციის ან საათის გამოტოვების სიგნალებს შორის. ეს ფუნქცია უფრო დეტალურად არის აღწერილი მე –7 ნაბიჯში.

ნაბიჯი 6: ღილაკის შეყვანა

ღილაკის შეყვანა
ღილაკის შეყვანა

ღილაკის შეყვანის დებიუნაცია ხდება 20 ms, შემდეგ გამოიყენება ჩამკეტის გადასართავად, რომელიც განსაზღვრავს არჩეულია თუ არა ეს კონკრეტული ჩიპი. თუ ის არჩეულია, მაშინ 4 ბიტიანი LUT გადის საათის გამოტოვების ან ინექციის სიგნალებს. თუ ჩიპი არ არის არჩეული, მაშინ 4 ბიტიანი LUT უბრალოდ გადის CLK/8 სიგნალს.

ნაბიჯი 7: მორიგე ციკლის გადახვევის პრევენცია

მორიგე ციკლის გადახვევის პრევენცია
მორიგე ციკლის გადახვევის პრევენცია
მორიგე ციკლის გადახვევის პრევენცია
მორიგე ციკლის გადახვევის პრევენცია
მორიგე ციკლის გადახვევის პრევენცია
მორიგე ციკლის გადახვევის პრევენცია

RS ჩამკეტები 3-ბიტიანი LUT5 და 3-ბიტიანი LUT3 გამოიყენება იმისათვის, რომ დარწმუნდეთ, რომ თქვენ არ შეგიძლიათ ინექცია ან გამოტოვება იმდენი საათი, რომ ოფსეტური მრიცხველები გადატრიალდეს. ეს არის იმისთვის, რომ სისტემა არ მიაღწიოს 100 % –იან სამუშაო ციკლს და შემდეგ გადავიდეს 1 % –იან სამუშაო ციკლზე, თუ ის მიიღებს სხვა ინექციურ საათს.

RS ჩამკეტები ხელს უშლიან ამას მოხდეს მრავალფუნქციური ბლოკებით შეყვანისას, როდესაც სისტემა ერთი საათის ციკლით არის დაშორებული. წყვილი DFF აყოვნებს PWM_SET და PWM_nRST სიგნალებს ერთი საათის პერიოდით, როგორც ეს მოცემულია ფიგურაში 11.

წყვილი LUT გამოიყენება საჭირო ლოგიკის შესაქმნელად. თუ მოვალეობის ციკლი იმდენად დაბალია, რომ დაგვიანებული PWM_SET სიგნალი ხდება PWM_nRST სიგნალის პარალელურად, მორიგე ციკლის შემდგომი შემცირება გამოიწვევს გადატრიალებას.

ანალოგიურად, მაქსიმალური მოვალეობის ციკლის მოახლოებისას, ისეთი, რომ დაგვიანებული PWM_nRST სიგნალი მოხდეს PWM_SET სიგნალის პარალელურად, აუცილებელია მოვერიდოთ მორიგე ციკლის შემდგომ ზრდას. ამ შემთხვევაში, გადადეთ nRST სიგნალი ორი საათის ციკლით, რათა დარწმუნდეთ, რომ სისტემა არ გადავა 99 % -დან 1 % -მდე.

ნაბიჯი 8: სამუშაო ციკლის კონტროლი I2C– ით

სამუშაო ციკლის კონტროლი I2C– ით
სამუშაო ციკლის კონტროლი I2C– ით
სამუშაო ციკლის კონტროლი I2C– ით
სამუშაო ციკლის კონტროლი I2C– ით
მორიგე ციკლის კონტროლი I2C– ით
მორიგე ციკლის კონტროლი I2C– ით

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

I2C– ზე მოვალეობის ციკლის კონტროლი მოითხოვს, რომ კონტროლერმა შეასრულოს ბრძანების კონკრეტული თანმიმდევრობა. ეს ბრძანებები ნაჩვენებია ცხრილში 1. "x" მიუთითებს ცოტაზე, რომელიც არ უნდა შეიცვალოს, "[" მიუთითებს დაწყების ბიტზე და "]" მიუთითებს STOP ბიტზე

PDLY ბლოკი წარმოქმნის მოკლე აქტიურ მაღალ პულსს CLK/8 სიგნალის დაცემულ ზღვარზე, რომელსაც ეწოდება! CLK/8. ეს სიგნალი გამოიყენება მუდმივი სიხშირით DFF14- ის დასაყენებლად. როდესაც I2C_SET ასინქრონულად მაღლა იწევს, CLK/8 -ის შემდეგი მზარდი ზღვარი იწვევს DFF14- ის გამოშვებას მაღალი, რაც იწვევს CNT5 OneShot- ს. OneShot მუშაობს საათის ციკლების რაოდენობაზე, რაც მომხმარებელმა დაწერა, როგორც ეს მითითებულია ცხრილში 1 "ჩაწერეთ CNT5" I2C ბრძანებაში. ამ შემთხვევაში, ეს არის 10 საათის ციკლი. OneShot საშუალებას აძლევს 25 MHz ოსცილატორს იმუშაოს ზუსტად მისი ხანგრძლივობით და არა უმეტეს, ასე რომ 3 ბიტიანი LUT0 მიიღებს საათის ციკლის რაოდენობას, რომელიც დაწერილია CNT5– ზე.

სურათი 15 გვიჩვენებს ამ სიგნალებს, სადაც წითელი საათებია ის, რაც იგზავნება 3 ბიტიან LUT0– ზე, რომელიც გადადის მათ CNT6– ში (PWM_SET მრიცხველი), რითაც ქმნის კომპენსაციას სამუშაო ციკლის წარმოქმნისათვის.

ნაბიჯი 9: ტაქომეტრის კითხვა

ტაქომეტრის კითხვა
ტაქომეტრის კითხვა
ტაქომეტრის კითხვა
ტაქომეტრის კითხვა

თუ სასურველია, მომხმარებელს შეუძლია წაიკითხოს ტაქომეტრის მნიშვნელობა I2C– ზე, რათა თვალყური ადევნოს რამდენად სწრაფად ბრუნავს ვენტილატორი CNT2 მნიშვნელობის კითხვით. CNT2 იზრდება ყოველ ჯერზე, როდესაც ACMP0H- ს აქვს აღმავალი ზღვარი და მისი ასინქრონული გადატვირთვა შესაძლებელია I2C ბრძანებით. გაითვალისწინეთ, რომ ეს არჩევითი ფუნქციაა და ACMP0H- ის ბარიერი უნდა შეიცვალოს კონკრეტული გულშემატკივართა სპეციფიკაციების შესაბამისად.

ნაბიჯი 10: გარე წრედის დიზაინი

გარე წრედის დიზაინი
გარე წრედის დიზაინი

გარე წრე საკმაოდ მარტივია. არსებობს GreenPAK– ის Pin6– თან დაკავშირებული ღილაკი, რომ ჩართოთ თუ არა ეს კონკრეტული მოწყობილობა მბრუნავი კონტროლისთვის და LED, რომელიც დაკავშირებულია Pin12– თან და Pin13– თან, მოწყობილობის არჩევისას.

ვინაიდან ვენტილატორი გადის 12 ვ, საჭიროა მისი გადართვის კონტროლის წყვილი FET. GreenPAK– ის Pin18 და Pin19 მართავს nFET– ს. როდესაც nFET ჩართულია, ის გაიყვანს pFET LOW- ის კარიბჭეს, რომელიც აკავშირებს ვენტილატორს +12 V. როდესაც nFET გამორთულია, PFET- ის კარიბჭე იწევს 1 kΩ რეზისტორით, რომელიც წყვეტს ვენტილატორს +12 ვ -დან

ნაბიჯი 11: PCB დიზაინი

PCB დიზაინი
PCB დიზაინი

დიზაინის პროტოტიპისთვის შეიკრიბა რამდენიმე PCB. PCB მარცხნივ არის "გულშემატკივართა კონტროლერი", რომელშიც განთავსებულია მბრუნავი კოდირება, 12 V ბუდე, SLG46108 GreenPAK და კონექტორები FT232H USB to I2C გარღვევის დაფისთვის. ორი PCB მარჯვნივ არის "გულშემატკივართა დაფები", რომელიც შეიცავს SLG46826 GreenPAK- ებს, ღილაკებს, კონცენტრატორებს, LED- ებს და გულშემატკივართა სათაურებს.

თითოეულ გულშემატკივართა დაფას აქვს დაფარული მამრობითი სათაური მარცხენა მხარეს და ქალი თავით მარჯვენა მხარეს, რათა მათ ერთმანეთთან მიჯაჭვული ჰქონდეთ. თითოეული გულშემატკივართა საბჭო შეიძლება იყოს დასახლებული რესურსებით, რომ დამოუკიდებლად გააკონტროლოს ორი გულშემატკივარი.

ნაბიჯი 12: C# პროგრამა

C# აპლიკაცია
C# აპლიკაცია

C# პროგრამა დაიწერა გულშემატკივართა დაფებთან ინტერფეისისათვის FT232H USB-I2C ხიდის საშუალებით. ეს პროგრამა შეიძლება გამოყენებულ იქნას თითოეული გულშემატკივრის სიხშირის შესაცვლელად I2C ბრძანებებით, რომლებიც გენერირდება აპლიკაციის მიერ.

პროგრამა პინგს უყრის ყველა 16 I2C მისამართს წამში ერთხელ და ავსებს GUI მონა მისამართებს, რომლებიც არსებობს. ამ მაგალითში გულშემატკივართა 1 (მონა მისამართის 0001) და ფან 3 (მონა მისამართის 0011) დაკავშირებულია დაფაზე. თითოეული გულშემატკივართა მოვალეობის ციკლის მორგება ინდივიდუალურად შეიძლება განხორციელდეს სლაიდერის ზოლის გადაადგილებით ან სლაიდერის ზოლის ქვეშ ტექსტში 0-256 მნიშვნელობის აკრეფით.

დასკვნები

ამ დიზაინის გამოყენებით შესაძლებელია 16 -მდე გულშემატკივრის დამოუკიდებლად გაკონტროლება (ვინაიდან არსებობს 16 შესაძლო I2C მონა მისამართები) მბრუნავი კოდირებით ან C# აპლიკაციით. ნაჩვენებია, თუ როგორ უნდა შეიქმნას PWM სიგნალი წყვილი ოფსეტური მრიცხველებით და როგორ გაიზარდოს და შემცირდეს ამ სიგნალის სამუშაო ციკლი გადატრიალების გარეშე.

გირჩევთ: