Мазмуну:

PC күйөрмандары үчүн DIY PWM Control: 12 кадам
PC күйөрмандары үчүн DIY PWM Control: 12 кадам

Video: PC күйөрмандары үчүн DIY PWM Control: 12 кадам

Video: PC күйөрмандары үчүн DIY PWM Control: 12 кадам
Video: Управление 32 сервомоторами с помощью PCA9685 и Arduino: V3 2024, Июль
Anonim
PC күйөрмандары үчүн DIY PWM Control
PC күйөрмандары үчүн DIY PWM Control

Бул Нускамада толугу менен өзгөчөлөнгөн 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 Ротари декодеринин дизайны

SLG46108 Ротари декодер дизайны
SLG46108 Ротари декодер дизайны
SLG46108 Ротари декодер дизайны
SLG46108 Ротари декодер дизайны
SLG46108 Ротари декодер дизайны
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

SLG46826 Fan Controller Дизайн
SLG46826 Fan Controller Дизайн

4 -кадам: PWM генерациясы эсептегичтер менен

PWM генерациясы эсептегичтер менен
PWM генерациясы эсептегичтер менен
PWM генерациясы эсептегичтер менен
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 Киргизүү
BUTTON Киргизүү

BUTTON киргизүү 20 мс дебюд кылынат, андан кийин бул чиптин тандалгандыгын аныктоочу бекиткичти которуштуруу үчүн колдонулат. Эгер ал тандалса, анда 4-бит LUT саатты өткөрүп жиберүү же инжекция сигналдарын өткөрүп берет. Эгерде чип тандалбаса, анда 4-бит LUT жөн гана CLK/8 сигналын өткөрөт.

7 -кадам: Duty Cycle Rolloverдин алдын алуу

Duty Cycle Rolloverдин алдын алуу
Duty Cycle Rolloverдин алдын алуу
Duty Cycle Rolloverдин алдын алуу
Duty Cycle Rolloverдин алдын алуу
Duty Cycle Rolloverдин алдын алуу
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 менен Duty Cycle Control
I2C менен Duty Cycle Control
I2C менен Duty Cycle Control
I2C менен Duty Cycle Control
I2C менен Duty Cycle Control
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 Дизайн

PCB Дизайн
PCB Дизайн

Дизайнды прототиптөө үчүн бир нече ПХБ чогултулган. Сол жактагы ПКБ - бул "Күйөрман контролери", анда айлануучу кодер, 12 В джекси, SLG46108 GreenPAK жана FT232H USBден I2Cге чейин ажыратуу тактасы үчүн коннекторлор жайгашкан. Оң жактагы эки ПКБ - бул "Fan Board", аларда SLG46826 GreenPAKтер, баскычтар, өчүргүчтөр, светодиоддор жана күйөрман баштары бар.

Ар бир күйөрман тактасынын сол жагында кепинделген эркек башы жана оң жагында аял башы бар, андыктан алар ромашка менен чынжырланышы мүмкүн. Ар бир күйөрман тактасы эки күйөрманы өз алдынча көзөмөлдөө үчүн ресурстар менен толтурулушу мүмкүн.

12 -кадам: C# тиркемеси

C# Колдонмо
C# Колдонмо

C# тиркемеси FT232H USB-I2C көпүрөсү аркылуу күйөрмандар тактасы менен иштөө үчүн жазылган. Бул колдонмо колдонмо тарабынан түзүлгөн I2C буйруктары менен ар бир күйөрмандын жыштыгын тууралоо үчүн колдонулушу мүмкүн.

Колдонмо бардык 16 I2C даректерин секундасына бир жолу коет жана GUIди кул болгон даректер менен толтурат. Бул мисалда Fan 1 (кул дареги 0001) жана Fan 3 (кул дареги 0011) тактага туташкан. Ар бир күйөрмандын иштөө циклин жөнгө салуу слайдер тилкесин жылдыруу аркылуу же слайдер тилкесинин астындагы текст кутусуна 0-256 чейинки маанини терүү аркылуу жүргүзүлүшү мүмкүн.

Жыйынтыктар

Бул дизайнды колдонуп, 16 күйөрмандарды өз алдынча башкарууга болот (анткени I2C кулунун 16 мүмкүн болгон даректери) же айлануучу коддогуч менен же C# тиркемеси менен. Жуптук эсептегичтер менен PWM сигналын кантип жаратуу жана ал сигналдын иштөө циклин оодаруусуз кантип көбөйтүү жана азайтуу керектиги көрсөтүлдү.

Сунушталууда: