Letar processor med 8 individuella hårdvaru PWM

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
ChristianS
Inlägg: 229
Blev medlem: 7 januari 2009, 11:13:58
Ort: Limhamn

Letar processor med 8 individuella hårdvaru PWM

Inlägg av ChristianS »

Har ett projekt på gång där jag vill kunna styra 8 stk pwm utgångar ~1kHz är lagom, helst vill jag att det finns HW för det i processorn men är villig att kompromissa.
Kommer att behöva styra dem snabbt så SW PWM kommer inte på tal.
Har som hastigast kollat lite på externa PWM kretsar men hittar bara massa konstiga grejor så har ni tips om bra externa PWM generatorer så är jag tacksam för det också.


/ /Christian
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46998
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Letar prcessor med 8 individuella hårdvaru PWM

Inlägg av TomasL »

PIC32 har 5 st HW, eftersom den gör upp till 120 DMIPS, så tror jag inte en SW-PWM blir speciellt långsam.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Letar prcessor med 8 individuella hårdvaru PWM

Inlägg av sodjan »

> Kommer att behöva styra dem snabbt så SW PWM kommer inte på tal.

Definiera "snabbt". En spansk skogssnigel är "snabb" i jämförelse med
en svensk trädgårdssnigel... :-)

Eftersom grundfrekvens ska vara 1 KHz, så har du ju alltid 1 ms på dig
för att justera periodtiden (det var väl det du menade med att "styra" ?).
På 1 ms hinner man göra ganska mycket på vilken processor som helst.

Problemet är snarare vilken upplösningen du vill ha, d.v.s hur många steg
(olika lägen) ska PWM signalen ha. Det har större påverkan på om en SW PWM
är möjlig eller inte. Det kan även bli lite mer jitter och andra störningar
i en SW PWM, men det vet vi inte hur känslig den aktuella applikationen
är för det.
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Letar prcessor med 8 individuella hårdvaru PWM

Inlägg av bearing »

> ~1kHz är lagom

1 kHz är ju jättelångsamt, det kan ju inte vara några problem att ordna PWM på varje I/O i den hastigheten. Beror iofs på vilken upplösning som krävs.

Enligt Atmels parametriska sök finns flera med ATmega som har >= 8 "Output compare channels"
http://www.atmel.com/dyn/products/param ... ily_id=760

Går säkert att hitta hos Microchip ifall du använder deras sökverktyg.

Freescale har också processorer med >= 8 PWM.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Letar prcessor med 8 individuella hårdvaru PWM

Inlägg av sodjan »

Men "channels" betyder inte alltid *oberoende* kanaler, ofta är det
komplementära eller quadratur utgångar. Och om man tittar på
något exempel på de AVR som anger många PWM channels, så
är de ofta implementerade på olika typer av timers (8/16 bit t.ex)
så de är inte likvärdiga till funktionen. Jag tror att det är svårt att
hitta en standardprocessor som AVR eller PIC med 8 oberoende
och likvärdiga PWM generatorer.
Användarvisningsbild
Icecap
Inlägg: 26654
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Letar prcessor med 8 individuella hårdvaru PWM

Inlägg av Icecap »

Jag hade tagit en Renesas M16C-65 och låtit den tugga på 40MHz. Den har ett antal timers som kan ställas till PWM men om det finns 8 utgångar är jag osäker på.

Men låt säga att det är 8 bits upplösning på PWM-utgångarna, med 1kHz frekvens blir varje tidslucka 256kHz, vid 40MHz blir det 156 instruktioner per puls. Det hinns lätt med!

Man gör en enkel grej med en buffer på 256 bytes, dessa "spelas upp" på en port. En rutin som tar hand om att ändra antal bits som är på hhv. av i varje kanal ska fixas men det är knappast ett större problem. En timer-interrupt som kommer med en frekvens på 256kHz hämtar alltså en byte från minnet, indexerat med en byte. Den hämtade byte smällas ut på en port, index-räknaren räknas upp med 1, klart.

Samma teknik kan såklart användas på andra processortyper som kan jobba snabbt nog. Med lägre upplösning kan man köra med långsammare processor.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Letar prcessor med 8 individuella hårdvaru PWM

Inlägg av sodjan »

Samma metod kan även användas m.h.a av ett externt 8-bit parr-SRAM
minne (gärna dubbelportat så att man kan skriva och läsa oberoende).
Det behövs också en 8-bit (eller mer om man vill det) räknare som
adresserar minnet och "kör" PWM generatorn.

Nackdelen med denna lösning (oavsett om det är internt i Icecap
beskrev det eller med ett extern minne) är att det inte bara är att
justera ett värde i ett register för att ändra pulsvidden. Samma bit
i (i värsta fall) 256 minnespositioner kanske ska ändras, och man måste
ha logik för att räkna om en viss pulsvidd till motsvarande adress area.
Användarvisningsbild
LHelge
Inlägg: 1772
Blev medlem: 2 september 2007, 18:25:31
Ort: Östergötland
Kontakt:

Re: Letar prcessor med 8 individuella hårdvaru PWM

Inlägg av LHelge »

Någon STM32 kanske, de flesta har 3-4 timers som klarar av 4 pwm signaler vardera. Timer 1 brukar även klara av att skicka ut komplementära signaler.
Användarvisningsbild
ChristianS
Inlägg: 229
Blev medlem: 7 januari 2009, 11:13:58
Ort: Limhamn

Re: Letar processor med 8 individuella hårdvaru PWM

Inlägg av ChristianS »

Kollade på MSP430F vissa kan ha upp till 7 stk, varför inte 8 när man ändå håller på. :doh:
Kollar lite nu på AT91SAM7S128 visserligen bara 4 PWM men är nog kapabel till att köra det mesta med SW.

Att generera 8 stk PWM i SW har jag koll på men sedan skall de pulsas med 40 Hz så man kan säga PWM på PWM. Blir lite rörigt i min hjärna men man får nog göra ett försök.

Annars har hittat en krets som kanske kan vara en lösning för mig http://focus.ti.com/lit/ds/symlink/tlc5940.pdf
snigelen
Inlägg: 815
Blev medlem: 8 maj 2009, 11:02:14
Ort: Lund

Re: Letar processor med 8 individuella hårdvaru PWM

Inlägg av snigelen »

Jo vilken stm32 som helst klarar det. (Alla jag tittat på i alla fall).

Eller ATMega640/1280/2560
4 16 bits timers med tre PWM-kanaler på varje (inga komplementära dock)
2 8 bits timers med två kanaler var.
Men en 16 bits-kanal och en 8 bits är på samma pinne.

Räcker det med 8 bits så går det väl med ATMega1281/2561.
Mega128 har 8 PWM, men en 8 och en 16 överlappar så bara 7 samtidigt.
Användarvisningsbild
ChristianS
Inlägg: 229
Blev medlem: 7 januari 2009, 11:13:58
Ort: Limhamn

Re: Letar processor med 8 individuella hårdvaru PWM

Inlägg av ChristianS »

Såja nu har jag hittat dsPIC'arna har 8 stk output compare som man kan använda bla en som jag använt tidigare i en motorstyrning och motor PWM enheten har fyra individuella jag har inte noterat output compare på denna förrän nu. Dessutom har jag nog ett labbkort kvar.

dsPIC33FJ256MC710A blir det.

Tack för tipsen!
Skriv svar