اطلاعیه

Collapse
No announcement yet.

ضبط صدا با vs1003(راهنمایی)

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    ضبط صدا با vs1003(راهنمایی)

    سلام
    می خواهم با ماژول VS1003 صدا را ضبط و در کارت sd ذخیره کنم.
    در مورد پخش آن از روی کارت مشکلی ندارم و به خوبی کار می کند
    کسی با این ماژول صدارو را ضبط کرده؟ در سایت گشتم ولی در این مورد چیزی پیدا نکردم
    لطفا اگر کسی انجامش داده راهنمایی فرمایید
    (میکرویی که با آن کار می کنم lpc1768 می باشد)

    #2
    پاسخ : ضبط صدا با vs1003(راهنمایی)

    یه نگاهی به دیتاشیت بندازین، معمولا باید این چیزارو نوشته باشه

    دیدگاه


      #3
      پاسخ : ضبط صدا با vs1003(راهنمایی)

      سلام
      من هم همین مشکل رو دارم
      تا یه جاهایی هم پیش رفتم اما اصلا قابل قبول نبوده
      کس هست بتونه کمک کنه؟
      اي خدا ، من بايد از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از اين راه طعنه زنند. بايد به آن سنگدلاني که علم را بهانه کرده و به ديگران فخر ميآ*فروشند، ثابت کنم که خاک پاي من هم نخواهند شد. بايد همه آن تيره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترين و افتاده ترين مرد روي زمين باشم.
      شهيد دکتر مصطفي چمران
      اللهم صل علي محمد و ال محمد و عجل فرجهم
      ; C is not for children

      دیدگاه


        #4
        پاسخ : ضبط صدا با vs1003(راهنمایی)

        از دوستان کسی نمونه برنامه دارد؟

        دیدگاه


          #5
          پاسخ : ضبط صدا با vs1003(راهنمایی)

          سلام اگه امکان داره برنامه پخش رو اینجا قرار بدید
          تو بگو ای سنگ صبور تو صبوری یا دل من
          تو بگو ای جام بلور تو شکستی یا دل من

          دیدگاه


            #6
            پاسخ : ضبط صدا با vs1003(راهنمایی)

            سلام به همه
            نوشته اصلی توسط امین شیخ نجدی
            سلام اگه امکان داره برنامه پخش رو اینجا قرار بدید
            به تایپیکی که آدرس رو میزارم برو و از صفحه 28 تا 30 رو مطالعه کن حتما میتونی برای پخش موزیک از VS1003 جواب بگیری اگرم مشکلی داشتی در مورد پخش اونجا بگو راهنمایت میکنم
            http://www.eca.ir/forum2/index.php?topic=18274.405
            نوشته اصلی توسط mohsenavr
            از دوستان کسی نمونه برنامه دارد؟
            برنامش رو میزارم اما اصلا کیفیت نداره درواقع صدا با نویز فراوان و قطع و وصل شدید هست :

            کد:
            $regfile = "m128def.dat"
            $crystal = 16000000
            $hwstack = 128
            $swstack = 128
            $framesize = 128
            '*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*  CONFIG  -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
            '----------------------------------------------- lcd
            Config Lcd = 20 * 4                     'equle with lcd 16*2
            Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , _
            Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2
            Cursor Off : Cls
            '----------------------------------------------- keypad
            Config Kbd = Portd , Debounce = 50 , Delay = 100
            '----------------------------------------------- pin & port
            '------------------------- vs
            Xrst Alias Porta.6 : Config Xrst = Output
            Dreq Alias Pina.5 : Config Dreq = Input
            Xdcs Alias Porta.4 : Config Xdcs = Output
            Xcs Alias Porta.3 : Config Xcs = Output
            Miso Alias Pina.2 : Config Miso = Input
            Mosi Alias Porta.1 : Config Mosi = Output
            Sck Alias Porta.0 : Config Sck = Output
            '*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-  DECLARE  -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
            Declare Sub Vs_write(byval Vs_address As Byte , Byval Data1 As Byte , Byval Data2 As Byte)
            Declare Function Vs_read(byval Vs_address As Byte) As Word
            Declare Sub Vs_read_record()
            Declare Sub Vs_init()
            Declare Sub Vs_decode()
            Declare Sub Dreq_wait()
            Declare Sub Vs_record()
            Declare Function Keypad() As Byte
            Declare Sub Vs_riff_header()
            '*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-  DIM  -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
            '----------------------------------------------- vs
            Dim Vs_mode As Byte : Vs_mode = &H0
            Dim Vs_status As Byte : Vs_status = &H1
            Dim Vs_bass As Byte : Vs_bass = &H2
            Dim Vs_clockf As Byte : Vs_clockf = &H3
            Dim Vs_decode_time As Byte : Vs_decode_time = &H4
            Dim Vs_audata As Byte : Vs_audata = &H5
            Dim Vs_wram As Byte : Vs_wram = &H6
            Dim Vs_wramaddr As Byte : Vs_wramaddr = &H7
            Dim Vs_hdat0 As Byte : Vs_hdat0 = &H8
            Dim Vs_hdat1 As Byte : Vs_hdat1 = &H9
            Dim Vs_aiaddr As Byte : Vs_aiaddr = &HA
            Dim Vs_vol As Byte : Vs_vol = &HB
            Dim Vs_aictrl0 As Byte : Vs_aictrl0 = &HC
            Dim Vs_aictrl1 As Byte : Vs_aictrl1 = &HD
            Dim Vs_aictrl2 As Byte : Vs_aictrl2 = &HE
            Dim Vs_aictrl3 As Byte : Vs_aictrl3 = &HF
            '~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vs_other
            Dim Flag_vs_init As Byte
            Dim Flag_vs_record As Byte
            Dim I As Word
            Dim Vs_volume As Byte : Vs_volume = 127
            '~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vs_riff_header
            Dim F As Dword
            Dim S As Dword
            Dim D As Dword
            '~~~
            Dim F_0 As Byte At F Overlay
            Dim F_1 As Byte At F + 1 Overlay
            Dim F_2 As Byte At F + 2 Overlay
            Dim F_3 As Byte At F + 3 Overlay
            '~~~
            Dim S_0 As Byte At S Overlay
            Dim S_1 As Byte At S + 1 Overlay
            Dim S_2 As Byte At S + 2 Overlay
            Dim S_3 As Byte At S + 3 Overlay
            '~~~
            Dim D_0 As Byte At D Overlay
            Dim D_1 As Byte At D + 1 Overlay
            Dim D_2 As Byte At D + 2 Overlay
            Dim D_3 As Byte At D + 3 Overlay
            '----------------------------------------------- sd
            Dim Buff(512) As Byte
            Dim Ff As Byte : Ff = 0
            Dim Ff_riff As Byte
            '----------------------------------------------- keypad
            Dim Key As Byte
            '----------------------------------------------- calculator
            Dim B1 As Byte : B1 = 0
            '~~~~
            Dim W1 As Word : W1 = 0
            '~~~~
            Dim L1 As Long : L1 = 0
            '~~~~
            Dim S1 As String * 30
            '~~~~
            '*-*-*-*-*-*-*-*-*-*-*-*-*-*-  FIRST INSTRUCTION  -*-*-*-*-*-*-*-*-*-*-*-*-*-*
            '----------------------------------------------- sd
            $include "Config_MMC.bas"
            If Gbdriveerror = 0 Then
              $include "Config_AVR-DOS.bas"
            Else
              Cls : Lcd "error to include"
              Home L : Lcd "Config_MMC.bas"
              End                           'end program
            End If
            B1 = Initfilesystem(1)
            Cls : Lcd "DOS Version: " ; Ver() : Wait 1 : Cls
            If B1 <> 0 Then
              Cls : Lcd "Error in " : Home L : Lcd "Init File System:" : Home Third : Lcd B1
              End                           'end program
            End If
            '~~~~~~~~~~~~~~~~~~~~~~~~~~~~ card check
            B1 = Drivereset()
            If B1 <> 0 Then
              Cls : Lcd "Error in Reset:" : Home L : Lcd B1
              End                           'end program
            End If
            B1 = Driveinit()
            If B1 <> 0 Then
              Cls : Lcd "Error in Init:" : Home L : Lcd B1
              End                           'end program
            End If
            B1 = Drivecheck()
            If B1 <> 0 Then
              Cls : Lcd "Error in Check:" : Home L : Lcd B1
              End                           'end program
            End If
            '----------------------------------------------- vs
            Xcs = 1
            Xdcs = 1
            Xrst = 1
            Call Vs_init()
            '*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
            '*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*  MAIN  -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
            '*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
            Main:
            Do
            Cls : Lcd "in main :" : Waitms 500
            Key = Keypad()
            '----------------------------------------------- vs
            '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vs_decode
            If Key = 1 Then Call Vs_decode()
            If Key = 4 Then Call Vs_decode()
            If Key = 7 Then Call Vs_decode()
            '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kill file
            If Key = 2 Then
              S1 = Dir( "rec.wav")
              Cls : Lcd "File For Kill:" : Home L : Lcd S1 : Wait 1
              Kill S1
            End If
            '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ vs_record
            If Key = 3 Then Call Vs_record()
            '----------------------------------------------- loop & end
            Loop
            End                             'end program
            '*-*-*-*-*-*-*-*-*-*-*-*-*-*-*  FUNCTION  -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
            '----------------------------------------------- vs_read
            Function Vs_read(byval Vs_address As Byte) As Word
             Local Vs_read_opcode As Byte : Vs_read_opcode = &B0000_0011
             Local Byte_of_word As Byte : Byte_of_word = 0
             Xdcs = 1 : Xcs = 0
             Shiftout Mosi , Sck , Vs_read_opcode , 1
             Shiftout Mosi , Sck , Vs_address , 1
             Shiftin Miso , Sck , Byte_of_word , 1
             Vs_read = Byte_of_word
             Vs_read = Vs_read * 256                  'Shift Vs_read , Left , 8
             Byte_of_word = 0
             Shiftin Miso , Sck , Byte_of_word , 1
             Vs_read = Vs_read + Byte_of_word
             Xcs = 1
             Call Dreq_wait()
             Xdcs = 0
            End Function
            '----------------------------------------------- keypad
            Function Keypad() As Byte
            Local Key_pushing As Byte
             Key_pushing = Getkbd()
             If Key_pushing <> 16 Then
              Key_pushing = Lookup(key_pushing , Kbd_num)
             End If
            Keypad = Key_pushing
            End Function
            '*-*-*-*-*-*-*-*-*-*-*-*-*-*-*  SUBRUTIN  -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
            '----------------------------------------------- vs_init
            Sub Vs_init()
            Cls : Lcd "VS1003 Initing" : Home L : Lcd "Pls 3sec Wait" : Wait 1
            Flag_vs_init = 1
            Xrst = 0 : Wait 1 : Xrst = 1 : Waitus 500 : Call Dreq_wait()
             Call Vs_write(vs_mode , &B0000_1000 , &B0000_0000)     'mode=hex800 (sdinew=1)
             Call Vs_write(vs_bass , &H79 , &HF7)            'bass(st_am=10db,st_frq=10khz,sb_am=10db,sb_frq=100hz)
             Call Vs_write(vs_clockf , &B1111_1000 , &B0000_0000)    '4430
             Call Vs_write(vs_aiaddr , &B0000_0000 , &B0000_0000)    'aiaddr=0 (barname karbary nadarim)
             Call Vs_write(vs_vol , &B0000_1111 , &B0000_1111)     'vol(volume)=if 10 max vol==>7 (254/10=25.4=>25.4*3=76=>76*0.5=38=>38=&B0011_1000)
            Flag_vs_init = 0
            Cls
             End Sub
            '----------------------------------------------- vs_write
            Sub Vs_write(byval Vs_address As Byte , Byval Data1 As Byte , Byval Data2 As Byte)
             Local Vs_wirte_opcode As Byte : Vs_wirte_opcode = &B0000_0010
             Xdcs = 1 : Xcs = 0
             Shiftout Mosi , Sck , Vs_wirte_opcode , 1
             Shiftout Mosi , Sck , Vs_address , 1
             Shiftout Mosi , Sck , Data1 , 1
             Shiftout Mosi , Sck , Data2 , 1
             Xcs = 1
             Call Dreq_wait()
             Xdcs = 0
            End Sub
            '----------------------------------------------- vs_decode
            Sub Vs_decode()
             If Key = 1 Then
              S1 = Dir( "rec.wav")
              Ff = Ff_riff
             End If
             If Key = 4 Then
              S1 = Dir( "*.mp3")
              Ff = Freefile()
             End If
             If Key = 7 Then
              S1 = Dir( "mmm.wav")
              Ff = Freefile()
             End If
             Cls : Lcd "Play:" : Home L : Lcd S1 : Wait 1
             Open S1 For Binary As #ff                 'create file in MMC
             Do
              Get #ff , Buff(1) , , 512
              For I = 1 To 512
               Xdcs = 0
                Shiftout Mosi , Sck , Buff(i) , 1
               Xdcs = 1
               Call Dreq_wait()
              Next I
              Call Dreq_wait()
             Loop Until Eof(#ff) <> 0
             Cls : Lcd "end paly" : Wait 1
             Close #ff
            End Sub
            '----------------------------------------------- Dreq_wait
            Sub Dreq_wait()
             If Flag_vs_init = 1 Then
              Waitus 15
             End If
             If Flag_vs_record = 1 Then
              Waitus 15
             End If
             Do
              If Dreq = 1 Then Exit Do
             Loop
            End Sub
            '----------------------------------------------- vs_record
            Sub Vs_record()
            Local Zero As Byte : Zero = 0
            Local Block_counter As Dword : Block_counter = 0
            Local Pos As Byte
            Flag_vs_record = 1
            '*******
             For I = 1 To 2048
              Xdcs = 0
              Shiftout Mosi , Sck , Zero , 1
              Xdcs = 1
              Call Dreq_wait()
             Next I
            '*******
             Ff_riff = Freefile()
             Open "rec.wav" For Binary As #ff_riff
             For I = 0 To 512
              Buff(i) = 0
             Next I
             Put #ff_riff , Buff(1) , , 512
            '*******
             Xrst = 0 : Wait 1 : Xrst = 1 : Waitus 500 : Call Dreq_wait()
             Call Vs_write(vs_vol , &B1101_1110 , &B1101_1110)
             Call Vs_write(vs_bass , &B0000_0000 , &B0000_0000)
             Call Vs_write(vs_clockf , &B1111_1000 , &B0000_0000)
             Waitms 500
             Call Vs_write(vs_aictrl0 , &B0000_0000 , &B0000_0000)   'd=12
             Waitms 500
             Call Vs_write(vs_aictrl1 , &B0000_0000 , &B0000_0000)   'agc active
             Waitms 500
             Call Vs_write(vs_mode , &B0011_0000 , &B0000_0100)     'reset & start record
            '*******
             Cls : Lcd "Recording" : Waitms 50
            Flag_vs_record = 0
             Do
              W1 = Vs_read(vs_hdat1)
              If W1 > 256 Then
               If W1 < 896 Then
                 Call Vs_read_record()
                 Block_counter = Block_counter + 2
               End If
              End If
              Key = Keypad()
              If Key = 0 Then
               Exit Do
              End If
             Loop
            '*******
            Flush #ff_riff
            Close #ff_riff
            '*******
             F = Block_counter * 256 : F = F + 52
             S = Block_counter * 505
             D = Block_counter * 256
            Cls : Lcd "Block_counter:" : Home L : Lcd Block_counter : Wait 2
             Call Vs_riff_header()                   'write riff header
            '*******
            Call Vs_init()
            End Sub
            '----------------------------------------------- vs_read_record
            Sub Vs_read_record()
             Local Vs_read_opcode As Byte : Vs_read_opcode = &B0000_0011
             Local Pos As Byte
             B1 = Vs_hdat0
             Xdcs = 1
             For I = 1 To 512
              Xcs = 0
               Shiftout Mosi , Sck , Vs_read_opcode , 1
               Shiftout Mosi , Sck , B1 , 1
               Shiftin Miso , Sck , Buff(i) , 1
               Incr I
               Shiftin Miso , Sck , Buff(i) , 1
              Xcs = 1
              Waitus 500
              Bitwait Dreq , Set
             Next I
             Put #ff_riff , Buff(1) , , 512
            End Sub
            '----------------------------------------------- vs_riff_header
            Sub Vs_riff_header()
            '~~~~~~~
            Open "rec.wav" For Binary As #ff_riff
            For I = 1 To 512
              Buff(i) = 0
            Next I
            '~~~~~~~ 0
            Buff(1) = &H52
            '~~~~~~~ 1
            Buff(2) = &H49
            '~~~~~~~ 2
            Buff(3) = &H46
            '~~~~~~~ 3
            Buff(4) = &H46
            '~~~~~~~ 4 ------ F0
            Buff(5) = F_0
            '~~~~~~~ 5 ------ F1
            Buff(6) = F_1
            '~~~~~~~ 6 ------ F2
            Buff(7) = F_2
            '~~~~~~~ 7 ------ F3
            Buff(8) = F_3
            '~~~~~~~ 8
            Buff(9) = &H57
            '~~~~~~~ 9
            Buff(10) = &H41
            '~~~~~~~ 10
            Buff(11) = &H56
            '~~~~~~~ 11
            Buff(12) = &H45
            '~~~~~~~ 12
            Buff(13) = &H66
            '~~~~~~~ 13
            Buff(14) = &H6D
            '~~~~~~~ 14
            Buff(15) = &H74
            '~~~~~~~ 15
            Buff(16) = &H20
            '~~~~~~~ 16
            Buff(17) = &H14
            '~~~~~~~ 17
            Buff(18) = &H00
            '~~~~~~~ 18
            Buff(19) = &H00
            '~~~~~~~ 19
            Buff(20) = &H00
            '~~~~~~~ 20
            Buff(21) = &H11
            '~~~~~~~ 21
            Buff(22) = &H00
            '~~~~~~~ 22
            Buff(23) = &H01
            '~~~~~~~ 23
            Buff(24) = &H00
            '~~~~~~~ 24 ------ R0 >>> 8KHz= &H40 >>> 16KHz= &H80
            Buff(25) = &H40
            '~~~~~~~ 25 ------ R1 >>> 8KHz= &H1F >>> 16KHz= &H3E
            Buff(26) = &H1F
            '~~~~~~~ 26 ------ R2 >>> 8KHz= &H00 >>> 16KHz= &H00
            Buff(27) = &H00
            '~~~~~~~ 27 ------ R3 >>> 8KHz= &H00 >>> 16KHz= &H00
            Buff(28) = &H00
            '~~~~~~~ 28 ------ B0 >>> 8KHz= &HD7 >>> 16KHz= &HAE
            Buff(29) = &HD7
            '~~~~~~~ 29 ------ B1 >>> 8KHz= &H0F >>> 16KHz= &H1F
            Buff(30) = &H0F
            '~~~~~~~ 30 ------ B2 >>> 8KHz= &H00 >>> 16KHz= &H00
            Buff(31) = &H00
            '~~~~~~~ 31 ------ B3 >>> 8KHz= &H00 >>> 16KHz= &H00
            Buff(32) = &H00
            '~~~~~~~ 32
            Buff(33) = &H00
            '~~~~~~~ 33
            Buff(34) = &H01
            '~~~~~~~ 34
            Buff(35) = &H04
            '~~~~~~~ 35
            Buff(36) = &H00
            '~~~~~~~ 36
            Buff(37) = &H02
            '~~~~~~~ 37
            Buff(38) = &H00
            '~~~~~~~ 38
            Buff(39) = &HF9
            '~~~~~~~ 39
            Buff(40) = &H01
            '~~~~~~~ 40
            Buff(41) = &H66
            '~~~~~~~ 41
            Buff(42) = &H61
            '~~~~~~~ 42
            Buff(43) = &H63
            '~~~~~~~ 43
            Buff(44) = &H74
            '~~~~~~~ 44
            Buff(45) = &H04
            '~~~~~~~ 45
            Buff(46) = &H00
            '~~~~~~~ 46
            Buff(47) = &H00
            '~~~~~~~ 47
            Buff(48) = &H00
            '~~~~~~~ 48 ------ S0
            Buff(49) = S_0
            '~~~~~~~ 49 ------ S1
            Buff(50) = S_1
            '~~~~~~~ 50 ------ S2
            Buff(51) = S_2
            '~~~~~~~ 51 ------ S3
            Buff(52) = S_3
            '~~~~~~~ 52
            Buff(53) = &H64
            '~~~~~~~ 53
            Buff(54) = &H61
            '~~~~~~~ 54
            Buff(55) = &H74
            '~~~~~~~ 55
            Buff(56) = &H61
            '~~~~~~~ 56 ------ D0
            Buff(57) = D_0
            '~~~~~~~ 57 ------ D1
            Buff(58) = D_1
            '~~~~~~~ 58 ------ D2
            Buff(59) = D_2
            '~~~~~~~ 59 ------ D3
            Buff(60) = D_3
            '~~~~~~~
            Put #ff_riff , Buff(1) , , 512
            Flush #ff_riff
            Close #ff_riff
            '~~~~~~~
            End Sub
            '*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*  LOOKUP  -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
            '----------------------------------------------- keypad
            Kbd_num:
            Data 1 , 4 , 7 , 14 , 2 , 5 , 8 , 0 , 3 , 6 , 9 , 15 , 10 , 11 , 12 , 13 , 16
            هرجاش مشکل داشتی بگو

            دوستان کسی هست بتونه راهنمایی کنه برای ضبط صدا با VS1003 ؟
            اي خدا ، من بايد از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از اين راه طعنه زنند. بايد به آن سنگدلاني که علم را بهانه کرده و به ديگران فخر ميآ*فروشند، ثابت کنم که خاک پاي من هم نخواهند شد. بايد همه آن تيره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترين و افتاده ترين مرد روي زمين باشم.
            شهيد دکتر مصطفي چمران
            اللهم صل علي محمد و ال محمد و عجل فرجهم
            ; C is not for children

            دیدگاه


              #7
              پاسخ : ضبط صدا با vs1003(راهنمایی)

              آقا ما که از کد شما سر در نیاوردیم
              ممنون که کدتون را در اختار بقیه قرار دادید
              من که بی خیال vs شدم و خودم دارم با ADC صدا را ضبط می کنم
              صدا را همون لحظه پخش می کنم خوبه(live) ولی می ریزم رو sd بعد با کامپیوتر پخش می کنم نویز دار
              نمی دونم مشکل کجاست!!!
              کسی این کار را انجام داده؟

              دیدگاه


                #8
                پاسخ : ضبط صدا با vs1003(راهنمایی)

                سلام و صلوات
                ماه رمضون مبارک
                بله من انجام دادم
                با چه میکرویی کار میکنی؟
                منظورت دقیقا از پخش همون موقع دقیقا چیه؟
                یعنی همون لحظه که داری رکورد میکنی ، صدا رو هم با هدفن گوش میکنی و کیفیتشم خوبه؟ یا اینکه وقتی صدارو با میکرو رکود میکنی و روی sd کارت میریزی بعد stop میکنی و در آخر با خود میکرو play میکنی کیفیتش خوبه؟
                اي خدا ، من بايد از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از اين راه طعنه زنند. بايد به آن سنگدلاني که علم را بهانه کرده و به ديگران فخر ميآ*فروشند، ثابت کنم که خاک پاي من هم نخواهند شد. بايد همه آن تيره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترين و افتاده ترين مرد روي زمين باشم.
                شهيد دکتر مصطفي چمران
                اللهم صل علي محمد و ال محمد و عجل فرجهم
                ; C is not for children

                دیدگاه


                  #9
                  پاسخ : ضبط صدا با vs1003(راهنمایی)

                  سلام
                  با lpc1768 کار می کنم
                  وقتی از adc می خونم و همون لحظه از dac با هدفون گوش میدهم کیفیت خوبه
                  اما وقتی میریزم رو sd کارت بعد از یه delay کوتاه با خود میکرو play میکنم کیفیت میاد پایین.نویز داره.
                  کدهایی رو هم که رو sd کارت ریختم وقتی میبرم تو کامپیوتر و براش هدر میزارم اون هم نویز داره
                  این رو هم بگم که 8bit و 16khz ذخیره میکنم
                  شما چطور انجام دادید؟
                  کیفیت خوبه؟نویز نداره؟

                  دیدگاه


                    #10
                    پاسخ : ضبط صدا با vs1003(راهنمایی)

                    سلام و صلوات
                    من با mega128a انجام دادم
                    تعجب کردم گفتی همزمان گوش میکنم چراکه گاهی اوقات صدای ورودی بر روی adc بر روی پایه های دیگه میکرو هم میفته که شما فکر میکنید صدا توسط میکرو گرفته شده و سپس به گوشی شما منتقل شده که نشانه مهمش اینه که صدای گوشی با صدای روی پایه adc از لحاظ کیفیت (شاید از لحاظ volume متفاوت باشد) یکی هست. که فکر میکنم این اتفاق در اینجا برای شما پیش اومده.
                    صدای اصلی شما همونی هست که روی sd ضبط شده.
                    یک نمونه از صدای ضبط شدت رو بزار ببینیم چجوریه؟
                    کیفیت کاره من چون اون موقع با mega128a کار میکردم پایین بود اما تمامی صحبت ها واضح بود و نویز خیلی کمی داشت.(شایدم بهتره بگم تقریبا نویز قابل توجه هی نداشت)
                    اي خدا ، من بايد از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از اين راه طعنه زنند. بايد به آن سنگدلاني که علم را بهانه کرده و به ديگران فخر ميآ*فروشند، ثابت کنم که خاک پاي من هم نخواهند شد. بايد همه آن تيره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترين و افتاده ترين مرد روي زمين باشم.
                    شهيد دکتر مصطفي چمران
                    اللهم صل علي محمد و ال محمد و عجل فرجهم
                    ; C is not for children

                    دیدگاه


                      #11
                      پاسخ : ضبط صدا با vs1003(راهنمایی)

                      نوشته اصلی توسط مهدی رهی
                      تعجب کردم گفتی همزمان گوش میکنم چراکه گاهی اوقات صدای ورودی بر روی adc بر روی پایه های دیگه میکرو هم میفته که شما فکر میکنید صدا توسط میکرو گرفته شده و سپس به گوشی شما منتقل شده که نشانه مهمش اینه که صدای گوشی با صدای روی پایه adc از لحاظ کیفیت (شاید از لحاظ volume متفاوت باشد) یکی هست. که فکر میکنم این اتفاق در اینجا برای شما پیش اومده.
                      لطفا بیشتر توضیح دهید متوجه نشدم!!
                      8b16k2.wav - 293 KB

                      دیدگاه


                        #12
                        پاسخ : ضبط صدا با vs1003(راهنمایی)

                        سلام و صلوات
                        قبل از توضیح آیا شما از دستور خاصی مثل DMA در XMEGA یا قابلیتی از میکرو که به صورت همزمان دو کار رو برای شما انجام بده استفاده کردی؟
                        فایل ضبط شده رو گوش کردم نویز که تقریبا نداشت صدای محیط بود و صدای خود شما
                        اما صدا لرزش داشت که ربطی به نویز نداره و بر میگرده به فرکانس کاری ، خرابی اطلاعات ضبط شده ، منبع تغذیه نامناسب ، VREF نامناسب و از این قبیل موارد.
                        مداری که جناب طراح برای بایاس کردن میکروفن و انتقال صوت به ADC به صورت تصویری آموزش دادن و روی سایتشون گذاشتن استفاده کنید.(اگر پیدا نکردین بگید تا بزارمش)
                        جهت تست موقع ضبط تمامی فعالیت های میکرو رو قطع کنین و بزارین که تمامی CPU میکرو برای عمل ضبط استفاده بشه
                        سعی کنین اطلاعات با تمام سرعت ممکن از ADC خوانده و پس از پر کردن بافر سریعا روی SD انتقال پیدا کنه.
                        این مشکل با تغییر در برنامه نویسی مطمئنا حل میشه
                        شماتیک بخش رکورد رو هم بزارین.
                        منتظرم ببینم ضبط بعدی چطور میشه
                        موفق و سلامت باشید
                        اي خدا ، من بايد از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از اين راه طعنه زنند. بايد به آن سنگدلاني که علم را بهانه کرده و به ديگران فخر ميآ*فروشند، ثابت کنم که خاک پاي من هم نخواهند شد. بايد همه آن تيره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترين و افتاده ترين مرد روي زمين باشم.
                        شهيد دکتر مصطفي چمران
                        اللهم صل علي محمد و ال محمد و عجل فرجهم
                        ; C is not for children

                        دیدگاه


                          #13
                          پاسخ : ضبط صدا با vs1003(راهنمایی)

                          نوشته اصلی توسط مهدی رهی
                          مداری که جناب طراح برای بایاس کردن میکروفن و انتقال صوت به ADC به صورت تصویری آموزش دادن و روی سایتشون گذاشتن استفاده کنید.(اگر پیدا نکردین بگید تا بزارمش)
                          اطلاعی از این موضوع ندارم لطفا اگر اطلاعاتی دارید در اختیار بنده هم قرار بدهید

                          در مورد لرزش صدا فکر کنم مشکل در نوشتن در sd باشد که زمان می گیرد و باعث این اتفاق می شود
                          من هر بار در تایمر با فرکانس 16khz اطلاعات ADC را می خونم و همون جا در SD کارت می نویسم( برای سریع تر شدن هر 100 بار اطلاعات را در sd نوشتم ولی باز تغییری نکرد!
                          آیا زمان نوشن در sd باعث این موضوع می شود؟

                          دیدگاه


                            #14
                            پاسخ : ضبط صدا با vs1003(راهنمایی)

                            سلام من میخوام یه صدایی را ضبط کنم و ذخیره کنم
                            با این آی سی میشه فشرده اش کرد؟ تا چه حد؟ mp3?

                            دیدگاه

                            لطفا صبر کنید...
                            X