Hur lagra data i seriellt minne?
Hur lagra data i seriellt minne?
Jag har ett litet mini-projekt på gång (en "Thermal Detonator" från Star Wars världen) och funderar på att eventuellt lägga till en ljudeffekt i form av ett samplat ljud.
Tänkte stoppa i en atiny84 för att blinka lite LEDs och kanske också då spela upp lite ljud, men då behövs mer minne. Tänker mig något i stil med Elfa 110-41-058 ett 256k 8bit SPI eeprom.
Då till själva frågan, Jag har ljudeffekten i MP3 format, den borde jag kunna omvandla och spara ner i rådata. Men hur i hela friden får jag sen ner det i det seriella minnet för "permanent" lagring?
Tänkte stoppa i en atiny84 för att blinka lite LEDs och kanske också då spela upp lite ljud, men då behövs mer minne. Tänker mig något i stil med Elfa 110-41-058 ett 256k 8bit SPI eeprom.
Då till själva frågan, Jag har ljudeffekten i MP3 format, den borde jag kunna omvandla och spara ner i rådata. Men hur i hela friden får jag sen ner det i det seriella minnet för "permanent" lagring?
Re: Hur lagra data i seriellt minne?
Du får göra en serieportsrutin, som tar data från serieporten och lagrar det i minnet.
Du laddar då upp mp3-filen med ett terminalprogram.
Dock behöver du väl nånting som kan spela upp MP3-filen.
Du laddar då upp mp3-filen med ett terminalprogram.
Dock behöver du väl nånting som kan spela upp MP3-filen.
Re: Hur lagra data i seriellt minne?
Ja det är så illa alltså. Kanske får hoppa det till detta projekt.
MP3 hade jag iofs tänkt att konvertera till råa samplingar ala vaw filer så de bara är att skjuta ut på en analog utgång. (hm inser nu att attiny84 kanske inte har någont Analog ut..)
MP3 hade jag iofs tänkt att konvertera till råa samplingar ala vaw filer så de bara är att skjuta ut på en analog utgång. (hm inser nu att attiny84 kanske inte har någont Analog ut..)
Re: Hur lagra data i seriellt minne?
Du kan programmera minnet med en annan processor/dator och sen flytta den till attinyn.
Re: Hur lagra data i seriellt minne?
Litet liknande som kan ge litet idéer.
http://avrpcm.blogspot.fi/2010/11/playi ... y-avr.html
Externt minne krävs även för processorer större än Tiny, om man vill ha litet längre ljudsnuttar. Att skriva minnet med din t84 borde teoretiskt gå, men då får du först hitta kod för att ta emot seriedata ("bit bang" eftersom kretsen ser ut att sakna HW UART) från PCn, så förslaget i föregående inlägg är antagligen lättare.
http://avrpcm.blogspot.fi/2010/11/playi ... y-avr.html
Externt minne krävs även för processorer större än Tiny, om man vill ha litet längre ljudsnuttar. Att skriva minnet med din t84 borde teoretiskt gå, men då får du först hitta kod för att ta emot seriedata ("bit bang" eftersom kretsen ser ut att sakna HW UART) från PCn, så förslaget i föregående inlägg är antagligen lättare.
Re: Hur lagra data i seriellt minne?
Attiny84 har två dedicerade pwm-utgångar. Klarar max 31kHz/8-bit vid 8MHz vilket bör räcka för hygglig ljudkvalitet.
Vill man hellre köra på digtala utgången med seriellt bit-flöde kan man sampla om 8-bit till 1-bit innan man sparar det i minnet.
Sedan är det bara att knuffa ut 1 och 0 i jämn takt på valfri digital pinne. Lägg ett RC-filter på utgången om du vill återskapa analoga signalen.
Det är iofs inte nödvändigt om bittakten är tillräckligt hög då högtalaren i sej är lågpass-filter. Blir dessutom batteri-effektivt jämfört med analogt förstärkeri.
Effektljud kan ha väldigt låg bit-rate utan att förlora så mycket, tal och musik, så bör bitraten upp rätt högt, men det är en avvägningsfråga då hög bitrate kostar mer minne och processorkraft.
Vill man hellre köra på digtala utgången med seriellt bit-flöde kan man sampla om 8-bit till 1-bit innan man sparar det i minnet.
Sedan är det bara att knuffa ut 1 och 0 i jämn takt på valfri digital pinne. Lägg ett RC-filter på utgången om du vill återskapa analoga signalen.
Det är iofs inte nödvändigt om bittakten är tillräckligt hög då högtalaren i sej är lågpass-filter. Blir dessutom batteri-effektivt jämfört med analogt förstärkeri.
Effektljud kan ha väldigt låg bit-rate utan att förlora så mycket, tal och musik, så bör bitraten upp rätt högt, men det är en avvägningsfråga då hög bitrate kostar mer minne och processorkraft.
Re: Hur lagra data i seriellt minne?
Snubblade över den här lilla programmeraren för seriella EEPROM och FLASH-minnen (EBAY-länk) för 30:-
Tänkte om du nu inte orkar, vill eller kan skriva kod för att ladda ner och programmera minnet.
Jag har ingen erfarenhet av produkten och vet inte vilken mjukvara man behöver men Google poppar upp med fleratalet Youtube-videor och annat så det borde gå att reda ut.
Tänkte om du nu inte orkar, vill eller kan skriva kod för att ladda ner och programmera minnet.
Jag har ingen erfarenhet av produkten och vet inte vilken mjukvara man behöver men Google poppar upp med fleratalet Youtube-videor och annat så det borde gå att reda ut.
Re: Hur lagra data i seriellt minne?
Knepigt, det tål också att funderas på. Låter som en kul teknik i vilket fall.E Kafeman skrev: Vill man hellre köra på digtala utgången med seriellt bit-flöde kan man sampla om 8-bit till 1-bit innan man sparar det i minnet.
Sedan är det bara att knuffa ut 1 och 0 i jämn takt på valfri digital pinne. Lägg ett RC-filter på utgången om du vill återskapa analoga signalen.
@ H.O ser smidig ut. Något att kika närmare på även om jag kommer hoppa ljudeffekterna till detta projekt pga tidsbrist.
Re: Hur lagra data i seriellt minne?
1-bits sampling, det var så man alltid gjorde på 80x286-tiden för att skapa tal och musik då den interna högtalare var kopplad till porten på en vanlig TTL-krets och ljudkort fanns inte.
Alternativet var att mata 8-bits ljud till skrivarporten där digital data analogiserades mha motståndsstegar, men det kunde man inte förutsätta fanns.
Alternativet var att mata 8-bits ljud till skrivarporten där digital data analogiserades mha motståndsstegar, men det kunde man inte förutsätta fanns.