چالاش شماره ۱ - ساخت پخش کننده موسیقی با ZYNQ - Taksun
گروه صنعتی تکسان
FPGA,ZYNQ,SoC,VIVADO,VHDL,HLS,System Generator, ISE,XILINX,ARM,STM32, آموزش، طراحی، الکترونیک، ساخت، مشاوره
1821
rtl,post-template-default,single,single-post,postid-1821,single-format-standard,locale-fa-ir,mkd-core-1.1,woocommerce-no-js,ajax_updown_fade,page_not_loaded,,burst-ver-1.7, vertical_menu_with_scroll,smooth_scroll,grid_1300,woocommerce_installed,blog_installed,wpb-js-composer js-comp-ver-5.5.4,vc_responsive
 

چالاش شماره ۱ – ساخت پخش کننده موسیقی با ZYNQ

چند وقتی بود به برگزاری چالش در زمینه FPGA و ZYNQ فکر میکردیم اما نگران بودیم با مشغله بالای کاری نتونیم  چالش رو انجام بدیم و یا و مدیریت کنیم. ولی به پیشنهاد اعضای گروه تکسان در تلگرام یک چالش رو امتحان کنیم ببینیم چطور پیش میره

در این سری از چالش های طراحی هدف استفاده از امکانات مر کاربرد FPGA و ZYNQ و همین طور روشها و IP Core های زایلینکس هست. اعتقاد خودم بهترین مدل یادگیری در روند پروژه اتفاق میفته. در این سری از چالش به دنبال آموزش کاربردی ZYNQ و FPGA به صورت پروژه محور هستیم. چالش ها میتونن فارغ از نوع برد باشن و سعی میکنیم از برد های S9 که در سایت هم بزای فروش هستند و بسیار ارزان هستند استفاده کنیم. تا همه بتونن سخت افزار رو تهیه کنن.

قصد داریم مدیریت انجام چالش رو بیشتر به بچه های گروه بسپاریم و مشارکت بیشتری در گروه اتفاق بیفته. مشارکتی از جنس حرفه ای و کاری با ابزارهای متناسب خودش که ترجیح میدیم فعلا از github استفاده بشه.در مورد موضوع اولین چالش باید بگم امیدوارم سطح چالش  برای شروع شروع خوب باشه. شاید یکم سطحش برای بعضی از اعضا  بالا و یا پیش پا افتاده باشه ولی نکات بسیار مهمی رو این چالش دنبال میکنه:

  • کار با uSD
  • بازکردن فایل WAV و دسترسی به داده های فایل صوتی
  • انتقال داده ها از PS به PL از طریقHP و کار با axi dma
  • ساخت IP با VHDL با ورودی AXIS و خروجی PWM
  • اضافه کردن فیلتر و دریافت سیگنال آنالوگ
  • کار با git و کار گروهی

توضیحات پروژه به صورت گرافیکی:

توضح کوتاه پروژه:

یک فایل wav در microSD قرار میدیم. فایل wav بدون فشرده سازی است و به صورت منو و ۱۶ بیتی داده ها رو ذخیره میکنیم. فایل رو در اولین مرحله به صورت bare-metal در ps باز میکنیم. اطلاعات صوتی رو در RAM DDR3 بار گذاری میکنیم. سپس توسط DMA از طریق پورت HP داده ها رو از DDR3به PL منتقل میکنیم. در ادامه یک IP با کد VHDL می‌نویسیم در این کد ورودی S_AXIS وجود داره که داده ها رو از AXI DMA دریافت میکنه. فرکانس Sampling باید با فرکانس فایل wav یکسان باشه. پیشنهاد استاندارد ۲۲۰۵۰ رو برای Sampling میدم. این ip با هر داده یک pwm تولید میکند که روی یک پایه fpga تولید میشود. در نهایت با یک فیلتر پایین گذر میشه صدا رو از این این پایه pwm تولید کرد و در هدفون یا با آمپلیفایر در بلندگو شنید.

در فاز های بعدی میتونیم این کد رو از منو به استریو تبدیل کنیم ویا اینکه در لینوکس استفاده کنیم تا بجز wav بتونیم از mp3 هم استفاده کنیم‌

پیشنهاد میدم پروژه به چند بخش بالا شکسته بشه و تیکه تیکه انجام بشه
سعی میکنم چند روز آینده برای بخش های مختلف پروژه در github ریپازیتوری بسازم.

اگر یکی از دوستان هم مسئولیت مستند سازی این پروژه و ساخت فایل برد word و md برای git رو به عهده بگیره بسیار عالی میشه.

لایو اول:

 

 

ریپازیتوری (مخازن پروژه) در GitHub

پروژه در GitHub

پروژه بخش PS جهت خواندن wave file و راه اندازی AXI DMA

IP Core بخش PL و PWM DAC با رابط AXIS

پروژه VIVADO به همراه AXI DMA و PWM DAC

بدون ديدگاه

با عرض پوزش، فرم دیدگاه در این زمان بسته شده است.