Hur lagra data i seriellt minne?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Gimbal
Inlägg: 7877
Blev medlem: 20 april 2005, 15:43:53

Hur lagra data i seriellt minne?

Inlägg av Gimbal »

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? :humm:
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 45168
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Hur lagra data i seriellt minne?

Inlägg av TomasL »

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.
Gimbal
Inlägg: 7877
Blev medlem: 20 april 2005, 15:43:53

Re: Hur lagra data i seriellt minne?

Inlägg av Gimbal »

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..)
Användarvisningsbild
hawkan
Inlägg: 2585
Blev medlem: 14 augusti 2011, 10:27:40

Re: Hur lagra data i seriellt minne?

Inlägg av hawkan »

Du kan programmera minnet med en annan processor/dator och sen flytta den till attinyn.
Användarvisningsbild
rvl
Inlägg: 5720
Blev medlem: 5 april 2016, 14:58:53
Ort: Helsingfors

Re: Hur lagra data i seriellt minne?

Inlägg av rvl »

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.
Gimbal
Inlägg: 7877
Blev medlem: 20 april 2005, 15:43:53

Re: Hur lagra data i seriellt minne?

Inlägg av Gimbal »

Spelar han upp ljudet med PWM :humm:
Den tål att funderas på.
E Kafeman
Inlägg: 3238
Blev medlem: 29 april 2012, 18:06:22

Re: Hur lagra data i seriellt minne?

Inlägg av E Kafeman »

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.
H.O
Inlägg: 5683
Blev medlem: 19 mars 2007, 10:11:27
Ort: Ronneby

Re: Hur lagra data i seriellt minne?

Inlägg av H.O »

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.
Gimbal
Inlägg: 7877
Blev medlem: 20 april 2005, 15:43:53

Re: Hur lagra data i seriellt minne?

Inlägg av Gimbal »

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.
Knepigt, det tål också att funderas på. Låter som en kul teknik i vilket fall.

@ H.O ser smidig ut. Något att kika närmare på även om jag kommer hoppa ljudeffekterna till detta projekt pga tidsbrist.
E Kafeman
Inlägg: 3238
Blev medlem: 29 april 2012, 18:06:22

Re: Hur lagra data i seriellt minne?

Inlägg av E Kafeman »

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.
Skriv svar