"Dokumentācija" - tehniskā informācija pēc pieteikuma elektroniskās sastāvdaļas , konstrukcijas īpatnības dažādu radiotehnika Un elektroniskās shēmas , kā arī dokumentācija par darba ar inženieriju iezīmēm programmatūra un normatīvie dokumenti (GOST).
Microchip turpina izstrādāt un ražot progresīvus produktus, kas lietotājiem nodrošina lielāku funkcionalitāti, elastību un uzticamību. PICmicro mikrokontrolleri tiek izmantoti daudzās ikdienas ierīcēs - no veļas mašīnas un automobiļu tehnoloģijas līdz medicīnas ierīcēm. Salīdzināšanas, uztveršanas un PWM (CCP) modulis, kas atrodams daudzos Microchip mikrokontrolleros, galvenokārt tiek izmantots impulsu signālu mērīšanai un ģenerēšanai. Uzlabotais CCP (ECCP) modulis, kas atrodams daudzos jaunos mikrokontrolleros, nodrošina papildu funkcijas impulsa platuma modulācijas (PWM) veidošanai. ECCP modulis nodrošina atbalstu tilta un pustilta vadības ķēžu vadībai, programmējamu pārslēgšanas aizkaves laiku (lai novērstu caurejošo strāvu plūsmu caur ārējiem barošanas slēdžiem, kas saistīti ar to dažādajiem pārslēgšanas laikiem) un iespēju automātiski izslēgt PWM, kad ārkārtas situācijas. SSR un ECSR moduļiem ir plašas pielietojuma jomas. Šajā rakstā ir aprakstīti šo moduļu izmantošanas pamatprincipi katrā režīmā, kā arī "nestandarta" lietošanas gadījumi praktiski risinājumi.
Uztveršanas modulis tiek izmantots, lai izmērītu ilgumu starp diviem notikumiem, piemēram, periodu, impulsa platumu, darba ciklu utt.
1. piemērs. Perioda mērīšana diskrēts signāls(1. att.).
Rīsi. 1. Perioda mērīšana
2. piemērs. Perioda mērīšana ar rezultāta vidējo aprēķinu (2. att.).
Rīsi. 2. Perioda mērīšana ar rezultāta vidējo aprēķinu
Mērījumu rezultāta vidējā noteikšana bieži ir nepieciešama, ja ieejas signāls ir trokšņains. CCP modulis Microchip PIC kontrolleros ļauj veikt vidējo aprēķinu ar minimālu programmatūras pieskaitījumu.
3. piemērs. Impulsa ilguma mērīšana (3. att.).
Rīsi. 3. Impulsa ilguma mērīšana
4. piemērs. Impulsu darba cikla mērīšana (4. att.).
Rīsi. 4. Impulsu darba cikla mērīšana
Tipisks piemērs, kad ir nepieciešams šāds mērījums, ir paātrinājuma mērīšana. Digitālajiem akselerometriem parasti ir izejas signāls ar darba ciklu, kas ir proporcionāls ierīces paātrinājumam. Darba ciklu var izmērīt, izmantojot šādu algoritmu.
5. piemērs. Kodētāja griešanās ātruma mērīšana.
Rīsi. 5. Optiskais kodētājs
Kodētāja griešanās ātrumu var izmērīt dažādos veidos. Divi visbiežāk sastopamie sensoru veidi, kas atrodami kodētājos, ir optiskais sensors un Hall sensori. Optiskajos kodētājos tiek izmantota infrasarkanā gaismas diode un sensors, kā arī ritenis ar spraugām, kas modulē gaismas jaudu (5. att.). Cits veids izmanto jutīgu magnētiskais lauks Halles sensori, ar kuriem var noteikt magnētu stāvokli elektromotorā vai pastāvīgajiem magnētiem, kas piestiprināti pie rotējoša objekta (6. att.).
Rīsi. 6. Kodētājs ar Hall sensoriem
Šāds sensors rada vienu vai vairākus impulsus uz vienu objekta apgriezienu. Attēlā 7. attēlā parādītas laika diagrammas dažādos griešanās ātrumos. Palielinoties griešanās ātrumam, impulsu periods un to ilgums kļūst īsāks. Impulsa periods un ilgums ir proporcionāls griešanās ātrumam. Lai iegūtu lielāku izšķirtspēju, labāk ir izmantot sensorus ar vairākiem impulsiem vienā apgriezienā. Perioda mērījumu aprakstu, lai noteiktu kodētāja griešanās ātrumu, skatiet 1. piemērā un metodi perioda mērījumu vidējā noteikšanai 2. piemērā.
Rīsi. 7. Kodētāja izeja pie dažādiem rotācijas ātrumiem
6. piemērs. Analogā signāla perioda mērīšana.
Rīsi. 8. Shēma analogā signāla perioda mērīšanai
Mikrokontrolleri ar iebūvētu analogo komparatoru un CCP vai ECCP moduli var viegli izmantot analogā signāla perioda mērīšanai. Attēlā 8. attēlā parādīts shēmas piemērs, kurā tiek izmantoti PIC16F684 kontrollera perifērijas moduļi. Rezistori R3 un R4 nosaka salīdzinājuma darbības slieksni. Kad ieejas signāls šķērso sliekšņa līmeni, salīdzinājuma izejas sprieguma līmenis pārslēdzas starp 0 un 1. Rezistori R1 un R2 iestata histerēzi, lai novērstu “atlēcienu”, kad slieksnis un ieejas spriegums ir vienādi. Rīsi. 9 parāda histerēzes efektu.
Rīsi. 9. Diagrammas iekšā kontroles punkti
CCP modulis ir konfigurēts uztveršanas režīmā, lai mērītu periodu pie salīdzinājuma izejas.
Salīdzināšanas režīmā 16 bitu vērtības CCPRx reģistrā tiek salīdzinātas ar taimera stāvokli. Ja notiek sakritība, notiek pārtraukums un CCPx kontrolleris izvada:
Izvades reakciju nosaka biti CCPxCON vadības reģistrā.
Taimeris 1 parasti netiek atiestatīts uz 0, ja salīdzināšanas režīmā notiek pārtraukums no CCP moduļa, ja vien modulis nav konfigurēts īpašā notikuma aktivizētāja režīmā. Šajā režīmā, kad taimera un CCPRx reģistra vērtības ir vienādas, tiek ģenerēts pārtraukums, taimeris 1 tiek notīrīts un automātiski tiek sākta ADC konvertēšana (ja ir iespējota).
Moduļa darbība salīdzināšanas režīmā ir līdzīga taimera funkcijai parastajā hronometrā. Hronometra gadījumā pulkstenī tiek ielādēts konkrēts laiks un tiek skaitīts uz leju no iestatītā laika, līdz tas sasniedz nulli. Atšķirība starp taimera darbību salīdzināšanas režīmā ir tāda, ka laiks tiek skaitīts no nulles līdz iestatītajai vērtībai. Šī metode ir noderīga konkrētu darbību veikšanai precīzos laika intervālos. Parasto taimera režīmu var izmantot, lai veiktu tās pašas funkcijas, taču šajā gadījumā taimeris katru reizi būs jāatiestata. Salīdzināšanas režīms var arī automātiski mainīt CCPx izvades stāvokli.
Piemērs 7. Modulācijas impulsu veidošana dažādiem datu pārraides formātiem.
Rīsi. 10. Impulsa platums (PWM)
CCP moduli salīdzināšanas režīmā var izmantot dažādu modulācijas formātu ģenerēšanai. Attēlā 10-12 parāda dažādas iespējas 0 un 1 attēlošanai dažādos datu pārraides formātos. Datu pārraide ir līdzīga asinhronai datu pārraidei, kas satur START bitu, astoņus informācijas bitus un STOP bitu. TE laiks ir pamata laika elements katrā modulācijas formātā un nosaka datu pārraides ātrumu. TE laika ģenerēšanai var izmantot īpašu notikumu trigeri. Kad CCP notiek pārtraukums, pārtraukumu apstrādes apakšprogramma ģenerē nepieciešamo datu pārraides formātu.
Rīsi. 11. Mančestras modulācija
Rīsi. 12. Modulācija pēc impulsa pozīcijas
8. piemērs.
Parasti standarta PWM moduļu platums ir 10 biti. SSR moduli salīdzināšanas režīmā var izmantot, lai ģenerētu PWM ar 16 bitu precizitāti. Lai to izdarītu:
Rīsi. 13. 16 bitu PWM veidošana
Taimerim1 ir četras priekšskalošanas vērtības: 1:1, 1:2, 1:4 un 1:8. Iespējamo ģenerēto frekvenci aprēķina pēc formulas:
F PWM = F OSC / (65536 x 4 x priekšskalotājs)Mikrokontrolleram, kas darbojas ar FOSC = 20 MHz, FPWM frekvences būs 76,3 Hz, 38,1 Hz, 19,1 Hz un 9,5 Hz.
9. piemērs. Sērijas mērīšana, izmantojot ADC.
Īpašs notikumu trigeris salīdzināšanas režīmā (ja Timer1 un salīdzināšanas reģistra CCPRxL un CCPRxH vērtība sakrīt) var ģenerēt periodiskus pārtraukumus un papildus automātiski sākt ADC mērījumus. Parādīsim ar piemēru, kā organizēt ADC secīgu aptauju skaidri noteiktos laika punktos.
Rīsi. 14. Secīgā sprieguma mērīšana
Piemērs. Mikrokontrolleris PIC16F684 darbojas no iekšējā oscilatora, kas konfigurēts darbam ar 8 MHz. Ir nepieciešams secīgi aptaujāt ADC kanālus un izmērīt ieejas spriegumu pie tapām RA0, RA1 un RA2 ik pēc 30 ms.
1. taimeris pārplūst pēc TOSC x 65536 x 4 x priekšskalotāja. 1:1 priekšskalotājs taimeris pārplūdīs 32,8 ms laikā.
CCPR1 reģistra vērtību aprēķina, izmantojot formulu:
CCPR1 = laiks/(TOSC x 4 x prescaler) = 30 ms/ (125 ns x 4 x1) = 6000 = 0 xEA60. CCPR1L = 0x60, CCPR1H = 0xEA.ECCP modulim jābūt konfigurētam īpašā notikumu aktivizētāja režīmā. Šis režīms ģenerē pārtraukumu, kad Timer1 un salīdzināšanas reģistra CCPRxL un CCPRxH vērtība sakrīt. Šim režīmam CCP1CONТ = "b00001011". Kad notiek pārtraukums, taimeris automātiski notīrīs un iestatīs GO bitu ADCON0 reģistrā palaist ADC konvertēšana. Kad notiek pārtraukums no ECCP moduļa, jums ir jāizvēlas nākamā ADC ieeja, izmantojot ADCON0 reģistru.
Impulsu platuma modulācija, kas aplūkota turpmākajos piemēros, tiek izmantota dažādos uzdevumos – no audio signāla ģenerēšanas un gaismas diožu spilgtuma regulēšanas līdz elektromotora griešanās ātruma kontrolei. Visi šie uzdevumi ir balstīti uz PWM signāla pamatprincipu - jo lielāks impulsu darba cikls, jo lielāka ir vidējā sprieguma vērtība (15. att.). Vidējā sprieguma atkarība no darba cikla ir lineāra:
V CP = darba cikls x V maksRīsi. 15. Vidējās sprieguma vērtības atkarība no PWM darba cikla
CCP modulis Microchip mikrokontrolleros var ģenerēt PWM signālu ar 10 bitu precizitāti pie CCPx mikrokontrollera tapas. Paplašinātais ECCP modulis var ģenerēt PWM vienā no 4 tapām P1A...P1D šādos režīmos:
Tilta vadības režīmā ir pieejamas četras darbības iespējas:
10. piemērs. PWM frekvences izvēle PWM frekvence ir atkarīga no dažādiem faktoriem. Palielinoties frekvencei, palielinās pārslēgšanas zudumi, slodzes kapacitāte un induktivitāte ietekmē signāla formas izmaiņas. Tāpēc mikrojaudas ierīcēs jāizvēlas minimālā iespējamā PWM frekvence, savukārt ķēdēs ar kapacitatīvu vai induktīvu slodzi frekvence jāizvēlas, pamatojoties uz ķēdes analīzi.
PWM tiek izmantots, lai vadītu motorus impulsa režīmā. Pamatojoties uz motora īpašībām, ir jāizvēlas PWM frekvences vērtība, lai nodrošinātu optimālus elektriskās piedziņas raksturlielumus. Izvēloties atsauces frekvenci, svarīgs kritērijs ir akustiskais troksnis, ko dzinējs rada darbības laikā. Matēti motori var radīt dzirdamu troksni frekvencēs no 20 Hz līdz 4 kHz. Lai novērstu šo nevēlamo efektu, jums jāizvēlas frekvence virs 4 kHz. Šādās frekvencēs vairs nebūs akustiskā trokšņa, jo mehāniskajām daļām ir zemākas rezonanses frekvences.
PWM bieži izmanto, lai mainītu apgaismes ķermeņu spilgtumu. Mirgošanas efekts var būt pamanāms pie frekvencēm, kas zemākas par 50 Hz, tāpēc praksē PWM frekvence tiek izvēlēta ap 100 Hz vai augstāka.
11. piemērs. Komutatora motora vadība DC izmantojot SSR moduli
Motora griešanās ātrums ir proporcionāls PWM darba ciklam pie CCP1 kontrollera izejas (16. att.). Apskatīsim, kā konfigurēt PIC16F628 mikrokontrolleri, lai ģenerētu PWM ar frekvenci 20 kHz un 50% darba ciklu. Kontroliera pulksteņa frekvence ir 20 MHz.
Rīsi. 16. Matēta līdzstrāvas motora griešanās ātruma regulēšana
Izvēlieties Timer 2 priekšskalotāja vērtību: F PWM = F OSC /((PR2 x 1) x 4 x priekšskalotājs) = 19531 Hz, ar PR2 = 255 un priekšskalotāju = 1.
Iegūtā frekvence ir nedaudz zemāka par 20 kHz, tāpēc priekšskalera vērtība ir piemērota.
Mēs aprēķinām periodu reģistra PR2 vērtību: PR2 = F OSC / (F PWM x 4 priekšskalotājs) — 1 = 249
Mēs aprēķinām darba cikla reģistra CCPR1L un CCPCON vērtību: CCPR1L:CCP1CON = = darba cikls G 0x3FF = 0x1FF CCPR1L = OxlFF " 2 = 0x7F, CCP1CON = 3
12. piemērs.
Rīsi. 17. Matēta līdzstrāvas motora atgriezeniskā vadība, izmantojot ECCP moduli
ECCP modulim ir vadības iespējas komutatoru motori DC. Attēlā 17. attēlā parādīta tilta motora vadības ķēdes elektroinstalācijas shēma. ECCP P1A...P1D moduļa izejas var darboties tilta ķēdes vadības režīmā un iestatīt griešanās ātrumu un virzienu. Attēlā parādītajam piemēram. 17, ECCP modulis ir konfigurēts šādi: P1A, P1C aktīvais līmenis "1"; P1B, P1D aktīvais līmenis "1" (CCP1CON). Tas tiek darīts, lai MOSFET draiveri (TC428) atvērtu izejas slēdžus. Tabulā parādīta sakarība starp dzinēja darbības režīmiem un PWM izvadēm.
Režīms | P1A | P1B | R1S | P1D | CCP1CON |
---|---|---|---|---|---|
uz priekšu | 1 | X | X | PWM | b01xx1100 |
atpakaļ | X | PWM | 1 | X | b11xx1100 |
inerce | X | X | X | X | nav nozīmes |
bremzēšana | X | 1 | 1 | X | nav nozīmes |
13. piemērs: kontrole stepper motors mikrosoļu režīmā
Pakāpju motori ieņem unikālu nišu starp dažādiem motoru pielietojumiem. Stepper motori tiek izmantoti mērīšanas sistēmās (kā parametru indikatori) un izpildmehānismu pozicionēšanas vadības sistēmās. Bieži vien ir nepieciešams vadīt pakāpju motoru mikropakāpju režīmā. Mikrokontrollera izmantošana sniedz daudzas priekšrocības: iespēja kontrolēt vārpstas ātrumu, tas ir, variēt paātrinājumu un bremzēšanu un precīzi pozicionēt vadāmo objektu. Mikrokontrolleris PIC16F648 ir ideāli piemērots lielākajai daļai šo pakāpju motora vadības uzdevumu. Šim lētajam 14 kontaktu kontrollerim ir 2K vārdu Flash programmu atmiņa, astoņi 10 bitu ADC kanāli, divi analogie komparatori un ECCP modulis. Tādējādi, izmantojot tikai kontroliera perifērijas ierīces, jūs varat vadīt pakāpju motoru, izmantojot specializētu PWM moduli - ECCP, un ieviest strāvas aizsardzību, izmantojot iebūvētu komparatoru.
Detalizēts apraksts Stepper motora vadības algoritms un programmas paraugs ir publicēti Microchip tīmekļa vietnē dokumentā AN906 "Stepper Motor Control, izmantojot PIC16F684".
14. piemērs. Analogā signāla kondicionēšana
Rīsi. 18. Analogā signāla veidošana, izmantojot PWM un zemas caurlaidības filtru
PWM izvadi var izmantot pārveidošanai no digitālās uz analogo, izmantojot vairākus ārējie elementi. PWM signāla pārveidošana par analogo tiek veikta, pamatojoties uz zemas caurlaidības filtru (18. att.). Lai izvairītos no nevēlamu harmoniku parādīšanās izejas signālā, modulācijas frekvencei (F PWM) jābūt daudz augstākai par izejas signāla frekvenci (F BW):
F PWM = K x F BW,Turklāt, jo augstāka ir K vērtība, jo mazāk harmoniku.
Lai aprēķinātu filtru, tiek izmantota šāda formula:
RC=1/(2πF BW)Izvēloties kapacitātes C vērtību, tiek aprēķināta rezistora R vērtība PWM frekvences slāpēšana izejas signālā tiek noteikta ar izteiksmi:
-10 x log (dB)Ja slāpēšana ir nepietiekama, tad K koeficients tiek palielināts, tādējādi palielinot modulācijas frekvenci. Detalizēts ieviešanas piemēra apraksts ir dokumentā AN538 "PWM izmantošana analogās izejas ģenerēšanai PIC17C42" vietnē Microchip.
15. piemērs. Pastiprināšanas sprieguma pārveidotājs
Rīsi. 19. Pastiprināšanas pārveidotājs
Impulsu platuma modulāciju izmanto sprieguma pārveidotājos, piemēram, pastiprināšanas ķēdēs (19. attēls). Ķēdes darbību var iedalīt divās fāzēs. Pirmajā fāzē, kad PWM izejai ir aktīvs viens līmenis, enerģija tiek uzkrāta spolē L1, savienojot tās izeju ar zemi ar tranzistoru T1. Otrajā fāzē PWM izejai ir nulles līmenis, kas izslēdz tranzistoru. Strāva no spoles plūst caur diodi D1 uz uzglabāšanas kondensatoru C2 un uz slodzi. Šajā gadījumā slodzes spriegums ir lielāks par barošanas spriegumu. Ķēdes nepieciešamo raksturlielumu aprēķins tiek veikts, izmantojot formulas:
U ārā / U iekšā =1/(1-D) ,kur D ir PWM impulsu darba cikls.
Induktivitātes vērtība tiek izvēlēta, pamatojoties uz maksimālo izejas strāvu:
L = U iekšā (1-D)DT/2I izeja,kur T ir PWM periods.
Aprēķinot, tiek pieņemts, ka maksimālais darba cikls D ir ne vairāk kā 75%, un PWM frekvence ir 10...100 kHz. Ir arī jāaprēķina pašreizējā pulsācija:
I pulss = U DTJa pulsācijas strāva pārsniedz induktivitātes piesātinājuma strāvas vērtību, tad jāizvēlas lielāka induktivitātes vērtība.
PWM noslodzes koeficientu kontrolieris aprēķina saskaņā ar PID likumu, kas ļauj uzturēt izejas spriegums kad mainās slodze. Sīkāka informācija šī metode aprakstīts piemērā AN258 "Low Cost USB Microcontroller Programmer" Microchip vietnē.
16. piemērs: LED spilgtuma kontrole
Varat izmantot PWM, lai mainītu gaismas diožu spilgtumu. Lai to izdarītu, gaismas diode ir savienota ar SSR izeju caur rezistoru, kas ierobežo maksimālo strāvu. Mainot impulsu darba ciklu, izmantojot CCPRxL reģistru plašā diapazonā (00...FF), varat mainīt mirdzuma spilgtumu. Jāņem vērā, ka PWM frekvencei jābūt vismaz 100 Hz, lai novērstu mirgošanu.
17. piemērs. X-10 datu pārraides protokols. Nesējfrekvences sintēze
Lai pārraidītu informāciju pa elektriskajiem tīkliem, piemēram, pārsūtot datus dzīvokļa iekšienē, izmantojot 220 V strāvas vadu, bieži tiek izmantots X-10 protokols. Modulēts signāls vairāk nekā augsta frekvence(120 kHz). Lai iegūtu šādu frekvenci kontrolierī, varat izmantot SSR moduli PWM režīmā. Attēlā 6. attēlā parādīta raidītāja ieviešana.
Saskaņā ar X-10 specifikāciju 120 kHz frekvencei jābūt ne vairāk kā 2 kHz novirzēm. Kvīts precīza vērtība frekvence SSR modulī ir saistīta ar sistēmas kvarca izmantošanu ar frekvenci 7,68 MHz. Nesējfrekvence ir pievienota brīdī, kad tīkla spriegums šķērso nulli.
Piemērā AN236 "X-10 mājas automatizācija, izmantojot PIC16F877A" varat atrast vairāk detalizēts apraksts protokols un pirmkodi programmas.
Rīsi. 20. Shēma ziņojumu pārsūtīšanai pa 220 V elektrotīklu, izmantojot X-10 protokolu
CCP moduli (ECCP) Microchip kontrolleros var ieprogrammēt lidojuma laikā, kā rezultātā šie moduļi var veikt dažādas funkcijas vienā ierīcē atkarībā no darbības algoritma. Apskatīsim elastīgu funkciju izmaiņu iespējas, izmantojot konkrētus piemērus.
18. piemērs. RS-232 bodu ātruma automātiska noteikšana
RS-232 sakaru saskarnei ir dažādi pārraides ātrumi. Ierīces iespēja noteikt sakaru ātrumu un automātiski konfigurēt uztvērēju un raidītāju prasa atbilstošu procedūru klātbūtni ierīces programmā.
Daudzos jaunos Microchip kontrolleros ir iekļauts aparatūras EUSART modulis ar iespēju automātiska noteikšana datu saņemšanas ātruma un pārraides ātruma regulēšana, iespēja strādāt SLEEP režīmā un citas funkcijas, kas nepieciešamas tādu protokolu kā LIN ieviešanai.
Rīsi. 21. Kalibrēšanas simbols RS-232 bodu ātruma automātiskai noteikšanai
Tajos kontrolleros, kuriem nav aparatūras USART moduļa, CCP moduli var izmantot uztveršanas režīmā, lai automātiski noteiktu sakaru ātrumu, un pēc tam to pārkonfigurēt salīdzināšanas režīmā, lai ģenerētu vai saņemtu datus, izmantojot RS-232. Lai automātiskās ātruma noteikšanas algoritms darbotos, ir nepieciešams kalibrēšanas baits, no kura sākas datu pārsūtīšana no vienas ierīces uz otru. Viens no iespējamiem kalibrēšanas simboliem ir parādīts attēlā. 21. Zināmie kalibrēšanas simbola laika parametri ļauj uztverošajai ierīcei noteikt un pielāgot RS-232 interfeisa pārraides ātrumu.
Algoritms pārraides ātruma noteikšanai, izmantojot kalibrēšanas simbolu:
Programmu piemēri informācijas saņemšanas un pārraidīšanas organizēšanai pa seriālo kanālu, kā arī procedūras automātiskai pārraides ātruma noteikšanai ir pieejami AN712 "RS-232 Autobaud for the PIC16C5X Devices".
19. piemērs. Dubultās integrācijas ADC
SSR modulis ļauj izveidot dubultās integrācijas ADC, pamatojoties uz ārēju integratoru. Attēlā 8 ir parādīta šādas ierīces diagramma. Ieejas signāla Uin integrācija tiek veikta noteiktā laika periodā T1. Pēc tam integratora ieejai tiek pielietots U op un tiek mērīts laiks, kurā integratora izejā parādās nulles līmenis. No laikiem T1 un T2, kā arī no U op ir iespējams aprēķināt U in.
Rīsi. 22. Dubultās integrācijas ADC, izmantojot SSR moduli
Lai iestatītu laiku T1, ir jāizmanto SSR moduļa salīdzināšanas režīms, un, lai noteiktu T2, jāizmanto uztveršanas režīms. Īsumā algoritmu var attēlot šādi:
Pateicoties Microchip kontrolleru daudzveidībai un to programmatūras un aparatūras savietojamībai, visus aprakstītos piemērus var viegli pārnest uz konkrēto kontrolleri, atkarībā no izstrādājamās sistēmas prasībām. Microchip pastāvīgi paplašina kontrolieru klāstu gan kontaktu skaita samazināšanas un perifērijas ierīču palielināšanas virzienā, gan jaudīgu kontrolieru ar lielu atmiņas apjomu un maksimāli iespējamo perifērijas ierīču virzienā.
Publicēšanas datums: 01.09.2004
Viena no pieejām, ko izmanto, lai būtiski samazinātu radio ķēžu jaudas komponentu siltuma zudumus, ir iekārtu pārslēgšanas darbības režīmu izmantošana. Plkst līdzīgas sistēmas elektriskās jaudas komponents ir vai nu atvērts - šajā laikā tajā praktiski nav sprieguma krituma, vai arī atvērts - šajā laikā tai tiek piegādāta nulles strāva. Jaudas izkliedi var aprēķināt, reizinot strāvu un spriegumu. Šajā režīmā ir iespējams sasniegt aptuveni 75-80% vai lielāku efektivitāti.
Lai iegūtu vajadzīgās formas signālu pie izejas, strāvas slēdzis ir jāatver tikai uz noteiktu laiku, proporcionāli aprēķinātajam izejas spriegumam. Tas ir impulsa platuma modulācijas (PWM) princips. Tālāk šādas formas signāls, kas sastāv no dažāda platuma impulsiem, nonāk filtra zonā, pamatojoties uz induktors un kondensators. Pēc pārveidošanas izeja būs gandrīz ideāls vajadzīgās formas signāls.
PWM darbības joma neaprobežojas tikai ar komutācijas barošanas avotiem, stabilizatoriem un sprieguma pārveidotājiem. Izmantojot šo principu, izstrādājot jaudīgu pastiprinātāju audio frekvenceļauj ievērojami samazināt ierīces enerģijas patēriņu, noved pie ķēdes miniaturizācijas un optimizē siltuma pārneses sistēmu. Trūkumi ietver viduvēju izejas signāla kvalitāti.
Izveidot vēlamās formas PWM signālus ir diezgan grūti. Tomēr mūsdienu nozare var iepriecināt ar brīnišķīgām īpašām mikroshēmām, kas pazīstamas kā PWM kontrolieri. Tie ir lēti un pilnībā atrisina impulsa platuma signāla ģenerēšanas problēmu. Iepazīšanās ar to tipisko dizainu palīdzēs orientēties šādu kontrolieru struktūrā un to lietošanā.
Standarta PWM kontrollera ķēde pieņem šādas izejas:
Mikroshēmas tapu skaitu nosaka tās konstrukcija un darbības princips. Ne vienmēr ir iespējams uzreiz saprast sarežģītus terminus, bet mēģināsim izcelt būtību. Uz 2 tapām ir mikroshēmas, kas kontrolē push-pull (divu roku) kaskādes (piemēri: tilts, pustilts, 2-taktu apgrieztais pārveidotājs). Ir arī PWM kontrolieru analogi viengala (vienas rokas) kaskāžu vadīšanai (piemēri: uz priekšu/atpakaļ, pastiprināšana/atgriešana, invertēšana).
Turklāt izejas stadija var būt viena vai divu ciklu struktūra. Push-pull galvenokārt tiek izmantots kontrolei lauka efekta tranzistors, atkarībā no sprieguma. Lai ātri aizvērtu, ir jāpanāk ātra aizbīdņa avota un aizbīdņu kondensatoru izlāde. Šim nolūkam tiek izmantota regulatora push-pull izejas stadija, kuras uzdevums ir nodrošināt, lai izeja būtu aizvērta kopējam kabelim, ja nepieciešams slēgt lauka tranzistoru.
Lieljaudas PWM kontrolleriem var būt arī izejas slēdža vadības ierīces (draiveri). Kā izejas slēdžus ieteicams izmantot IGBT tranzistorus.
Darbinot jebkuru ierīci, nav iespējams pilnībā novērst bojājumu iespējamību, un tas attiecas arī uz pārveidotājiem. Dizaina sarežģītībai nav nozīmes, pat labi zināmais TL494 PWM kontrolieris var radīt darbības problēmas. Darbības traucējumiem ir atšķirīgs raksturs - dažus no tiem var noteikt ar aci, savukārt citu noteikšanai nepieciešama īpaša mēraparatūra.
Lai izmantotu PWM kontrolieri, jums vajadzētu iepazīties ar galveno ierīces darbības traucējumu sarakstu un tikai vēlāk - ar iespējām tos novērst.
Viena no visbiežāk sastopamajām problēmām ir galveno tranzistoru sabojāšanās. Rezultātus var redzēt ne tikai mēģinot iedarbināt ierīci, bet arī pārbaudot to ar multimetru.
Turklāt ir arī citi defekti, kurus ir nedaudz grūtāk atklāt. Pirms tiešas PWM kontrollera pārbaudes varat apsvērt visbiežāk sastopamos bojājumu gadījumus. Piemēram:
Universālie un daudzfunkcionālie PWM kontrolieri tagad ir atrodami gandrīz visur. Tie kalpo ne tikai kā neatņemama barošanas bloku sastāvdaļa lielākajai daļai mūsdienu ierīču - standarta datoriem un citām ikdienas ierīcēm. Pamatojoties uz kontrolieriem, tiek izstrādātas jaunas tehnoloģijas, kas var ievērojami samazināt resursu patēriņu daudzās cilvēka darbības jomās. Privātmāju īpašnieki gūs labumu no akumulatoru uzlādes kontrolieriem no fotogalvaniskām baterijām, kuru pamatā ir uzlādes strāvas impulsa platuma modulācijas princips.
Augstā efektivitāte padara jaunu, uz PWM principu balstītu ierīču izstrādi ļoti daudzsološu. Sekundārie enerģijas avoti nav vienīgā darbības joma.
Piemēram);
Arduino digitālās tapas var izvadīt tikai divas vērtības: loģiskā 0 (LOW, zems līmenis) un loģiskais 1 (AUGSTS, augsts). Tāpēc tie ir digitāli. Bet Arduino ir “īpašas” tapas, kuras ir apzīmētas PWM. Dažkārt tie ir apzīmēti ar viļņotu līniju "~" vai apvilkti vai citādi atšķirti no citiem. PWM apzīmē Impulsa platuma modulācija vai impulsa platuma modulācija, PWM.
Impulsa platuma modulēts signāls ir nemainīgas frekvences, bet mainīgas impulsa signāls darba cikls(impulsa ilguma un tā atkārtošanās perioda attiecība). Sakarā ar to, ka vairākums fizikālie procesi dabā ir inerce, tad pēkšņi sprieguma kritumi no 1 līdz 0 tiks izlīdzināti, iegūstot kādu vidējo vērtību. Iestatot darba ciklu, jūs varat mainīt vidējo spriegumu pie PWM izejas.
Ja darba cikls ir 100%, tad Arduino digitālajai izvadei vienmēr būs loģiskais spriegums “1” vai 5 volti. Ja iestatāt darba ciklu uz 50%, tad pusi laika izvade būs loģiska "1" un pusi laika - loģiska "0", un vidējais spriegums būs 2,5 volti. Un tā tālāk.
Programmā darba cikls ir norādīts nevis procentos, bet gan kā skaitlis no 0 līdz 255. Piemēram, komanda analogWrite(10, 64) liks mikrokontrollerim nosūtīt signālu ar darba ciklu 25% uz digitālo PWM izeju Nr.10.
Arduino tapas ar impulsa platuma modulācijas funkciju darbojas aptuveni 500 Hz frekvencē. Tas nozīmē, ka impulsa atkārtošanās periods ir aptuveni 2 milisekundes, ko mēra ar zaļajiem vertikālajiem gājieniem attēlā.
Izrādās, ka varam simulēt analogais signāls uz digitālās izejas! Interesanti, vai ne?!Kā mēs varam izmantot PWM? Daudz pieteikumu! Piemēram, kontrolējiet gaismas diodes spilgtumu, motora griešanās ātrumu, tranzistora strāvu, pjezo emitera skaņu utt.
Apskatīsim visvienkāršāko piemēru - gaismas diodes spilgtuma regulēšanu, izmantojot PWM. Saliksim klasisku shēmu.
Atvērsim skici "Izbalināt" no piemēriem: Failu paraugi 01.Basics Fade.
Nedaudz mainīsim to un ielādēsim Arduino atmiņā.
Int ledPin = 3; // deklarēt tapu, kas kontrolē LED int spilgtumu = 0; // mainīgais spilgtuma iestatīšanai int fadeAmount = 5; // spilgtuma maiņas solis anulēt iestatīšanu() ( pinMode(ledPin, OUTPUT); } void loop() ( analogWrite(ledPin, spilgtums); // iestatiet spilgtumu uz ledPin pin brightness += fadeAmount; // mainiet spilgtuma vērtību /*, sasniedzot robežas 0 vai 255, mainiet spilgtuma maiņas virzienu */ if (spilgtums == 0 || spilgtums == 255) ( fadeAmount = -fadeAmount; // mainiet zīmi solis ) aizkave(30); // aizkave labākai efekta redzamībai }
Ieslēdziet strāvu. LED pakāpeniski palielina spilgtumu un pēc tam vienmērīgi samazinās. Mēs modelējām analogo signālu pie digitālās izejas, izmantojot impulsa platuma modulāciju.
Noskatieties pievienoto video, kurā skaidri redzamas gaismas diodes spilgtuma izmaiņas uz pievienotā osciloskopa, varat redzēt, kā mainās signāls no Arduino.
Diezgan bieži forumā ir jautājumi par Shirotno ieviešanu Impulsu modulācija uz mikrokontrolleru ierīcēm. Es pats par to daudz jautāju un, to sapratis, nolēmu atvieglot jaunpienācēju darbu šajā jomā, jo tīklā ir daudz informācijas un tas ir paredzēts dažāda līmeņa izstrādātājiem, un es pats tikko to sapratu, un mana atmiņa joprojām ir svaiga.
Tā kā man pats svarīgākais bija PWM izmantošana tieši gaismas diožu spilgtuma regulēšanai, tad tieši tos izmantošu piemēros. Kā mikrokontrolleri izmantosim iemīļoto ATmega8.
Vispirms atcerēsimies, kas ir PWM. PWM signāls ir noteiktas frekvences un darba cikla impulsa signāls:
Biežums ir periodu skaits vienā sekundē. Darba cikls ir impulsa ilguma attiecība pret perioda ilgumu. Jūs varat mainīt abus, bet, lai kontrolētu gaismas diodes, pietiek ar darba cikla kontroli. Augšējā attēlā redzams PWM signāls ar darba ciklu 50%, jo impulsa ilgums (impulsa platums) ir tieši puse no perioda. Attiecīgi gaismas diode būs tieši pusi laika ieslēgta un puse izslēgta. PWM frekvence ir ļoti augsta un acs nepamanīs gaismas diodes mirgošanu mūsu redzes inerces dēļ, tāpēc mums šķitīs, ka gaismas diode spīd uz pusi mazāka spilgtuma. Ja mainīsim darba ciklu uz 75%, tad LED spilgtums būs 3 ceturtdaļas no pilna, un grafiks izskatīsies šādi:
Izrādās, ka mēs varam regulēt gaismas diodes spilgtumu no 0 līdz 100%. Tagad parunāsim par tādu PWM parametru kā izšķirtspēja. Izšķirtspēja ir darba cikla regulēšanas gradāciju (pakāpju) skaits, mēs apsvērsim 256 soļu izšķirtspēju.
Šķiet, ka esam sakārtojuši parametrus, tagad parunāsim par to, kā mēs varam iegūt šo PWM no mikrokontrollera. Mēs ņemam uzasinātu, apsildāmu lodāmuru un sākam spīdzināt MK, vienlaikus piestiprinot pie tā divām kājām osciloskopu un pārbaudot, vai uz tām ir vajadzīgā darba cikla signāls. Mikrokontrolleriem ir aparatūras atbalsts PWM un tam ir vairāki kanāli, mūsu gadījumā 3. Atsevišķi mikrokontrollera tapas ir atbildīgi par PWM izdošanu, mūsu gadījumā OC2, OC1A, OC1B (15,16,17 kāja DIP pakotnē). Šim nolūkam tiek izmantoti arī mikrokontrolleru taimeri, mūsu gadījumā TC1, TC2. Tātad, kā konfigurēt MK, lai tas izvadītu signālu ar nepieciešamo darba ciklu? Viss ir ļoti vienkārši, vispirms konfigurēsim mums nepieciešamās izvades kājas:
PORTB=0x00; DDRB=0x0E; // 0b00001110
Tālāk sāksim konfigurēt taimerus. Taimerim TC1 mums ir nepieciešami divi reģistri: TCCR1A un TCCR1B. Atveriet datu lapu un izlasiet, kā šie reģistri ir konfigurēti. Es to konfigurēju 8 bitu PWM signālam, kas atbilst 256 soļu izšķirtspējai:
TCCR1A=0xA1; TCCR1B=0x09;
Taimerim TC2 izmantosim reģistru TCCR2=0x69;. Tās iestatījums izskatās šādi:
TCCR2=0x69;
Tas arī viss, taimeri ir konfigurēti. Darba ciklu iestatīs reģistri OCR1A, OCR1B, OCR2:
Iestatīsim nepieciešamos darba ciklus:
OCR1A=0x32; //50 soļi OCR1B=0x6A; //106 soļi OCR2=0xF0; //240 soļi
Novietosim šo reģistru pieaugumu un samazinājumu bezgalīgā cilpā:
While(1) ( OCR1A++; OCR1B--; OCR2++; delay_ms(50); )
Pirmā testa programma ir gatava, un CVAVR tā izskatās šādi:
#include "mega8.h" #include "delay.h" void main(void) ( PORTB=0x00; DDRB=0x0E; // 0b00001110 TCCR1A=0xA1; TCCR1B=0x09; TCCR2=0x69; OCR1A=050322; soļi OCR1B=0x6A; //106 soļi OCR2=0xF0 //240 soļi while (1) ( OCR1A++; OCR1B--; OCR2++; delay_ms(50); )
Marks Torens un Čada Stjuarts, Lineārā tehnoloģija
Dizaina piezīme 538
Ievads
Impulsa platuma modulācija (PWM) ir izplatīta metode analogo spriegumu veidošanai, izmantojot digitālās ierīces, piemēram, mikrokontrolleri vai FPGA. Lielākajai daļai mikrokontrolleru ir specializēti perifērijas bloki, kas paredzēti PWM ģenerēšanai, un, lai ģenerētu PWM signālus, izmantojot FPGA, pietiek ierakstīt tikai dažas RTL koda rindiņas. Šī tehnoloģija ir ārkārtīgi vienkārša un praktiska gadījumos, kad prasības analogo signālu parametriem nav pārāk stingras, jo tās ieviešanai ir nepieciešama tikai viena mikroshēmas izeja, un nepieciešamo programmas koda rindu skaits ir nesamērīgi mazāks nekā būtu. nepieciešams, ja tika izmantots ciparu-analoga pārveidotājs (DAC) ar SPI interfeiss vai I 2 C. 1. attēlā parādīts tipisks piemērs digitālās izvades lietojumprogrammas, kuru izeja tiek pārveidota par analogo spriegumu, izmantojot filtru.
Lai atklātu šīs shēmas neskaitāmos trūkumus, jums nav jārok ļoti dziļi. Ideālā gadījumā 12 bitu analogā signāla pulsācijai vajadzētu būt mazākai par vismazāk nozīmīgajam bitam, kam, ja PWM frekvence ir 5 kHz, būtu nepieciešams zemas caurlaidības filtrs ar 1,2 Hz robežfrekvenci. Analogā sprieguma izejas pretestība, ko nosaka filtra rezistora pretestība, var būt pārāk augsta, jo ir nepieciešams uzturēt pieņemamus kondensatora izmērus. Tādējādi izeja var darboties tikai ar augstas pretestības slodzi. PWM uz analogās pārveidošanas raksturlieluma slīpums ir atkarīgs no mikrokontrollera barošanas sprieguma, iespējams, neprecīzi. Smalkāks efekts ir saistīts ar efektīvo izejas pretestību neatbilstību digitālā izeja pretējos loģikas stāvokļos, kuriem, lai saglabātu nepieciešamo linearitāti, jābūt ievērojami mazākam par filtra rezistora pretestību. Visbeidzot, lai izejas spriegums paliktu nemainīgs, PWM signālam jābūt nepārtrauktam, kas var būt problemātiski, ja vēlaties pārslēgt procesoru mazjaudas izslēgšanas režīmā.
Vai šis PWM analogais pārveidotājs ir labāks?
2. attēlā parādīts mēģinājums labot šos trūkumus. Pateicoties izejas buferim, kļuva iespējams filtrā izmantot augstas pretestības rezistorus, vienlaikus saglabājot zemu analogās izejas pretestību. Izmantojot ārēju CMOS buferi, ko darbina precīzs atsauces avots, pastiprinājuma precizitāte tiek palielināta, jo PWM signāla robežas tagad ir iezemētas un precīzs pozitīvais spriegums. Šī shēma noteikti ir izmantojama, bet tai ir nepieciešama liels daudzums komponentiem, neļauj nostādināšanas laikam būt labākam par 1,1 s, un nesatur nekādus mehānismus, ar kuriem būtu iespējams “noturēt” analogo spriegumu, kad PWM signāls ir izslēgts.
Uzlabots PWM-analogais pārveidotājs
Digitālā-analogie pārveidotāji (DAC) Duālie 10 bitu PWM uz VOUT DAC ar 10ppm/C atsauci