Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Prosty odtwarzacz dźwięku

05 Dec 2005 22:02 2723 20
  • Level 38  
    Potrzebuję zmontować prościutki odtwarzacz dźwięku 8-bit, 8 kHz, który zapamięta i odtworzy kilkanaście do kilkudziesięciu sekund nagrania.
    Jaki procesor i jaką pamięć najlepiej byłoby do tego użyć? Czy jakaś 24c... da radę obsłużyc taki transfer? Może jest jakiś tani i prosty procesor z wyjściem analogowym? A jeśli takiego nie będzie pod ręką to jako przetwornik C/A posłuży uA741 z wejściami sumującymi.
    Chodzi mi o jak najmniejsze rozmiary i koszt wykonania. Dźwięk z kompa przerzuci się przez UART'a przez specjalny programik.
  • Helpful post
    Level 26  
    a ja mam taki troche dziwny pomysł. możesz dać do procka jakis eeprom lub flasch z wyjściem równoległym. dwieki wgrać do niego z kompa poprze programator (jeśli oczywiście taki posiadasz). i teraz cała ide działania.
    procesor podawał by tylko adresy do pamięci a z wyjścia pamięci dał byś prosty przetwornik cyfrowo-analogowy zbudowany z drabinki rezystorowej.
    oczywiście układy ISD też by sie nadały ale tu mógł byś nagrywać dzwięki prosto z kompa a z ISD chba trzeba to zamieniać na analogowy sygnał (nagrywac prosto z głośników) i tu pojawią się dodatkowe problemy z synchronizacją i jakością oraz poziomem.
  • Level 38  
    Wisz co ten pomysł z pamięcią równoległą to chyba nawet niegłupi jest:) i dałoby sie programować przez rs232 używając uC. Jako procesor chyba powinien wystarczyć at89c2051... A jaką pamięć proponujesz? Pamięciami równoległymi jeszcze się nie bawiłem więc dlatego pytam.
  • Level 26  
    co do pamięci to ja bym zrobił na tym co mam w domu czyli poszukał bym jakiegoś BIOS od uszkodzonej płyty głównej tam były 4MB=512kb czyli przy 8kHz da to około 64s dźwięku. programować można z programatora równoległego (np. wilem bo taki mam) ale oczywiście można zrobić to na procku i przesyłać przez UART'a ale przesłanie 512kb danych do procka może chwile trwać i procek będzie musiał znać jak się zapisuje w pamięci flash. a to są problemy zaimplemętowaniem tego algorytmu. jest to oczywiście do wykonania ale trzeba szukać noty katalogowej itp a to zajmuje cenny jak dla mnie czas.

    co do procka to at89c2051 może mieć mało pinów bo w najgorszym przypadku potrzebujesz 22 bitów na adres i 8 na dane oraz 2 do sterowania pamięcią i 2 do komunikacji z kompem
    oczywiście można zastosować jakieś układy logiczne do adresowania ale nie można przesadzać bo układ musi w miarę szybko adresować komórki pamięci (8khz).

    Powodzenia i pozdrawiam (prószę zameldować o postępach w projekcie)
  • Level 38  
    A jeśli będę zapisywał programatorem to potrzbne będą tylko piny adresowe oraz sterowanie. Co do willema to chyba jego koszt jest większy niż tego urządzenia:/ a na razie nie planuję innego wykorzystania programatora. Jest jakaś wersja "dla ubogich", którą można zmontować szybko na pająka? Z odczytem takiego biosu to będzie tylko tak że podaję adres komórki i sygnał przepisujący ją na wyjście? O ile pamiętam wiele biosów miało jeszcze okienko do kasowania UV - czy to nie będzie sprawiać komplikacji w zaprogramowaniu?
  • Level 27  
    hunterhouse wrote:
    4MB=512kb czyli przy 8kHz da to około 64s dźwięku.


    Dodano po 2 [minuty]:

    Myślę,że 512kb daje ok 32s dzwięku ale ...
    Do wygenerowania dźwięku 8kHz potrzebujesz miniumum 2*8kHz - czyli 16000 próbek/sek*kilkanaściesekund = grubo ponad 160kb, typowa c51 bez dodatkowych sztuczek pozwala zaadresować 64kb.
    Pomysł kolegi z flash-em dobry w przypadku gdy chcemy pamiętać próbki po zaniku napięcia.
    Osobiście radze wybrać procek z większą przestrzenią adresową danych ( nie wiem jaki) i pamięć SRAM ( może podtrzymywaną baterią).

    Dodano po 7 [minuty]:

    BIOSY z okienkiem to EPROMY
  • Level 26  
    z tym 8kHz to chodziło mi o próbkowanie a nie o czestotliwość sygnału.
    a przy prubkowaniu 8kHz da nam 512kB/8kHz=64s czyli wszysko sie zgadza. z tym że maksymalna czestotliwość zapisana w tym formacie to 4kHz (pasmo telefoniczne).
    co do pamięci biosów to chodzi mi o nowsze płyty z układami np 29F040
    to jest flash kasowany elektryczne ale ma on wbudowany układ do zapisywania (nierobi sie tego jak w zwykłych eppromach tylko trzeba podawać komendy) odczytywanie jest zato normalne tak jak w pamięciach ram. ram też by mógł być ale po zaniku napięcia tracimy zawartość.

    co do adresowania to można dać układ trzy układy 74s573 i z 8+3portów uzyskujemy 24 porty za pomocą których możemy zaadresowac 16Mb pamięci.
  • User under supervision
    Witam,
    Pytanie czy potrzebna jest rozdzielczość 8 bitowa ?
    Jeśli nie to można by zastosować modulację delta czyli kodowanie jednobitowe.
  • Level 27  
    Inny spusób generowania dzwięku.
    Wróć pamięcią do czasów gdy na świecie nie było jeszcze kart dzwiękowych a w PC grały głośniczki.
    Były one sterowane sygnałem cyfrowym, obecnie mamy wzmacniacze (chyba klasy D też z wyjściem cyfrowym).
    Zasada jest prosta (oględnie mówiąc):
    - jedynka na wyjściu membrama głośnika ma się wychylać
    - następna jedynka na się wychylać dalej;
    - zero cofać;
    -itd..

    Bezwłądnoć głośnika (lub filtr dolnoprzepustowy) powoduje, że słychać.
    Sprawdzone praktycznie, wysyłając specjalnie przygotowane po RS232 9600bps próbki generowałem dźwięk (i nawet mogłem rozpoznać kto mówi).
    Co do ilości próbek i częstotlowości sygnału powiniem wypowiedzeć się ktoś "mądry".
    Może taki sposób pozwoli zaoszczędzić pamięć i uprościć układ
  • Level 26  
    wydaje mi się ze to raczej na to samo wyjdzie. bo do zapisu bo do zapisu 1s czestotliwości 4khz będzie z rozdzileczością 8 bitową będzie potrzebne
    64kb
    a w układzie z 1b przetwornikiem też 64kb tylko że czestotliwośc prubkowania będzie o 8 razy większa.

    co innego gdy zmiejszymy zordzielczość do 4 bitów ale to zmiejszy nam pamięc tylko o połowe a jakośc będzie dużu gorsza.
  • Level 38  
    No dobra ale chodzi mi o to żeby ten układ miał jak najmniej elementów i był możliwie najtańszy w wykonaniu. Mam kilka biosów z płyt 386 i 486 to są pewnie te z okienkami. Ram nie wchodzi w grę, bo to musi pamiętać nawet po wyjęciu baterii. A szeregowe dadzą radę?
  • User under supervision
    Przypomniałem sobie o swoich eksperymentach ze stacją dyskietek 3.5".
    Z tego co pamietam to stosowałem modulację delta oraz modulowany generator 1MHz w trakcie zapisu.
    Na jednej dyskietce mieściło się ok 35s dźwięku jakości telefonicznej.
    Cały układ składał sie z kilku przerzutników typu D (7474) oraz generatora i komparatora.
  • Level 24  
    hunterhouse wrote:
    co do procka to at89c2051 może mieć mało pinów bo w najgorszym przypadku potrzebujesz 22 bitów na adres i 8 na dane oraz 2 do sterowania pamięcią i 2 do komunikacji z komputerem
    oczywiście można zastosować jakieś układy logiczne do adresowania ale nie można przesadzać bo układ musi w miarę szybko adresować komórki pamięci (8khz).


    Ja bym dał licznik binarny. Nie potrzebujesz dostępu do dowolnej komórki, bo będziesz czytał/zapisywał całość (lub fragment od początku) po kolei. Wystarczy zatem jednym pinem podawać impulsy zwiększające stan licznika, drugim zerowanie (dla szybkiego powrotu do początku oraz dla synchronizacji startu). Taki licznik możesz zrobić np na jakimś większym układzie PLD/CPLD.

    Pakowanie się w budowę multipleksowanej szyny danych/adresów w tak prostym projekcie nie ma sensu, bo to skomplikuje układ, a po co sobie utrudniać życie...

    Co do pamięci, to możnaby powalczyć z kostkami RAM-u ze starych płyt komputerowych (pracowały bodajrze jako cache). Wystarczy podłączyć bateryjkę 3V przez diodę, i powinny trzymać dane.

    pozdrawiam,
    genetix

    Dodano po 1 [minuty]:

    EPROM Bios-u też nie jest dobrym pomysłem, bo kasowanie i programowanie będzie zbyt kłopotliwe (naświetlanie UV, potrzebny programator itd.)
  • Level 26  
    zastosowanie logiki zamiast procsorka też jest rozwiązaniem ale tylko gdy chcemy odtważać 1 dzwięk. gdy mamy nagrane kilka dzwików i to jeszcze o różnej długości to raczej bez procka się nie obejdzie. stosowanie epromów z płyt głuwnych to faktycznie pomyłka ale mi chodzi o flash.
    na uszkodzonej płycie głównej od celerona 500MHz była kość 4Mbit czyli 512kb. szkoda że kolega nie posiada programatora bo to mocno uprościło by konstrukcje.
    co do logiki adresującej to myśłałem o 74s573. 8 bitowy zatrzask stosowany do adresowania ramu w AVR'ach. podaje sie na wejście 8bit'ów i impuls na wejście clk a wtedy na wyjściu pojawia się to samo co na wejściu i jest pamiętane do kolejnej szpilki na wejściu clk.

    co do programowania układów 29Fxxx to sprawa nie jest tak trudna jak myślałem. najpierw kasujemy potrzebny sektor a potem zapisujemy na niego nowe bajty. w nocie katalogowej jest wszystko ładnie opisane.

    co do procka to ja bym proponowła coś w 40 pinowej obudowie.
  • Level 38  
    To już wiem - 29F sie użyje, bo one nawet fajne są. Trzeba jeszcze luknąć za jakimś schematem programatora do PC. Szukałem w necie ale widzę same komercyjne kombajny:( Jest jakiś prosty programatorek dedykowany dla tych pamięci, który możnaby zrobić szybko i łatwo samemu?

    Ramy odpadają żeby nie było możliwości przypadkowego skasowania przez padniętą baterię.
  • Level 26  
    co do programatora to mógł by kolega willema zrobić. nie jest to cud świata ale za cene 20 zł można złożyć jego uproszczoną wersję. ja za 12PLN kupiłem płytke drukowana (wersja 3.1 albo jakoś tak) i 8zł na logike z podstawkami. zamiast tej dużej podstawki ZIF w którą wkłada się programowane układy użyłem zwykłej podstawki precyzyjnej. i działa.
    czy znajdzie kolega coś prostrzego do flashy to nie wiem ale ten programatorek moze sie przydać.

    Dodano po 1 [godziny] 46 [minuty]:

    patrzcie co znalazłem. wzucam tutaj bo może sie przydać a cena jest chyba atrakcyjna. http://www.allegro.pl/show_item.php?item=74237929
    nieznam kolesia ale te pamięci są chba troche droższe :).
  • Level 38  
    Płytka do Willema 3.0 jest na allegro za 15zł - sie kupi. Gdzie udało ci się kupić za 12zł(może też tam poszukam)? Jeśli chodzi o scalaki to wszystkie są niezbędne do zaprogramowania tej pamięci? Na razie chcę zmontować kompletne minimum a potem sobie rozbuduję jak będzie więcej kasy w kieszeni.
  • Level 26  
    ja swoją płytke do wilema kupiłew w sklepie w poznaniu (kit AVT5070 ).
    co do częsci to chyba będzą wszystkie potrzebne. lepiej nie ryzykować bo i tak kosztują grosze. sama logika i lm7805 i jeden sterownik mcxxxxx ale on koszyuje 1,5 chyba.

    najdroższy był kabel ale i gniazdo. kabel można sobie odpuścić bo idzie płytke podłączyć bezpośrednio w złącze w komputerze (lpt)
  • Level 38  
    spox dzięki za porady zamykam temat
pcbway logo