Svet elektronike

torek
25 julij 2017
Text size
  • Increase font size
  • Default font size
  • Decrease font size
Domov Revija Programiranje PSoC4 – Cypress-ova poceni alternativa Arduinu (3)

PSoC4 – Cypress-ova poceni alternativa Arduinu (3)

E-pošta Natisni

V drugem delu sem se lotil opisovanja “komponent”, ki jih lahko poljubno povezujemo med sabo. V zadnjem delu PSoC članka bom opisal Timerje in PWM, komunikacijske “komponente” in razhroščevanje. Razhroščevanje v PSoC 4 je v primerjavi z AVR mikrokontrolerji zelo učinkovito.

Timerji in PWM

Slike niFunkcije timerja/števca pa tudi PWM, ki so vključene v PSoC 4, so podobne tistim, ki jih najdete v ostalih mikrokontrolerjih. Največja razlika je v tem, da lahko zgradite timerje, števce in PWM funkcije od 8-bit do 32-bitne dolžine. Občasno potrebujem 24-bit števec in enostavneje je vzeti 24-bit PSoC 4 števec, kot pa dodati prekinitveno rutino, s čemer bi razširil AVR-jev 16-bit števec na 24-bitov.

Kot v nekaterih novejših AVR-jih, imajo PSoC 4 PWM vezja komplementarne izhode in možnost kot t.i. “dead-time insertion”. Števce lahko nastavite tako, da delujejo kot vmesnik za rotacijski enkoder s standardnim dvofaznim vhodom, lahko pa dodate dodatni indeks vhod. Na voljo sta dve Enkoder komponenti, ena uporablja TCPWM blok, ena pa ne. Poizkusil sem uporabiti ne-TCPWM verzijo te “komponente” v projektu (zato ker sem TCPWM blok uporabil drugje), vendar sem moral priznati, da ga nisem uspel zagnati. Ko sem iskal po forumih sem opazil, da so tudi drugi uporabniki imeli podobne probleme, vendar nisem našel rešitve. Morda je to popravljeno v Creator 3.1 IDE. Komponenta Rotacijski enkoder lahko ima predznačen izhod števca in resolucijo od 8 do 32 bitov.

Ker ima PSoC 4 veliko različnih logičnih “komponent”, lahko uporabite izhod PWM in ga vežete preko teh logičnih vrat tako, da omogočite hardversko “kill” funkcijo, ki bi “ubila” napajanje za PWM motorja ali grelnika glede na neko napako, brez da bi v to vpletali programsko ustavitev.

Slike niVerjetno ste navajeni uporabljati standardne PWM oblike, kjer je PWM perioda razdeljena na “on” in “off” intervale glede na razmerje signal/pavza. Če na primer s PWM kontrolirate LED svetila je možno, da pride do pobliskavanja ko je razmerje signal/pavza nizko. To se zgodi zato, ker se generira kratek impulz, ki mu sledi relativno dolga pavza. Da bi premagali to oviro, je Cypress vključil posebno komponentno, ki je podobne kot enostaven PWM, vendar zmanjša utripanje. Imenujejo co prISM komponenta. Namesto da bi uporabili običajne PWM signale, prISM vezje uporablja pseudo-naključni generator števil. Navedete lahko gostoto bitov med 0 in 100 odstotki. Ta gostota pa določa svetilnost LED, hitrost vrtenja motorja itd. Ker dobivate naključno mešanico impulzov s spremenljivo širino, razdeljeno preko časa, se pojavlja manj utripanja.

In še, če naložite isto začetno vrednost v generator naključnih števil v vsako psISM komponentno, bo vsak LED izhod “v fazi” z drugim – če to želite seveda. Če pa v generator naložite različno začetno vrednost, lahko na ta način zmanjšate EMI motnje, ki jih generirajo močna LED svetila.

Komponenta prISM vsebuje “omogoči” vhod, ki ga lahko preklopite interno tako, da ga povežete na zunanje GPIO priključke in ga uporabite za proženje.

Na Sliki 1 lahko vidite nekaj primerov prISM izhodov pri različnih razmerjih signal/pavza.

Podobno kot pri drugih časovnih funkcijah ima PSoC 4funkcijo pomikalnega registra. Ta register je lahko od 8 do 32-bitov dolg. Komponenta pomikalnega registra vsebuje obe funkciji “shift-in” in “shift-out”, zato lahko z njo naredite funkcije, kot npr. SPI. To je lahko uporabno, če potrebujete sinhronski serijski protokol z več kot standardnimi 8 biti. Takšna komponenta bi bila na primer uporabna pri krmiljenju NeoPixel LEDic, kjer morajo biti rutine časovno hitre in tudi zelo natančne. Moj članek o NeoPixel si lahko preberete v SE226. V tistem primeru je bila potrebna zelo pametna AVR asemblerska rutina, s katero sem krmilil polje 60 NeoPixel LEDic v projektu za uro.

Celotni članek

PSoC4 – Cypress-ova poceni alternativa Arduinu (3)

2015_SE230_34

Zadnjič posodobljeno ( Četrtek, 30 April 2015 06:31 )  
JoomlaWatch 1.2.12 - Joomla Monitor and Live Stats by Matej Koval

PayPal naročnina

Svet elektronike zdaj z več vsebine (Arduino, ARM, Raspberry PI, PSoC, PIC, lestvično programiranje, radioamaterstvo...)

 

Če želite kupiti celoletno Naročnino na tiskano revijo Svet elektronike z vključenim 10% popustom po ceni samo 44,95 Evrov kliknite spodnji gumb (velja za pravne osebe!)

 

Če želite kupiti celoletno Naročnino na tiskano revijo Svet elektronike z vključenim 20% popustom po ceni samo 39,95 Evrov kliknite spodnji gumb (velja za fizične osebe!)

 

Če želite kupiti celoletno Spletno naročnino na revijo Svet elektronike po ceni samo 20,33 Evrov kliknite spodnji gumb.

 

Če ste obstoječi naročnik tiskane revije ali avtor članka v reviji Svet elektronike in želite kupiti Spletno naročnino na revijo Svet elektronike s 50% pustom po ceni samo 10,16 Evrov kliknite spodnji gumb.

 

V primerih spletne naročnine boste na Vaš email naslov v enem delovnem dnevu prejeli Uporabniško ime in Geslo za celoletno Spletno naročnino na revijo Svet elektronike


Naša spletna stran uporablja piškotke. Če želite izvedeti več o uporabi piškotkov si preberite našo Politiko o piškotkih.

Sprejmem piškotke s te strani

EU Cookie Directive Plugin Information