Sida 2 av 2

Postat: 7 oktober 2008, 13:43:31
av Pajander
Icecap: 640kHz pwm hastighet skall väll inte vara särskilt svårt från en mcu. Om jag förstår dig rätt så kan man välja vilken amplitud man skall ha på utsignalen när man räknar ut sin tabellen.

Därmed borde man kunna skriva ett program som genererar en tabell med den önskade amplituden och samplingsfrekvens och skriva in den i minnet på mcu´n. Sedan kan man stega igenom den med önskad utfrekvens?

Om man vill ändra amplitud blir man då tvungen att generera en ny tabell.

Postat: 7 oktober 2008, 13:55:24
av Icecap
Om du nöjer dig med en 8-bit PWM ska PWM-kretsen klockas med 640kHz * 256 (8 bit) = 163,84MHz... så något större problem är det väl knappast men det är liiiiite svårt att fixa med µC som tuggar iväg med 40MHz...

Och tabellen kan man göra så att man matar in (fast) tabell med fullt utslag. Sedan kopierar man över den tabell till RAM-minnet och under kopieringen "scaler" man den till önskat utslag, halverar man t.ex. alla värden (räknat från ett mittpunkt) blir amplituden den halva självklart, tyvärr förlorar man även 1 bits upplösning på detta sätt, ytterligare minskning ger självklart minskade antal bitar.

Postat: 7 oktober 2008, 14:02:01
av Pajander
Vad jag skall ha ut i andra änden är en sinus med frekvens variabel mellan 10-250 Hz. och då ska man väll inte behöva 163,84 MHz. 640kHz fick jag från din tidigare uträkning

Postat: 7 oktober 2008, 14:08:24
av Icecap
Ah... sov lite där så ja, det bliv lite kaka på kaka.

640kHz som PWM-frekvens räcker, och uppspelningshastigheten ska då varieras mellan 2560Hz och 64kHz.

Postat: 7 oktober 2008, 14:10:31
av Pajander
Verkar görbart iaf, ska ta o forska vidare lite i det och göra en liten labbuppkoppling.

Tack för all hjälp.

Postat: 7 oktober 2008, 14:10:47
av sodjan
> en sinus med frekvens variabel mellan 10-250 Hz.

I hur många steg ?
Eller jag kanske missade det...

Postat: 7 oktober 2008, 14:16:05
av Pajander
sodjan:256 steg duger bra.

Postat: 7 oktober 2008, 14:26:16
av sodjan
OK, alltså för att sammanfatta...

10-250 Hz uppdelat (linjärt?) i 256 frekvenssteg och med 100 amplitudnivåer.

Med "linjärt" menar jag om det ska vara ett absolut frekvenssteg (250-10/256
eller ca 0.94 Hz/Steg) eller ett procentuellt lika stort steg. Ett procentuellt steg
ger samma rellativa steglängd över hela frekvensskalan. Ett linjärt steg ger
nästan 10% steglängt i början (10 -> 11 Hz) men bara 0,4 % steg i slutet
(249 -> 250 Hz).

Samma fråga finns ju även kring amplitudstyrningen...

Ett linjärt steg är sannolikt lite enklare att implementera i kod.

Postat: 7 oktober 2008, 14:36:44
av Pajander
det går bra linjärt, behöver inte kunna ställa in exakta frekvenser. När det gäller amplituden så räcker det med att den kan varieras mellan 100% och 75% av max, dvs behöver inte kunna gå ner till 0

Postat: 7 oktober 2008, 15:35:15
av docksider
Att bygga en DA omvandlare med ett gäng motstånd och en hel port istället för bara en pinne är ju inte speciellt svårt och vips så har man något som är drygt åtta gånger så snabbt. Men det är ju bara ett alternativ om du har en hel port över så klart.