Мазмуну:
- 1 -кадам: Системалык блоктун диаграммасы
- 2 -кадам: SLG46108 Ротари декодеринин дизайны
- 3 -кадам: SLG46826 Fan Controller Design
- 4 -кадам: PWM генерациясы эсептегичтер менен
- 5 -кадам: Милдеттүү циклди көзөмөлдөө Саатты инжекциялоо жана Саатты өткөрүп жиберүү
- 6 -кадам: BUTTON Киргизүү
- 7 -кадам: Duty Cycle Rolloverдин алдын алуу
- 8 -кадам: I2C менен Duty Cycle Control
- 9 -кадам: Тахометрди окуу
- 10 -кадам: Тышкы схеманын дизайны
- 11 -кадам: PCB Дизайн
- 12 -кадам: C# тиркемеси
Video: PC күйөрмандары үчүн DIY PWM Control: 12 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:39
Бул Нускамада толугу менен өзгөчөлөнгөн 12 В PC күйөрманы PWM контроллерин куруу сүрөттөлөт. Дизайн 16 3-пин компьютер күйөрмандарын башкара алат. Дизайн ар бир күйөрмандын иштөө циклин башкаруу үчүн Dialog GreenPAK ™ конфигурацияланган аралаш сигнал ICлерин колдонот. Ошондой эле күйөрман ылдамдыгын өзгөртүү үчүн эки жолду камтыйт:
а. квадратура/айлануучу коддоочу менен
б. GreenPAK менен I2C аркылуу байланышкан C# курулган Windows тиркемеси менен.
Төмөндө биз GreenPAK чипи PC күйөрмандары үчүн PWM көзөмөлүн түзүү үчүн кантип программаланганын түшүнүү үчүн керектүү кадамдарды сүрөттөдүк. Бирок, эгер сиз программалоонун жыйынтыгын алууну кааласаңыз, GreenPAK программасын жүктөп алыңыз, буга чейин бүткөн GreenPAK Дизайн Файлын көрүңүз. Компьютериңизге GreenPAK Development Kitти туташтырыңыз жана PC күйөрмандары үчүн PWMди көзөмөлдөө үчүн атайын IC түзүү үчүн программаны басыңыз.
1 -кадам: Системалык блоктун диаграммасы
2 -кадам: SLG46108 Ротари декодеринин дизайны
Вентиляторлордун иштөө циклин кол менен көбөйтүү же азайтуу үчүн ротациялык кодер колдонулат. Бул түзмөк А каналынын жана В каналынын импульсун 90 ° аралыкта чыгарат. Караңыз AN-1101: Ротациялык коддогуч кандай иштээри жөнүндө көбүрөөк маалымат алуу үчүн Unclocked Quadrature Decoder.
А жана Б каналдарынын сигналдарын иштетүү үчүн Dialog GreenPAK SLG46108дин жардамы менен сааттын айлануучу декодерин түзүүгө болот жана аларды сааттын жебесине каршы (CCW) жана сааттын жебеси боюнча (CW) импульс катары чыгаруу үчүн.
А каналы В каналын жетектегенде, дизайн CWке кыска импульс чыгарат. В каналы А каналын жетектегенде, CCWке кыска импульс чыгарат
Үч DFFs А каналынын кирүүсүн саат менен синхрондоштурат. Ошо сыяктуу эле, OUT0 менен эки DFF жана OUT1 үч DFFге коюлган түтүк кечигүүсү B каналы үчүн бирдей функцияны түзөт.
CW жана CCW чыгууларын түзүү үчүн бир нече LUT колдонуңуз, бул стандарттык ротациялык декодер дизайны жөнүндө көбүрөөк маалымат алуу үчүн бул вебсайтка баш багыңыз.
GreenPAK Ротари декодери А жана В кирүү импульстарын кабыл алат жана CW жана CCW импульстарын чыгарат, Figure 4тө көрсөтүлгөндөй.
XOR дарбазасынан кийинки схема эч качан CW импульсунун жана CCW импульсунун болбошун камсыз кылат, бул айлануучу коддогуч менен кандайдыр бир каталарга жол берет. CW жана CCW сигналдары боюнча 8 мс түшүүчү четке кечигүү аларды 8 мс плюс бир саат циклинде жогору болууга мажбур кылат, бул SLG46826 GreenPAKтин ылдыйкы агымы үчүн зарыл.
3 -кадам: SLG46826 Fan Controller Design
4 -кадам: PWM генерациясы эсептегичтер менен
PWM сигналын түзүү үчүн ошол эле мезгилдеги бир жуп эсептегич колдонулат. Биринчи эсептегич DFF орнотот, ал эми экинчиси аны калыбына келтирип, Figure 6 жана Figure 7де көрсөтүлгөн PWM сигналын ырааттуу түрдө түзөт.
CNT6 DFF10ду коёт жана CNT1дин тескери чыгарылышы DFF10ду баштапкы абалга келтирет. 18 жана 19 -казыктар PWM сигналын тышкы схемага чыгаруу үчүн колдонулат
5 -кадам: Милдеттүү циклди көзөмөлдөө Саатты инжекциялоо жана Саатты өткөрүп жиберүү
Күйөрман контроллери CW жана CCW сигналдарын айлануучу декодерден алынган маалымат катары алат жана аларды күйөрман ылдамдыгын башкаруучу PWM сигналын көбөйтүү же азайтуу үчүн колдонот. Бул бир нече санариптик логикалык компоненттер менен ишке ашат.
CW импульсун алганда, кызмат цикли көбөйүшү керек. Бул CNT6 блогуна кошумча саат импульсун киргизүү аркылуу жасалат, бул башка саатка караганда бир саат циклин эртерээк чыгарууга алып келет. Бул процесс Figure 8де көрсөтүлгөн.
CNT1 дагы эле туруктуу ылдамдыкта иштеп жатат, бирок CNT6га бир нече кошумча сааттар сайылган. Эсептегичке кошумча саат болгондо, ал өндүрүшүн бир сааттык мезгилге солго жылдырат.
Тескерисинче, кызматтык циклди азайтуу үчүн, 9 -сүрөттө көрсөтүлгөндөй CNT6 үчүн сааттын импульсун өткөрүп жибериңиз. CNT1 дагы эле туруктуу ылдамдыкта иштеп жатат, ал эми CNT6 үчүн эсептегич сааттын импульстары бар, ал жерде эсептегич керек болгондо такталбай калган. чейин Ошентип, CNT6нын чыгышы бир убакта бир саатка оңго жылат, бул PWM иштөө циклин кыскартат.
Саатты инъекциялоо жана саатты аттап өтүү функциясы GreenPAK ичиндеги кээ бир санарип логикалык элементтерди колдонуу менен аткарылат. Бир жуп көп функциялуу блоктор/жээк детекторунун комбондорун түзүү үчүн колдонулат. 4-бит LUT0 жалпы сааттык сигналдын (CLK/8) жана сааттык инжектордук же сааттык сигналдардын ортосундагы айырмачылык үчүн колдонулат. Бул функция 7 -кадамда кененирээк сүрөттөлгөн.
6 -кадам: BUTTON Киргизүү
BUTTON киргизүү 20 мс дебюд кылынат, андан кийин бул чиптин тандалгандыгын аныктоочу бекиткичти которуштуруу үчүн колдонулат. Эгер ал тандалса, анда 4-бит LUT саатты өткөрүп жиберүү же инжекция сигналдарын өткөрүп берет. Эгерде чип тандалбаса, анда 4-бит LUT жөн гана CLK/8 сигналын өткөрөт.
7 -кадам: Duty Cycle Rolloverдин алдын алуу
RS 3-bit LUT5 жана 3-bit LUT3 ысытмалары сиз саюу мүмкүн эмес экенине ынануу үчүн колдонулат жана офсет эсептегичтер оодарылып кетет. Бул системанын 100 % милдети циклине жетпеши үчүн жана башка сайылган саатты алса, 1 % милдети циклине өтпөшү үчүн.
RS клапандары системанын айлануу бир сааттык циклден алыс болгондо, көп функциялуу блокторго киришине тоскоолдук кылуу менен буга жол бербейт. DFFлердин жупу PWM_SET жана PWM_nRST сигналдарын Figure 11де көрсөтүлгөндөй бир саатка кечиктирет.
Керектүү логиканы түзүү үчүн бир жуп LUT колдонулат. Эгерде кызмат цикли ушунчалык төмөн болсо, кечигүү PWM_SET сигналы PWM_nRST сигналы менен бир убакта пайда болсо, кызмат циклинин дагы төмөндөшү оодарылып кетүүгө алып келет.
Ошо сыяктуу эле, эгерде кечигүү PWM_nRST сигналы PWM_SET сигналы менен бир убакта пайда боло турган максималдуу кызматтык циклге жакындап калса, анда кызматтык циклдин мындан ары жогорулашына жол бербөө керек. Бул учурда, система 99 % дан 1 % га чейин жылып кетпешин камсыз кылуу үчүн nRST сигналын эки саат циклине кечиктириңиз.
8 -кадам: I2C менен Duty Cycle Control
Бул дизайн сааттын секирүү/сааттык инъекциядан башка жумуш циклин башкаруунун башка жолун камтыйт. Тышкы микроконтроллер I2C буйруктарын GreenPAKка жазуу үчүн, кызмат циклин орнотууга колдонулушу мүмкүн.
I2C үстүнөн иштөө циклин көзөмөлдөө контролердун белгилүү бир буйрук тизмегин аткарышын талап кылат. Бул буйруктар 1 -таблицада көрсөтүлгөн. "X" өзгөрбөшү керек болгон битти, "[" START битин көрсөтөт, жана "]" STOP битин билдирет
PDLY блогу CLK/8 сигналынын түшүп жаткан четинде кыска активдүү жогорку импульсту пайда кылат! CLK/8. Бул сигнал DFF14 туруктуу жыштыкта иштөө үчүн колдонулат. I2C_SET асинхрондук түрдө жогорулаганда, CLK/8дин кийинки көтөрүлүүчү чеги DFF14ти CNT5 OneShotту иштетүүчү HIGH чыгарууга алып келет. OneShot 1 -таблицада "CNT5 -ге жаз" I2C командасында көрсөтүлгөндөй колдонуучу жазган саат циклдеринин саны үчүн иштейт. Бул учурда, бул 10 сааттык цикл. OneShot 25 МГц осцилляторунун так иштөө мөөнөтүнө жана мындан ары иштешине мүмкүндүк берет, андыктан 3-бит LUT0 CNT5ке жазылган саат циклдеринин санын алат.
Сүрөт 15 бул сигналдарды көрсөтөт, мында кызыл сааттар 3-разряддуу LUT0ге жөнөтүлөт, аларды CNT6га (PWM_SET эсептегич) өткөрөт, ошону менен кызмат циклинин генерациясынын ордун түзөт.
9 -кадам: Тахометрди окуу
Кааласаңыз, колдонуучу тахометрдин баасын I2C аркылуу окуй алат, күйөрман CNT2 маанисин окуу менен канчалык тез бурулуп жатканын көзөмөлдөй алат. CNT2 ACMP0H көтөрүлүп келе жаткан сайын көбөйтүлөт жана I2C буйругу менен асинхрондук түрдө кайра орнотулушу мүмкүн. Бул ыктыярдуу өзгөчөлүк экенин жана ACMP0H чеги колдонулган конкреттүү күйөрмандын өзгөчөлүктөрүнө ылайык өзгөртүлүшү керек экенин эске алыңыз.
10 -кадам: Тышкы схеманын дизайны
Тышкы схема абдан жөнөкөй. Бул конкреттүү түзүлүштүн ротациялык башкаруу үчүн тандалып алынгандыгын текшерүү үчүн GreenPAKтин Pin6'сына туташтырылган баскыч бар, ал эми Pin12 жана Pin13 менен туташкан LED, шайман качан тандалганын көрсөтөт.
Желдеткич 12 В чуркагандан кийин, анын которулушун көзөмөлдөө үчүн бир жуп ФЕТР талап кылынат. GreenPAKтин Pin18 жана Pin19 nFETти айдайт. NFET күйгүзүлгөндө, ал желдеткичти +12 В.га туташтырган pFET LOW дарбазасын тартат, nFET өчүрүлгөндө, PFET дарбазасы желдеткичти ажыраткан 1 кОм каршылык менен көтөрүлөт. +12 В.дан
11 -кадам: PCB Дизайн
Дизайнды прототиптөө үчүн бир нече ПХБ чогултулган. Сол жактагы ПКБ - бул "Күйөрман контролери", анда айлануучу кодер, 12 В джекси, SLG46108 GreenPAK жана FT232H USBден I2Cге чейин ажыратуу тактасы үчүн коннекторлор жайгашкан. Оң жактагы эки ПКБ - бул "Fan Board", аларда SLG46826 GreenPAKтер, баскычтар, өчүргүчтөр, светодиоддор жана күйөрман баштары бар.
Ар бир күйөрман тактасынын сол жагында кепинделген эркек башы жана оң жагында аял башы бар, андыктан алар ромашка менен чынжырланышы мүмкүн. Ар бир күйөрман тактасы эки күйөрманы өз алдынча көзөмөлдөө үчүн ресурстар менен толтурулушу мүмкүн.
12 -кадам: C# тиркемеси
C# тиркемеси FT232H USB-I2C көпүрөсү аркылуу күйөрмандар тактасы менен иштөө үчүн жазылган. Бул колдонмо колдонмо тарабынан түзүлгөн I2C буйруктары менен ар бир күйөрмандын жыштыгын тууралоо үчүн колдонулушу мүмкүн.
Колдонмо бардык 16 I2C даректерин секундасына бир жолу коет жана GUIди кул болгон даректер менен толтурат. Бул мисалда Fan 1 (кул дареги 0001) жана Fan 3 (кул дареги 0011) тактага туташкан. Ар бир күйөрмандын иштөө циклин жөнгө салуу слайдер тилкесин жылдыруу аркылуу же слайдер тилкесинин астындагы текст кутусуна 0-256 чейинки маанини терүү аркылуу жүргүзүлүшү мүмкүн.
Жыйынтыктар
Бул дизайнды колдонуп, 16 күйөрмандарды өз алдынча башкарууга болот (анткени I2C кулунун 16 мүмкүн болгон даректери) же айлануучу коддогуч менен же C# тиркемеси менен. Жуптук эсептегичтер менен PWM сигналын кантип жаратуу жана ал сигналдын иштөө циклин оодаруусуз кантип көбөйтүү жана азайтуу керектиги көрсөтүлдү.
Сунушталууда:
VentMan Part II: Booster күйөрмандары үчүн Arduino автоматташтырылган мешти аныктоо: 6 кадам
VentMan Part II: Arduino автоматташтырылган күйөрмандары үчүн мешти аныктоо: Негизги упайлар: Бул менин AC/мештин үйлөткүч мотору качан иштеп жатканын аныктоо үчүн коюлган убактылуу бузуу, менин эки күчөткүч күйөрманым күйгүзүлүшү үчүн. Мага дагы эки жылуу/муздак абаны жылуу/муздак абаны түртүп туруучу каналдын ичинде эки күчөткүч күйөрман керек. Бирок мен
Була -оптикалык лазер күйөрмандары: 9 кадам (сүрөттөр менен)
Була -оптикалык лазер күйөрмандары: эмне сонун? Була -оптика. Не салкын? Лазерлер. Эмне сонун? Өрт күйөрмандары. Бул көрсөтмө жарым -жартылай от күйөрмандары жана жарым -жартылай бионикалык балеринадан шыктандырылган. Ар бир желдеткич ийилүү сенсору менен жарыкталган беш була -оптикалык таякчадан жасалган же кызыл
Температураны башкаруу Arduino жана PWM күйөрмандары менен: 6 кадам (сүрөттөр менен)
Температураны башкаруу Arduino жана PWM күйөрмандары менен: DIY сервери/тармак стойкасы үчүн Arduino жана PWM күйөрмандары боюнча PID менен температураны башкаруу Бир нече жума мурун мен тармактык түзмөктөр жана бир нече серверлер менен стойканы орнотушум керек болчу. Ошентип, кыштын ортосундагы температура
Usb күйөрмандары менен ноутбуктун стенди: 3 кадам
Usb күйөрмандары менен ноутбуктун стенди: Бул USB желдеткичтери бар тыкан торлуу ноутбук. Мен кээ бир идеяларымды төмөнкү көрсөтмө менен айкалыштырдым:
Арзан жана шайыр которулган Case күйөрмандары: 11 кадам
Арзан жана шайыр коммутатор күйөрмандары: Ошентип, мен жалган нерселерди колдонуп, жакшы чоң жарыктандырылган өчүргүчтөр менен 2 кошумча күйөрманы компьютериме коштум. Мен билем, сиз 5 1/2 дюймдук булуңга орнотулган күйөрман контроллерлерин абдан арзан ала аласыз, бирок менин оюмча бул салкыныраак