Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Wiznet 3100a + VS1001k + atmega162 = Radio internetowe

Maniak02 17 Cze 2006 21:02 2100 9
  • #1 17 Cze 2006 21:02
    Maniak02
    Poziom 10  

    Witam!
    Potrzebuje pomocy z uruchomieniem radia internetowego na wymienionym w temacie sprzęcie.
    Czy ktoś może robił już coś takiego??
    Wykorzystałem gotowe biblioteki w BASCOMIE, aby uruchomić układ w trybie klienta.
    Do tego transmisja z dekoderem VS1001 odbywa się przez SPI napisane w Asemblerze. Analizowałem ramki i wszystko wyglada dobrze. Protokoły nie są opuszczane ani nie przepełnia się bufor.
    W słuchawkach słychać muzykę, ale...niestety w zwolnionym tempie.
    Czy ktoś z forumowiczów próbował stworzyć podobny układ?
    Jakieś rady jak otrzymać normalnej prędkości dźwięk?

    Pozdrawiam

    0 9
  • #2 17 Cze 2006 23:31
    thenkles
    Poziom 11  

    Nie znam dokładnie tego układu, ale może:
    a) masz ustawioną inną częstotliwość próbkowania, niż 44100Hz
    b) komunikacja po SPI przebiega zbyt wolno (ale wtedy by chyba zacinało...)

    0
  • #3 17 Cze 2006 23:44
    szaro
    Poziom 19  

    moze winny jest kwarc VS-a albo zala konfiguracja podwajacza czestotliwosci

    0
  • #4 18 Cze 2006 12:29
    sepher
    Poziom 19  

    Kiedyś miałem podobny problem z VS-em. Jak masz podpiętą linię SS z procka? Jeśli nie wykorzystujesz jej do adresowania układu na SPI powinna ona być podłączona do masy. W przeciwnym razie nóżka 'pływa' a stan wysoki powoduje zatrzymanie transmisji przez SPI.

    0
  • #5 27 Cze 2006 00:06
    Maniak02
    Poziom 10  

    Cześć wszystkim!
    Dzieki za odpowiedzi. Udało mi sie uruchomić układ.
    Przyczyną wolnego grania był faktycznie kwarc. Działał on na podstawowej częstotliwości 8,3MHz a nie 24,576MHz. Układ rezonansowy taki jak manualu i powienien wzbudzać się na tej właśnie częstotliwości...dziwna sprawa. Wstawiłem kwarc 12,288MHz i gra jak trzeba!!!

    Co najlepsze z tego wszystkiego nauczyłem się C dla AVR....ale C wcale nie jest konieczne. Mój program w Bascomie, którego podejrzewałem, że jest zbyt wolny też działa. SPI napisałem w asemblerze i śmiga super.
    32 - 64kbity śmigają rewelacyjnie!!!

    Jakby ktoś potrzebował pomocy niech pisze!

    Pozdrawiam!

    0
  • #6 05 Lip 2006 10:13
    Mustela73
    Poziom 12  

    Czesc,
    Ciekawy projekt.
    Ja nosze sie od dluzszego czasu z zamiarem zlozenia czegos takiego. Czy moglbys podac trosze wiecej informacji na temat oprogramowania - protokolow transmisji, starowania etc.
    No i dobrze by bylo jakis schemacik.
    ja planuje zrobic to na module DIL/NetPC ADNP/1486 (taki mam, ale nie wykluczam uzycia czegos innego) z podlaczonym VS1001 albo czyms podobnym, wyswietlaczem i klawiaturka.
    mam problem z dokumentacja - jak realizowany jest przesyl danych, jakie protokoly, formaty danych sa stosowane, jakie biblioteki sa dostepne, etc.
    z gory dziekuje za informacje.

    Pozdrawiam

    0
  • #7 05 Lip 2006 23:08
    UDMA
    Poziom 16  

    Mustela73 napisał:

    mam problem z dokumentacja - jak realizowany jest przesyl danych, jakie protokoly, formaty danych sa stosowane, jakie biblioteki sa dostepne, etc.


    Radia internetowe to zwykłe serwery HTTP. Wysyłasz HTTP GET i serwer w odpowiedzi wysyła po TCP jeden nieskończony plik MP3, który można zapisać na dysk czy przekierować do dekodera MP3. Poniżej program w pythonie, który przechwytuje strumień audio z serwera i zapisuje do pliku.

    Code:

    import asyncore
    import socket


    class shoutcast_client (asyncore.dispatcher):

        def __init__ (self, host, port, path, out_file):
            asyncore.dispatcher.__init__ (self)
            self.path = path
            self.create_socket (socket.AF_INET, socket.SOCK_STREAM)
            self.connect ((host, port))
            self.out_file = out_file

        def handle_connect (self):
           REQUEST = 'GET %s HTTP/1.0\r\r\n' %self.path
            self.send (REQUEST)
            print REQUEST

        def handle_read (self):
            data = self.recv (20000)
            out_file.write(data)

        def handle_write (self):
            pass



    if __name__ == '__main__':
       import sys
       
       # Adres serwera MP3.
       HOST = 'stream2141.init7.net'
       PORT = 80   
       PATH = "/"
       
       out_file = file("stream.mp3", "wb")
       shoutcast_client (HOST, PORT, PATH, out_file)
       asyncore.loop()

    0
  • #8 06 Lip 2006 09:49
    Mustela73
    Poziom 12  

    Hi,
    Nie wiedzialem ze to jest tak proste.
    Wynika ze wystarczy:
    - poloczyc sie z adresem internetowym,
    - wyslac Get
    - odbierac sukcesywnie ramki z danymi mp3 i przesylac je dalej do dekodera mp3.

    Proste jak drut.
    Tak jest we wszystkich radiach?
    nie mieszkam w Polsce i zalezalo by mi na odbiorze trojki, zetki czy rmf.
    co z radiemktore ma w wywolaniu plik ASF?
    czym to dekodowac?

    Pozdrawiam.
    Mustela

    0
  • #9 30 Paź 2006 13:28
    avr_elektronik
    Poziom 14  

    witam
    Czy może posiada ktoś schemat płytki Piggyback VS1001 Rev.B ?

    0
  • #10 15 Lut 2007 08:50
    Maniak02
    Poziom 10  

    Dziękuje za pomoc.
    Temat zamknięty.

    0