Software PWM sukupolvi?

E

emax0198

Guest
Miten ohjelmisto perustuu sukupolven 8 PWM-lähdöt voidaan toteuttaa?

Itse haluan toteuttaa 8 PWM lähdöt ajaa 8 servos kuten laitteisto PWM generaattori.Vain arvot 8 16-bittiset rekisterit ja se päivittää pulssin leveys vastaavaan PWM-lähtö.Onko standardi tekniikkaa tehdä tämän?

 
Hi emax0198,
PWM voidaan tehdä ohjelmisto, joka käyttää ajastin (s).Mutta hakemuksesi on monia PWM kanavat on luotu.Se
on lähes mahdotonta, koska yleisenä tavoitteena MCUs on yleensä useita laskurit.Mielestäni teillä oli parempi vaihtoehto tiettyyn tarkoitukseen MCU, joka tarjoaa monia PWM kanavia siru.Ne ovat usein moottorinkäynnistimet valvonta suuntaisrakeisten MCUs.
Terveisin.

 
Voitteko mainita mitään mikro, että voi olla tätä ominaisuutta!

 
JOTKIN 51 on PCA moduuli tehdä tämän tyyppisen asian particuliar on SILAB niistä.
Lisäksi olen nähnyt sen Philips arm LPC2xx
Mutta tämä voidaan tehdä myös pehmeissä ..Just luoda taulukon arvoja ohjelmoida ajastimen ja käyttää keskeyttää.
Kaikissa ajastin keskeyttää tuotannon tasoa, joka tarvitaan annetun PWM linjat ja reprogram TIMER kanssa uusi arvo pöydälle ..Lopussa olevan taulukon alkaa taas!

 
Hei

voit myös harkita PIC18F-sarja, osa on 8 kanavaa PWM.

Terveisin

 
eltonjohn

Olen jo tehnyt tämän katkaisevat mutta ongelmana on, että voit tallentaa ajoitus arvot, joista nämä 8 PWM-lähdöt on tuotettava lisää katkaisevat tarvitse käyttää ja että paljon keskeytyksiä on vähäinen Jitter kussakin servo ...joten asia ei ole ratkaisu!

metalli

PIC18F on vain 4 resgisters 8 täydentää tuotokset, joten se voi vain ajaa 4 servos tässä tapauksessa.

 
emax0198 wrote:

Voitteko mainita mitään mikro, että voi olla tätä ominaisuutta!
 
hi
Olen jabarok

jos sinulla cpld
on erittäin helppo tehdä se
i käytetään cpld tehty PWM valvonta 32 kanavan

 
Minulla on ajatus PWM sukupolven kanssa 6 vertailla yksikköhinnalla drviving kaksi PWM tuotos nastoja ei vasta mikro mutta DSP alkaen ti nimenomaan tarkoitettu moottori valvoja applications.the jalostaja on TMS320F28xx.my soveltamista ohjelma on keskeyttää perustuu.
Tämän DSP on kaikkiin niihin resorces tehdä thate.g.timers jne.
voit päättää taajuus (PLL säädetyt että), tullin syklin haluat voidaan suoraan lastata sen vertaa rekistereistä.Vierailun www.ti.com
lisätietoja, käyttöturvallisuustiedotteet.Lisätty 2 minuutin kuluttua:En ole työskennellyt mikro mutta intels i960-upotettuun prosessori on käyttänyt kollegojani servocontroller sovelluksia.

 
The article "Tasapainotuskoneet D / A Conversion yhdessä Pin", Circuit Cellar # 140, opettaa, miten voit luoda 8-bit-päätöslauselma PWM-lähdöt (tai 8 delta-sigma-lähdöt), jossa mikro, käyttämällä ajastin keskeyttää.

Regards, svicent

 
Jos PWM taajuus on pieni, voit tehdä sen keskeyttää.(Esimerkiksi, jos halusi PWM päätöslauselman 8 toimenpiteet, joiden PIC pyörittää 20 MHz nopeimmin PWM voit tehdä, on 2,441 kHz).Kahdeksan ei paljon vaikeampaa kuin yksi.Käytä vastakanne jokaisen panosta ja on keskeyttää rutiini että teloitetaan aina ajastimen ylivuotojen.Säädä jokainen tuotoksen vastaavasti (oltava varovaisia sinulle ajoitus ja sinun pitää lopettaa keskeyttää täytäntöönpanon ennen seuraavan keskeyttää).

Jos PWM taajuus on suurempi, voit käyttää omaa ajoitus loop (ja mikro on hyvä hyvin vähän muita asioita).Jos käytössä on omistettu ajoitus silmukka, vaan osana silmukkaselaimessa haluat tehdä muutamia muita asioita, sinulla on oltava tarkkana siitä, ajoitus, jos et halua Jitter.

Mielestäni Circuit Cellar kertoo sinulle sama asia kuin svicent sanoo.He todennäköisesti selittää sen elloquently samoin.

 
emax0198 wrote:

eltonjohnOlen jo tehnyt tämän katkaisevat mutta ongelmana on, että voit tallentaa ajoitus arvot, joista nämä 8 PWM-lähdöt on tuotettava lisää katkaisevat tarvitse käyttää ja että paljon keskeytyksiä on vähäinen Jitter kussakin servo ...
joten asia ei ole ratkaisu
 
Kiitos pojat, kaikki, että te sanoitte, on oikea.

Mutta minun on se, että PWM olisi 10 bit.Ja itse asiassa on kaksi asia rekisterinpitäjä on tehdä; fisrt hakea PPM tiiming kunkin kanavan ja sitten tuottaa 10 bittinen PWM.

Tiedän, että se ei ole mahdollista ilman keskeytyksiä.Yksi keskeyttää tarvitaan kaappausajasta ajoitus välillä palkokasveille varten PPM ja toinen keskeyttää tarvitaan tuottamaan PWM-lähtö (ajastin overflow keskeyttää).Tässä tilanteessa on vaikea synkronoida keskeyttää, mikäli ne ovat käytössä vapaat ja suorittimen on tehtävä kaksi työpaikkaa.

 
Eräs mahdollinen ratkaisu on käyttää integroitu piiri että ymmärtää vain tätä toimintoa ja että sinulla on vain voi hallita ja mikro.

Laite esimerkki on DS1050.Koska se on hallinnassa bussi I2C voit järjestää enintään 8 hakemukseen.On olemassa monia laitteita tämän tyylin että varmasti sopeutua paremmin teidän välttämättömyystarvikkeita.<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Very Happy" border="0" />
 
Olen tehnyt 8-bittinen 8-Chanel servo-ohjain on 89C2051 UC käynnissä @ 24MHz.
En käytä sitä minun robotin käsivarteen.Sain selville, että 8-bittinen PWM resoluutio on jopa liian hyvä standardi R / C harrastekäyttöön servos.I vaeltaa mitä servos kysynnän 10 bitin resoluutio.
With 256 PWM vaiheet täysi halvaus lähes kaikki servos edellyttää vähintään kaksi toimenpiteet mielessä mitään muutosta lainkaan.
Oma servo-ohjain ei monia muita asioita, kuten sarjaportin komento ja tiedonsiirtokäytännöt kanssa Ring puskuri käsittely ja Xon / Xoff protokolla, sisäinen tietojenkäsittely, ja niin edelleen.Kukin näistä kahdeksan servo kanavaa voi olla suora tai käänteinen orja toisen kanavan, voivat olla master-kanava voidaan asettaa vakio "1" tai "0", ja se on riippumaton ballistiset valvontaa.On siis olemassa paljon tehtävää lisäksi valvomiseksi kahdeksan servos.
Yli kolme vuotta käyttää tätä laitetta En ole huomannut suorituskyvyn ongelmia.
Olin liian laiska kirjoittamaan ohjelmiston kokoamiseen, joten käytetään C kaikki servo-ohjain koodausta.Jos minulla olisi käytetty kokoonpano kielellä sen sijaan, että UC olisi kuolivat ikävystyminen.
Joten älä kerro, että tämä pieni UC ei pysty hoitamaan tehtäväänsä.
Myin useita rekisterinpitäjiä tämän piirin ja kuullut mitään yhtä valituksen noin suorituskykyä tai tulostusyksiköt melua tai epävakautta.
IMHO Mitä saat laitteen riippuu ohjelmasuunnittelua tyylillä ja taitoja tietenkin.

Huomioon, yego

 
Minulla on UC ADuC 842 ja Tarvitsen koodi esimerkiksi tuottaneella PWM.Haluan tuottaa myös PWM signaali kaksi sine aallot amplitudimoduloitua.

 
Hei, pitkään ei postitse minulle ...

Katso minun säikeen useita PWM sukupolven varten PIC ...

http://www.edaboard.com/viewtopic.php?t=133711

Kyseessä on pieni algoritmi tuottavan PWM käyttäen interupts ja käyttää vähän resursseja.Mutta se kaikki riippuu app., PWM ajan max / min merkki / tila suhde,
resoluutio jne..Oma malli on vain tarkoitettu 3 PWM käynnissä jopa 2Khz, jossa 8-bitin resoluutio, ja vain yhtä ajastin (ja noin 5% CPU kertaa sekunnissa).

Mikrosiru on tekninen ohjelmisto PWM useita algoritmeja ovat osoittaneet, riippuen vaatimukset (peroid, merkki / tilaa, JANKUTUSTA Yoda).
http://microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en011070microchips foorumi ...
http://forum.microchip.com/tm.asp?m=124387

Joten minun neuvoni (luultavasti ei kannata mitään, mutta sen ei loukkaantunut).
Sikäli kuin tiedän, tarvitset 8 PWM: n, kutakin 10 bittiä res.

1.Nyt on joitakin IC:
n, joka voi tehdä tämän, nimenomaan tätä tarkoitusta varten.He voivat vain on tarkoitus ajaa LED: n, mutta kaikki tämä tarkoittaa sitä, että sinun on MOSFET kuljettajien kunkin servo ei biggie.

2.Olen melko varma, että on todellakin joissakin mikro, jotka ovat 8 laitteisto PWM:
n ja 10 bittinen res.Valitettavasti nämä yleensä oltava jatkuvasti "yläpäässä", 16-bittiset laitteet, melko kallis (paitsi ehkä Philips, ja dsPIC siruja).Yleensä, kuten mennä eri laitteissa, he alkavat lisäämällä yhä enemmän asioita (kuten PWM: n, lisää UART's, I2C jne..) Ja hinta nousee.Riippuu rajoituksia ".Voitko kirjoittaa ohjelmia kaikki mikro?vai "uskolliset" yhdelle perheelle?Mitä mikro
n ovat käytettävissä?Ohjelmointi, hinta kaikkien on otettava huomioon.

3.On hankala vaihtoehto.Kirjoita oma näppärä koodi halpa, easy-to-get mikro.
Nyt,
sikäli kuin ymmärrän, et ole mainittu, mitä muuta tämä mikro tekee lisäksi tuottavan PWM's.Niin, miksi ei vain varata yksi halpa mikro tähän tarkoitukseen?Se voi olla käyttöliittymät kanssa SPI/I2C tai jopa rinnan käyttöliittymä, joka ei estä teidän PWM liikaa.Siis sanoa, sinulla on PIC16F628A, täyttä vauhtia, se kulkee klo 20MHz (28Mhz joidenkin mahdollista glitches).Nyt ainoa asia, se on tuottaa PWMs, kanssa, että nopeutta Odotan, voit tehdä sen patalupaus, tilaa varaosia.Unfortuneately, haluat> 10 bittiä - mutkikkaampi.(voit aina dsPIC, jotka ovat 16-bittisiä laitteita, joten kukin rekisteri on 16 bittiä,
mikä tarkoittaa, yhden rekisterin kunkin PWM tekee elämän paljon helpommaksi).Theres yhteisen algoritmi käyttää rekisteriä kunkin PWM ja "counter"-rekisteriin.Kaikki sinun on annettava keskeyttämään, vähenemä kussakin näistä rekistereistä, kun rekisteri saavuttaa 0, sammutat sen annetaan nastainen.Kun laskuri (määrittelee oman PWM aikana) nollaan, voit nollata kaikki nastat, ja reload on PWM-arvot.Olen tehnyt niin, ja ilman keskeytystä, parasta, mitä se on, lisäämällä PWM kanavaa ei oikeastaan vaikuttaa koodin koko, olet yksinkertaisesti rajoittaa käytettävissä olevat nastat olet.8 ei pitäisi olla ongelma.

Päätöslauselmassa kuitenkin tulee.on 8-bittinen mikro, sinun tarvitse kahta rekistereitä 10 bittinen res.Ja decrementing tulee tad vaikeampaa (vähenemä yhden rekisterin, kunnes se saavuttaa 0,
senjälkeen decrementing että LSbyte asti nolla.
Koska teet tämän (2 ^ resoluutio) ajanjaksoa kohti, joka kerta, kun "lisätä" linja koodin siihen, olet tehokkaasti lisäämällä (2 ^ päätöslauselman 1024 10-bittinen)) ohjeet ajanjaksoa kohti.Nyt, jos PWM on 2Khz, thats 2000 * 1024 = 2048000 extra ohjeet toteutetaan sekunnissa.

ok, hyvin olen ranting, sen mutkikas tihng tehdä, ja saat todennäköisesti parempi yksinkertaisesti käyttämällä enemmän rahaa pelimerkki, että se kaikki on sinulle.Mutta olen vakuuttunut siitä, että ovat helppoja ja tehokkaita tapoja tehdä asioita.

Onnea,

BuriedCode.

 
Kiitos rakas, mutta pyydän, ADuC842 yksi 8051 ydin-pohjainen ei PIC

 

Welcome to EDABoard.com

Sponsor

Back
Top