اطلاعیه

Collapse
No announcement yet.

***کد نویسی برای VS1003 ***

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

    ***کد نویسی برای VS1003 ***

    با سلام

    شب همگی دوستان بخیر

    مدتی است که ماژول VS1003 را از سایت ECA خریداری کردم و قصد دارم که یک آهنگ با این ماژول پخش کنم

    کل صفحات تاپیک جناب Polestar و تاپیک های مشابه را خوندم ولی کد VS1003 را شرح نکرده بودند

    و میخواهم که از مد SPI اطلاعات را واسه دیکد ارسال کنم

    ولی متاسفانه نمیدونم که دقیقا باید چی کار کنم واسه کد نویسی اش ؟

    هر چی هم Code Sample هاش را نگاه کردم به هیچ وجه متوجه نشدم

    دوستان ممنون میشم که مرحله به مرحله یک توضیحی بدهند که باید چی کار کنیم تا بتونیم یک آهنگ را Play کنیم

    من خودم با توابع FAT و SD کاملا کار کردم و آشنا هستم ولی با این VS1003 نمیدونم چطور باید کار کنم

    ممنون میشم دوستان راهنمایی کنند
    کد:
     if (f_open(&file,path1,FA_READ)== FR_OK) 
    }
            res=f_read(&file,buffer, 512, &br);
    
    بعد از این که فایل Mp3 
    
    را باز کردم باید چی کارش کنم ؟
    {

    #2
    پاسخ : ***کد نویسی برای VS1003 ***

    سلام صبح همگی بخیر

    منتظر راهنمایی دوستان هستم

    دیدگاه


      #3
      پاسخ : ***کد نویسی برای VS1003 ***

      با سلام
      برای راه اندازی VS1003 دو تا کار باید درست انجام بشه.
      1- سخت افزار سالم که به طور صحیح در کنار هم چیده بشه و PCB درست و حسابی براش طراحی کنی ( گراند دیجیتال و آنالوگ در جای مناسب بهم وصل کنی بر اساس application note های موجود
      2- نرم افزار : که شامل یه ریست نرم افزاری VS و یه تنظیم clock است و در انتها ارسال بایت به بایت به VS است.
      VS1003 در دو مد کار می کنه اگه اشتباه نکنم یکی compatible و دیگری Native حالا اسماشو دقیقا یادم نیست به دیتاشیت مراجعه کن
      حالا فرق این دو تا مد اینه که تو ی compatible بایت های فایلی رو که میخوای با VS پخش کنی می ذاری رو پایه ی Dclck
      vs1003 می ذاری و VS10003 پخش میکنی اما توی اون حالت دیگه می تونی از ارتباط سریال (SPI)استفاده کنی

      دیدگاه


        #4
        پاسخ : ***کد نویسی برای VS1003 ***

        نوشته اصلی توسط mahdi-firoozi
        با سلام
        برای راه اندازی VS1003 دو تا کار باید درست انجام بشه.
        1- سخت افزار سالم که به طور صحیح در کنار هم چیده بشه و PCB درست و حسابی براش طراحی کنی ( گراند دیجیتال و آنالوگ در جای مناسب بهم وصل کنی بر اساس application note های موجود
        2- نرم افزار : که شامل یه ریست نرم افزاری VS و یه تنظیم clock است و در انتها ارسال بایت به بایت به VS است.
        VS1003 در دو مد کار می کنه اگه اشتباه نکنم یکی compatible و دیگری Native حالا اسماشو دقیقا یادم نیست به دیتاشیت مراجعه کن
        حالا فرق این دو تا مد اینه که تو ی compatible بایت های فایلی رو که میخوای با VS پخش کنی می ذاری رو پایه ی Dclck
        vs1003 می ذاری و VS10003 پخش میکنی اما توی اون حالت دیگه می تونی از ارتباط سریال (SPI)استفاده کنی
        سلام مجدد دوست عزیز
        با تشکر پاسخ دادی داشتم کم کم ناامید میشدم

        ببینید دقیقا من مشکلم با همین کد نویسیش هست که نمیدونم تو مد spi باید چطوری اطلاعات بفرستم

        میخواستم بدونم دقیقا مرحله به مرحله باید چه کارهایی بکنم که بتونم ارتباط برقرار کنم با vs و اون موقع شروع کنم به فرستادن بایت به بایت

        SAMPLE ها را نگاه کردم ولی به هیچ وجه نحوه ارتباط کارت را با SPI نمیتونم متوجه بشوم

        اگر امکانش هست دوستان مرحله به مرحله نحوه PLAY کردن mP3 را یک توضیحی بدهند

        و یک سوال مهم دیگه این که

        به این دلیل که هم sdcard و هم vs1003 هر دو با مد SPI وصل کردیم

        آیا باید برای هر دفعه اطلاعات فرستادن و خواندن بایت های فایل باید هی این SDCARD را فعال و VS1003 غیر فعال کرد و با لعکس ؟

        اگر بله یعنی باید مثلا برای خواندن اطلاعات باید بعد از خواندن از vs1003 باید اون را غیرفعال و بعد مثلا VS1003 را فعال کرد یانه ؟

        ممنون میشم در این زمینه هم راهنمایی بفرمایید ؟

        دیدگاه


          #5
          پاسخ : ***کد نویسی برای VS1003 ***

          سلام خوبین ؟
          توی سایت بسکام یه پروژه شبیه همینی که شما میخوای هست اما با vs 10 11
          lمن با خوندن اون pdfکه دوستان توی همین سابت گذاشته بودن و مربوط به vs 1003 بود تونستم اینکار رو انجام بدم
          حالا اگه میخوای که برات نمونه برنامه و احرا خط به خطش رو بذارم شاید بدردت بخوره ؟

          دیدگاه


            #6
            پاسخ : ***کد نویسی برای VS1003 ***

            نوشته اصلی توسط حسام هاشم
            سلام خوبین ؟
            توی سایت بسکام یه پروژه شبیه همینی که شما میخوای هست اما با vs 10 11
            lمن با خوندن اون pdfکه دوستان توی همین سابت گذاشته بودن و مربوط به vs 1003 بود تونستم اینکار رو انجام بدم
            حالا اگه میخوای که برات نمونه برنامه و احرا خط به خطش رو بذارم شاید بدردت بخوره ؟
            سلام هاشم عزیز

            بیشتر از همه چیز واسم منطق برنامه مهم است که بدونم چطوری از این توابعی که تو هدر هست استفاده کنم

            ممنون میشم که منطق برنامه ات را واسم یکمی باز کنی

            اگر هم امکانش هست بگی چطوری این کار را انجام دادی ؟

            ( من بسکام کار نکردم ولی با Codevision کار کردم ولی اگه منطق اش را بفهمم فکر میکنم مشکل اصلی ام حل بشه )

            دیدگاه


              #7
              پاسخ : ***کد نویسی برای VS1003 ***

              منتظر راهنمایی دوستان هستیم :smile: :smile:

              دیدگاه


                #8
                پاسخ : ***کد نویسی برای VS1003 ***

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

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

                ولی یک صدای کاملا گنگ و نامفهومه و به هیچ وجه قابل فهم نیست ( خر خر و خش خش میکنه )

                و در آخر هم گیر میکنه به نظرتون مشکل از کجا میتونه باشه ؟

                دیدگاه


                  #9
                  پاسخ : ***کد نویسی برای VS1003 ***

                  نوشته اصلی توسط lionheart
                  با تشکر از دوستان که بنده را راهنمایی کردند

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

                  ولی یک صدای کاملا گنگ و نامفهومه و به هیچ وجه قابل فهم نیست ( خر خر و خش خش میکنه )

                  و در آخر هم گیر میکنه به نظرتون مشکل از کجا میتونه باشه ؟
                  منتظر راهنمایی های دوستان عزیز خواهیم بود :rolleyes: :rolleyes: :rolleyes:

                  دیدگاه


                    #10
                    پاسخ : ***کد نویسی برای VS1003 ***

                    سلام دوست عزیز وقتت بخیر و شادی
                    می بخشی که دیر شد نبودم
                    اگه از من میشنویی اون فایل و برنامه پیشنهادی بسکام رو دانلود کن منم از روی همون بهت توضیح میدم .و همجنین ترجمه کاتا لوگ VS1003 سرچ کن تو سایت پیدا میکنین اگه نشد بگین من بذارم براتون
                    '$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

                    ' Led Alias Portb.6
                    Led Alias Portc.4
                    ' Xreset Alias Portb.7
                    Xreset Alias Portd.7

                    ' Dreq Alias Pine.2
                    Dreq Alias Pind.6
                    '1
                    ' Xdcs Alias Porte.3
                    Xdcs Alias Portd.5
                    '4
                    ' Xcs Alias Porte.4
                    Xcs Alias Portd.4
                    '11
                    ' Vs_clock Alias Porte.5
                    Vs_clock Alias Portd.3
                    ' 12
                    ' Vs_mosi Alias Porte.6
                    Vs_mosi Alias Portd.2
                    '13
                    ' Vs_miso Alias Pine.7
                    Vs_miso Alias Pind.1
                    '14
                    ابن پایه های فرمان مبروط به vs هست .همه ورودی و هم خروجی

                    Config Led = Output 'led
                    Config Vs_miso = Input 'serial input vs-1001
                    Config Vs_mosi = Output 'serial out vs-1001
                    Config Vs_clock = Output 'serial clock vs-1001
                    Config Xcs = Output 'VS Chip Select
                    Config Xreset = Output 'VS Reset
                    Config Dreq = Input 'VS Data Request
                    Config Xdcs = Output 'VS Stream Request

                    اینم توضیح در مورد عملکرد پایه ها
                    Declare Sub Vs_init()
                    اینم معرفی برنامه مربوط به ایننشیالیشن معرفی و مقدار دهی اولیه vs
                    Const Vs_rd = &B0000_0011 - مقدار ثابت برای نوشتن در vs-یعنی برای اینکه بخواین مقدار برای اجرا به vs بفرستین باید به vsبگین که این مقدار مربوط به فرمان خودش هست یا فایل صوتی
                    Const Vs_wr = &B0000_0010 - این مقدار ثابت برای خوندن شرایط vs
                    Const Vs_mode = 0
                    Const Vs_status = 1
                    Const Vs_clockf = 3
                    Const Vs_decode_time = 4
                    Const Vs_audata = 5
                    Const Vs_volume = 11
                    Const Vs_bass = 2
                    اینجا به صورت سخت افزاری vs رو ریست میکنیم
                    Xdcs = 1
                    Xreset = 0
                    Xcs = 1
                    قبل از اجرای برنامه اصلی باید به صورت نرم افزاری هم vsرو ریست کنید و حالت اولیه برای کار به صورت فراخوانی تابع
                    Vs_init
                    اینم برنامه مربوط به مفدار دهی اولیه :
                    '------------------------------- RESETTA E INIZILIZZA ---------------------------------------------------------------------------------------------------------------------------
                    '----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
                    Sub Vs_init()
                    Xreset = 0
                    Waitms 1
                    Xreset = 1
                    Waitms 1

                    Do

                    Loop Until Dreq = 1
                    باید بعد از هر دستور ارسالی به vs lمنتظر بشین تا پایه مربوط به پاسخ vs 1 شود برای دستور بعدی اماده هست
                    اینجا اسم اون پایه هستDreq
                    Vs_write Vs_mode , &H8 , &H0 'reset
                    Do
                    Loop Until Dreq = 1
                    این دستور Vs_write فراخوانی تابع نوشتن در vsکه بعد از توضیح این برنامه برات توضیح میدم
                    این دستور Vs_mode همون مقدار ثابت حالت vs هست که بالا مقدارش هست و به vs ارسال میشه
                    این مقداری هست که برای vs ارسال میشه &H8 , &H0 &
                    توضیحش رو هم اگه لازم هست بگین در خدمتم
                    Vs_write Vs_clockf , &H0 , &H0 'clockf 24,xx MHz
                    Do
                    Loop Until Dreq = 1
                    این دستور Vs_write فراخوانی تابع نوشتن در vsکه بعد از توضیح این برنامه برات توضیح میدم
                    این دستور Vs_clockf همون مقدار ثابت حالت vs هست که بالا مقدارش هست مقدار 24 mhzتنظیم میشه و به vs ارسال میشه
                    این مقداری هست که برای vs ارسال میشه &H8 , &H0 &

                    Vs_write Vs_volume , &H0 , &H0 'volume =0 massimo
                    Do
                    Loop Until Dreq = 1
                    این دستور Vs_write فراخوانی تابع نوشتن در vsکه بعد از توضیح این برنامه برات توضیح میدم
                    این دستور Vs_volume همون مقدار ثابت حالت vs هست که بالا مقدارش هست مقدار خروجی صدا در حداکثر تنظیم میشه و به vs ارسال میشه
                    این مقداری هست که برای vs ارسال میشه &H8 , &H0 &
                    Vs_write Vs_bass , &HFE , &H0
                    Do
                    Loop Until Dreq = 1
                    این دستور Vs_write فراخوانی تابع نوشتن در vsکه بعد از توضیح این برنامه برات توضیح میدم
                    این دستور Vs_bass همون مقدار ثابت حالت vs هست که بالا مقدارش هست مقدار خروجی حالت bas تنظیم میشه و به vs ارسال میشه
                    این مقداری هست که برای vs ارسال میشه &H8 , &H0 &
                    End Sub
                    '_--------------------------------------------------------------------------------------------------------------------------------------------
                    اینم برنامه مربوط به نوشتن در vs
                    مثلا با اجرای دستور Vs_write Vs_volume , &H0 , &H0 'volume =0 massimo
                    مقدار Vs_volume درمتغییر Vs_address قرار میگیرد
                    مقدار H0درمتغییر Data1 قرار میگیرد کم ارزش
                    مقدار H0 درمتغییر Data2 قرار میگیرد پر ارزش

                    Sub Vs_write (byval Vs_address As Byte , Byval Data1 As Byte , Byval Data2 As Byt)e

                    Xcs = 0
                    B = Vs_wr
                    Shiftout Vs_mosi , Vs_clock , B , 1
                    Shiftout Vs_mosi , Vs_clock , Vs_address , 1
                    Shiftout Vs_mosi , Vs_clock , Data1 , 1
                    Shiftout Vs_mosi , Vs_clock , Data2 , 1
                    Xcs = 1
                    End Sub
                    نیازی هست که این برنامه و شیوه ارسال رو توضیح بدم؟
                    اگر بدردتون میخوره که ادامه بدم تا بتونیم سیستم شما رو هم راه اندازی کنیم به هر حال در خدمتیم اگه کاری از دستمون بر میاد .

                    دیدگاه

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