Ik heb wat dingen uitgeprobeerd met een Atmega32 en een gitaarsample (geen hele mods nog dus). Resultaat is deze gezellige warboel:
Plaatje op imageshack (popups!)
Het ding draait op 16MHz en een van de timers wordt in fast PWM mode gebruikt. Omdat de timer bij 256 overloopt betekent dit een D/A rate van 62,5kHz. Uiteindelijk zal dit waarschijnlijk verlaagd worden naar de helft om wat meer tijd te hebben voor het maken van de output maar met alleen een sample afspelen kon het wel.
De sample zit in het program memory en kan op elke gewenste frequentie worden afgespeeld. En dat klinkt zo:
guitar.mp3: opgenomen van de AVR
Ik heb ook de sample even bekeken toen ie opgenomen was, hij doet het wel aardig:
De orginele sample:

De output:

Omdat het geheel AC gekoppeld is verschuift de boel natuurlijk wat naar het midden. Er zit wel vervorming in, maar het klinkt al best aardig en de testopstelling is verre van ideaal. Toch misschien wel een echte D/A converter gebruiken in het definitieve ontwerp, nu zit je wel dat het updaten van de pulsbreedte voor het PWMen altijd wat tijd kost en dat kan problemen geven met kleine pulsen. Misschien dat daarom het volume ook wat hoger blijft, de PWM wordt nu wel geupdate op het overflow interrupt, niet op het moment dat de output verandert, wat voor kleinere pulsen beter zou zijn.
edit: Oja de hardware is dus vrij simpel. AVR met aan de timer compare output een low-pass filter (1k + 10nF en nog een 1k over de 10nF om het niveau op de helft te krijgen voor de opamp), daarachter een LM358 opamp als voltage follower en via een grote elco naar de output. Ik zie nu trouwens dat op het moment van de foto (en waarschijnlijk ook tijdens het meten) de 10nF er niet in zit. Het geluid verschilde vrij weinig met en zonder, waarschijnlijk haalt het hoge 62,5kHz signaal het zowieso niet door al die draden.
Plaatje op imageshack (popups!)
Het ding draait op 16MHz en een van de timers wordt in fast PWM mode gebruikt. Omdat de timer bij 256 overloopt betekent dit een D/A rate van 62,5kHz. Uiteindelijk zal dit waarschijnlijk verlaagd worden naar de helft om wat meer tijd te hebben voor het maken van de output maar met alleen een sample afspelen kon het wel.
De sample zit in het program memory en kan op elke gewenste frequentie worden afgespeeld. En dat klinkt zo:
guitar.mp3: opgenomen van de AVR
Ik heb ook de sample even bekeken toen ie opgenomen was, hij doet het wel aardig:
De orginele sample:

De output:

Omdat het geheel AC gekoppeld is verschuift de boel natuurlijk wat naar het midden. Er zit wel vervorming in, maar het klinkt al best aardig en de testopstelling is verre van ideaal. Toch misschien wel een echte D/A converter gebruiken in het definitieve ontwerp, nu zit je wel dat het updaten van de pulsbreedte voor het PWMen altijd wat tijd kost en dat kan problemen geven met kleine pulsen. Misschien dat daarom het volume ook wat hoger blijft, de PWM wordt nu wel geupdate op het overflow interrupt, niet op het moment dat de output verandert, wat voor kleinere pulsen beter zou zijn.
edit: Oja de hardware is dus vrij simpel. AVR met aan de timer compare output een low-pass filter (1k + 10nF en nog een 1k over de 10nF om het niveau op de helft te krijgen voor de opamp), daarachter een LM358 opamp als voltage follower en via een grote elco naar de output. Ik zie nu trouwens dat op het moment van de foto (en waarschijnlijk ook tijdens het meten) de 10nF er niet in zit. Het geluid verschilde vrij weinig met en zonder, waarschijnlijk haalt het hoge 62,5kHz signaal het zowieso niet door al die draden.
madwizard wijzigde dit bericht 04-02-2006 21:10 (15%)




