PWM-matte

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Mr Andersson
Inlägg: 1400
Blev medlem: 29 januari 2011, 21:06:30
Ort: Lapplandet

PWM-matte

Inlägg av Mr Andersson »

Jag håller på att experimentera lite grann med PWM och skulle behöva lite hjälp att verifiera att jag har förstått allt rätt.
Jag har en FPGA klockad i 100MHz, som genererar en PWM-signal på 250KHz.
Då blir väl varje PWM-cykel 400 FPGA-cykler? (100e6 / 250e3)
Och upplösningen blir ungefär 8.64 bitar? (LN(400) / LN(2))

Och för att kunna höja upplösningen till 10 bitar (vilket jag egentligen inte behöver, men det är intressant att förstå hur man gör) så måste jag
* Höja FPGA-klockan till >= 256MHz (250e3 * 1024) eller
* Sänka PWM-klockan till <= 97.7KHz (100e6 / 1024)

Stämmer detta? Formlerna verkar rimliga i mitt huvud men det händer rätt ofta att jag missar något enkelt misstag :)
Användarvisningsbild
hanzibal
EF Sponsor
Inlägg: 2499
Blev medlem: 7 september 2010, 20:54:58
Ort: Malmö/Lund

Re: PWM-matte

Inlägg av hanzibal »

Det verkar stämma bra
Användarvisningsbild
Andax
Inlägg: 4373
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Re: PWM-matte

Inlägg av Andax »

Ja det ser korrekt ut. Det finns lite speciella tekniker man kan använda för att skapa högre upplösning i snitt, mha sk fractional counters. Men det är överkurs.
qx5
Inlägg: 1678
Blev medlem: 14 augusti 2014, 04:23:04

Re: PWM-matte

Inlägg av qx5 »

Hur fungerar "fractional counters" ?
Användarvisningsbild
hanzibal
EF Sponsor
Inlägg: 2499
Blev medlem: 7 september 2010, 20:54:58
Ort: Malmö/Lund

Re: PWM-matte

Inlägg av hanzibal »

Gissningsvis en klock-dividerare som kan dividera med bråktal men det skall bli intressant att se hur fpga-klockan kan sönderdelas ytterligare :-) PLL?

P.s. Hurra för 2Log. D.s.
Användarvisningsbild
Andax
Inlägg: 4373
Blev medlem: 4 juli 2005, 23:27:38
Ort: Jönköping

Re: PWM-matte

Inlägg av Andax »

För en vanlig räknare så ökar man den oftast med 1 varje cykel.

Den vanligaste implementationen av fractional counter är att man har en räknare med x fler bitar och sedan ökar med ett större tal än 1, oftast samma storleksordning som x bitar långt. Skillnaden är att när man får overflow på räknaren så börjar man inte om från 0 utan på restvärdet.
I praktiken så får man då x bitar till, dock bara om man ser på medelvärdet.

Hoppas du förstår, men är lite trött så här på fredagkvällen...
Användarvisningsbild
hanzibal
EF Sponsor
Inlägg: 2499
Blev medlem: 7 september 2010, 20:54:58
Ort: Malmö/Lund

Re: PWM-matte

Inlägg av hanzibal »

Jag fattar inte men är å andra sidan också trött :-) Hur lyckas man utföra operationer mellan fpga-cyklerna?
superx
Inlägg: 1127
Blev medlem: 19 juni 2012, 23:28:16
Ort: Linköping

Re: PWM-matte

Inlägg av superx »

Det gör man inte. Men om man slog om lite sent en gång kompenseras det med att man slår om lite för tidigt nästa.
Användarvisningsbild
hanzibal
EF Sponsor
Inlägg: 2499
Blev medlem: 7 september 2010, 20:54:58
Ort: Malmö/Lund

Re: PWM-matte

Inlägg av hanzibal »

Aha, så man "chansar" på sista biten och så blir det bättre i snitt?
superx
Inlägg: 1127
Blev medlem: 19 juni 2012, 23:28:16
Ort: Linköping

Re: PWM-matte

Inlägg av superx »

Nja, inte chansar direkt. Mer att man bokför sina avrundningsfel och kompenserar för det senare. Lite som när man handlar många saker för 9,95kr Till slut spelar den där 5-öringen roll, även om varje post i sig blir 10kr efter avrundning.
Användarvisningsbild
hanzibal
EF Sponsor
Inlägg: 2499
Blev medlem: 7 september 2010, 20:54:58
Ort: Malmö/Lund

Re: PWM-matte

Inlägg av hanzibal »

Jo, men hur implementerar man denna logik i brist på verkliga cykler?

Det som beskrivs låter mer som förfarandet vid progressiv sampling, dvs i helt andra riktningen.

EDIT: Jag menar; om man nu kör kretsen på 100MHz och lägger ut PWM på 0,25MHz så har man väl varken mer eller mindre än 400 kretscykler på sig per PWM-period - eller tänker jag fel nu?
swp
Inlägg: 63
Blev medlem: 31 december 2010, 00:54:56

Re: PWM-matte

Inlägg av swp »

Antar att handlar om det som även brukar kallas "dithering" (vet inte vad det heter på svenska). Enklaste fallet är väl om man vill öka upplösningen med en bit. Om man har 400 klockcykler och vill lägga ut 367.5 så lägger man ut 367 en period och sedan 368 nästa period och sedan alternerar mellan dessa, då blir ju medel 367.5.
Användarvisningsbild
hanzibal
EF Sponsor
Inlägg: 2499
Blev medlem: 7 september 2010, 20:54:58
Ort: Malmö/Lund

Re: PWM-matte

Inlägg av hanzibal »

Ok, då fattar jag!

EDIT: Men max en halv bit extra va?
Användarvisningsbild
sodjan
EF Sponsor
Inlägg: 43205
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping
Kontakt:

Re: PWM-matte

Inlägg av sodjan »

Det går att driva hur långt som helst och till vilken upplösning som helst.

Med 367 1 period och 368 99 perioder: 367.01
Med 367 2 perioder och 368 98 perioder: 367.02
...
...
Med 367 98 perioder och 368 2 perioder: 367.98
Med 367 99 perioder och 368 1 period: 367.99

O.s.v...

Eller kör med 16, 32, 64 sekvenser så går det jämt upp
med antal bitar direkt...
Nerre
Inlägg: 26795
Blev medlem: 19 maj 2008, 07:51:04
Ort: Upplands väsby

Re: PWM-matte

Inlägg av Nerre »

PWM handlar ju normalt om MEDELVÄRDE över flera pulser.

Med enbart "hela" pulser så kan vi som medelvärde över tre pulser bara få t.ex.
(5+5+5)/3=5
(4+4+4)/3=4

Men om vi varierar pulsbredden mellan pulserna kan vi få andra medelvärden över tre pulser. Ex.
(5+5+5)/3=5
(5+4+5)/3=4,67
(5+4+4)/3=4,33
(4+4+4)/3=4
Skriv svar