پرش به


تصویر

FPGArduino - پیوندی دیگر با آردوینو!

FPGArduino Arduino

  • لطفا وارد حساب کاربری خود شوید تا بتوانید پاسخ دهید
28 پاسخ برای این موضوع

#1 mahmoud

mahmoud

    Administrator

  • مدیریت انجمن
  • 100 ارسال

ارسالی 28 February 2016 - 07:03 PM

پازجی ها سلام!

 

پس از تجربه ی موفق و جذابی که در پورت کردن آردوینو روی Microblaze_mcs داشتیم (اینجا)، اکنون نوبت آن است که یکی دیگر از راه حل های موجود و کم دردسر برای داشتن یک بورد آردوینویی مجهز به FPGA را تجربه کنیم.

این بار قصد داریم با کمک یکدیگر، "پازج-یک" را به FPGArduino تجهیز کنیم! FPGArduino نام پروژه ای است که میکوشد تا محیط ساده و پرطرفدار Arduino را برای برنامه ریزی بوردهای FPGA به کار گیرد. درست همانند آنچه در پروژه ی "آردوینو روی میکروبلیز" داشتیم، در اینجا نیز از یک میکروکنترلر پیاده سازی شده درون FPGA جهت اجرای کدهای آردوینو بهره خواهیم برد، با این تفاوت که به جای "میکروبلیز"، این بار از هسته ی پردازشی f32c CPU core استفاده میکنیم که یک هسته ی پردازشی 32 بیتی با قابلیت های بالا است. در حال حاضر f32c بر اساس دو معماری مختلف (MIPS و RISC-V) پیاده سازی شده است که بسته به سلیقه تان از هر یک از آنها میتوانید استفاده کنید.

 

توضیحات کلی در رابطه با پروژه ی FPGArduino و نحوه ی پورت کردن آن روی یک بورد FPGA دلخواه را میتوانید در وبسایت آن مطالعه کنید. همزمان با اجرای کار سعی خواهم کرد گزارشی از نحوه ی انجام این کار را به صورت مرحله به مرحله در این تاپیک ارائه کنم. با دنبال کردن این تاپیک میتوانید از آخرین وضعیت پیشرفت این کار آگاه شوید.

 

 


  • moonice, M.Sadeghi و sarbaz13 این پست را پسندیده است

#2 mahmoud

mahmoud

    Administrator

  • مدیریت انجمن
  • 100 ارسال

ارسالی 19 March 2016 - 01:18 PM

طبق قولی که داده بودم در این پست گزارشی از وضعیت پیشرفت پروژه ی پورت کردن FPGArduino روی بورد پازج ارائه میکنم.

در گام اول لازم بود تا تعاریف بورد و پارامترهای آن به محیط Arduino IDE معرفی شود تا پازج به لیست بوردهای موجود در آردوینو اضافه شود. قبلا در پروژه ی پورت Microblaze روی Arduino این کار را با کپی کردن فایل های تعاریف بورد بصورت دستی در پوشه ی محل نصب Arduino انجام دادیم. اما این روش، روش قدیمی و منسوخ شده ای است و این بار این کار را با استفاده از board manager داخل arduino (موجود در منوی tools -> board -> board manager) انجام میدهیم. مقدمات لازم برای انجام این کار قبلا انجام پذیرفته است. برای این کار ابتدا با باز کردن نرم افزار آردوینو و رفتن به منوی file و انتخاب preferences، عبارت زیر را در فیلد additional board manager url وارد نمایید:
http://www.nxlab.fer...core_index.json

 

اکنون کافیست تا با گشودن پنجره ی board manager و جستجوی عبارت FPGArduino، این بسته را نصب نمایید. در حال حاضر پازج بصورت رسمی توسط FPGArduino پشتیبانی میشود! لذا پس از اتمام نصب FPGArduino بورد posedge_one را در لیست بوردها مشاهده خواهید کرد.

 

 

تست اولیه... LED چشمک زن و پورت سریال!

باز هم مانند همیشه اولین کاری که برای تست سیستم انجام میدهیم، روشن، خاموش کردن یک LED است. قبل از انجام این کار بایستی bootloader ی که دربردارنده ی f32c و ابزارهای جانبی دور و بر آن است را روی FPGA پروگرام کنیم. این کار را با انتخاب گزینه ی tools -> burn bootloader انجام میدهیم. اکنون آماده ایم تا کد آردوینوی چشمک زدن LED را بنویسیم. برای این کار کافیست تا با باز کردن پروژه ی نمونه ی Blink از منوی file -> example -> basics شماره پین متصل به LED از 13 به 32* تغییر دهیم و در نهایت کد را روی بورد Upload کنیم. اکنون با اتصال بال LED به قسمت بالایی کانکتور A انتظار داریم تا LED شروع به چشمک زدن کند. با اجرای موفقیت آمیز این قسمت از کار میتوانیم از صحت GPIO ها و timer مطمئن شویم. برای بررسی وضعیت uart هم میتوانید مثال ASCII table را از قسمت Examples -> Communications اجرا کنید و نتیجه را مشاهده کنید.

 

* در پورتی که انجام داده ایم پین های 32 تا 47 آردوینو را به پین های 1 تا 16 کانکتور A و پین های 48 تا 63 آردوینو به ترتیب به پین های 1 تا 16 کانکتور B متصل شده اند.

 

در ادامه:

در ادامه قصد داریم تا با غنی تر کردن مجموعه peripheral های متصل به soft-core، امکانات جالبتری مثل نمایش متن و تصویر روی پورت VGA و یا ارسال اطلاعات RDS (یا همان Radio Data System) روی موج FM بپردازیم.

 

با ما همراه باشید...


  • moonice این پست را پسندیده است

#3 moonice

moonice

    newbie

  • کاربر عادی
  • ستاره
  • 2 ارسال

ارسالی 19 March 2016 - 01:56 PM

سلام

خسته نباشید مهندس

متاسفانه وقتی FPGArduino رو در برد منیجر جستجو میکنم نتیجه ای برام نمیاره...

چه باید کرد؟!



#4 mahmoud

mahmoud

    Administrator

  • مدیریت انجمن
  • 100 ارسال

ارسالی 19 March 2016 - 04:35 PM

سلام

خسته نباشید مهندس

متاسفانه وقتی FPGArduino رو در برد منیجر جستجو میکنم نتیجه ای برام نمیاره...

چه باید کرد؟!

ببخشید فراموش کرده بودم این نکته را بگم. بایستی ابتدا از طریق منوی file -> preference، عبارت زیر را در فیلد additional board manager url وارد کنید:
http://www.nxlab.fer...core_index.json

 

پست اصلی ویرایش شد.


  • moonice این پست را پسندیده است

#5 mahmoud

mahmoud

    Administrator

  • مدیریت انجمن
  • 100 ارسال

ارسالی 20 March 2016 - 04:16 PM

ظاهرا فایل bootloader مربوط به برد پازج-1 که در حال حاضر در Board Manager آردوینو وجود دارد ایرادی دارد و گزینه ی Burn Bootloader به درستی عمل نمیکند که این مورد در اولین فرصت اصلاح میشود. در این فاصله چنانچه دوستان عزیز تمایل به امتحان کردن این پروژه دارند، لازم است تا فایل .bit زیر را بصورت دستی (از طریق Impact یا MiniSProg) روی FPGA پروگرام کنند و سپس اقدام به آپلود پروژه آردوینوی خود روی بورد نمایند.

لازم به ذکر است موارد زیر در این Bootloader پشتیبانی میشود:

- GPIO

- Timer

- Uart

 

همانطور که در پست قبلی اشاره کردم در حال حاضر بوت لودر جدیدی در حال آماده سازی است که رنج وسیع تری از Peripheral ها را پشیتبانی میکند. اطلاع بیشتر در رابط با روند پیشرفت این پروژه را میتوانید در صفحه ی پروژه در سایت Github پروژه دنبال کنید.

 

 

فایل های پیوستی


  • moonice این پست را پسندیده است

#6 Amin

Amin

    newbie

  • کاربر عادی
  • ستاره
  • 0 ارسال

ارسالی 20 March 2016 - 07:15 PM

سلام 

آیا از هر پایه ای  می توان برای analog write استفاده کرد یا فقط پایه های خاصی هست؟

چون من بلینک را با پایه ی A1 اجرا کردم و کار میکنه ولی مثالهای آنالوگ رایت مثل dimmer یا Fade کار نکرد  :(

آیا اصلا قابلیت استفاده از analog write وجود دارد؟



#7 mahmoud

mahmoud

    Administrator

  • مدیریت انجمن
  • 100 ارسال

ارسالی 21 March 2016 - 05:17 PM

در Bootloader فعلی Analog Write ساپورت نمیشه. خوب شد اشاره کردین، انشاءالله در نسخه ی بعدی Bootloader این امکان را اضافه خواهیم کرد.



#8 mahmoud

mahmoud

    Administrator

  • مدیریت انجمن
  • 100 ارسال

ارسالی 25 March 2016 - 08:37 AM

سلام خدمت مهندسین گرام!

اولا از اینکه دوستان نسبت به این پروژه علاقه نشون میدهند و پیگیری میکنند خیلی خوشحال هستم. جای امیدواری است که این همکاری ها به کارهای بزرگتر و جالبتر ختم شود. و اما بعد...

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

 

قبل از هر چیزی مروری داشته باشیم بر وضعیت فعلی کار تا بدانیم کجای کار هستیم:

 

هدف:

ما داریم میکوشیم تا بورد پازج را Arduino-Compatible کنیم. با این کار میتوانیم محیط توسعه ی ساده و فراگیر آردوینو را روی یک پلتفرم قوی تر و با امکانات بسیار وسیعتر نسبت به یک بورد آردوینوی میکرویی اجرا کنیم؛ امکاناتی مثل خروجی تصویر VGA و HDMI، شتابدهنده گرافیکی، فرستنده FM، کنترل کننده ی PID با دقت بسیار بالا، انواع اینترفیس های ارتباطی و ... که همه ی اینها را یک هسته ی سافت-کور 32 بیتی به اسم f32c میچرخاند!

 

کجای کاریم؟

این پروژه مشتمل بر دو بخش است:

بخش اول: آماده سازی محیط Arduino-IDE و تعریف مشخصات سخت افزار مورد نظر (پازج-یک) برای آن است. اگر Arduino-IDE را روی سیستم خود نصب کرده باشید، فایلی به اسم boards.txt در مسیر

{ARDUINO}/hardware/arduino/boards.txt

(که {ARDUINO} نمایانگر مسیر نصب نرم افزار Arduino است) را ملاحظه خواهید کرد که حاوی تعاریف بوردهای ساخته شده توسط خود Arduino (مثل Uno، DUE، Leonardo و ...) می باشد. این فایل علاوه بر تعریف پارامترهای سخت افزاری بورد، مواردی مثل مسیر کامپایلر، linker-script، نحوه ی کامپایل کد، پروگرامر و ... (که همه ی اینها تحت عنوان Toolchain پلتفرم مورد نظر شناخته میشوند) را شامل میشود.

گام اول برای شناساندن سخت افزار به آردوینو ساختن فایلی با فرمت مشابه این برای بورد پازج است. خوشبختانه قسمت عمده ی این کار انجام شده و طی رایزنی هایی که با تیم FPGArduino به عمل آمد، هم اکنون بورد پازج-یک بطور رسمی توسط این پلتفرم پشتیبانی میشود. در حال حاضر با نصب پکیج FPGArduino توسط Board manager موجود در آردوینو (مطابق توضیحات مندرج در این پست) بورد پازج-یک (posedge-one) بعنوان یکی از بوردهای این پلتفرم برای محیط آردوینو قابل شناسایی و انتخاب است. برای مشاهده ی تعاریف بورد پازج و سایر بوردهای موجود در FPGArduino پس از نصب این پکیج میتوانید فایل موجود در مسیر زیر را مشاهده کنید:

C:\Users\{USER}\AppData\Local\Arduino15\packages\FPGArduino\hardware\f32c\1.0.0\tools\boards-manager

که {USER} نام کاربری شما در سیستم عامل ویندوز است. چنانچه ایده ای برای بهبود این قسمت از کار دارید میتوانید با ارسال یک pullRequest در صفحه ی مربوط به این پروژه در سایت Github این کار را انجام دهید.

 

قسمت دوم این پروژه مربوط به آماده سازی بستر سخت افزاری روی FPGA است که در ادبیات آردوینویی به آن Bootloader گفته میشود. Bootloader از دیدگاه ما FPGA ی ها، فایل .bit خروجی پروژه ای است که شامل هسته ی f32c و peripheral های دلخواهی است که به آن وصل کرده ایم. این فایل بایستی در پوشه ی 

C:\Users\{USER}\AppData\Local\Arduino15\packages\FPGArduino\tools\bootloaders\1.0.0\posedge1

قرار داده شود تا با انتخاب گزینه ی Tools -> Burn Bootloader در آردوینو روی FPGA پروگرام شود. پس از پروگرام شدن (burn شدن) فایل بوت لودر روی FPGA، کاربر میتواند کد آردوینوی خود را روی پازج آپلود کند و از آن بعنوان یک بورد آردوینویی استفاده کند.

در حال حاضر بخش های اولیه ی این قسمت از پروژه راه اندازی شده است. مواردی مثل

- UART

- GPIO 

- SRAM

- FM/RDS

- VGA Textmode

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

پروژه ی ISE مروبط به بورد پازج در مسیر 

/rtl/proj/xilinx/posedge_one_bram

و

/rtl/proj/xilinx/posedge_one_bram_logix1

قرار گرفته است که اولی مخصوص بورد پازج (بدون هیچگونه بال اضافی) و دومی مخصوص بورد پازج در حالتی است که مگاوینگ logix1 روی آن قرار گرفته باشد (هر دو پروژه یکسان بوده و تنها تفاوت مختصری در Pinout آن ها وجود دارد.)

 

چنانچه تغییری در پروژه ی بوت لودر ایجاد کردید و مایل به تست آن بودید میتوانید فایل .bit آنرا مستقیما روی FPGA پروگرام کنید (از طریق Impact یا MiniSProg) و سپس در محیط آردوینو با انتخاب بورد پازج کد آردوینویی خود را روی آن آپلود کنید و نتیجه را مشاهده کنید. توجه داشته باشید که در این حالت نیازی به اجرای Burn Bootloader ندارید چرا که بوت لودر را بصورت دستی روی بورد ریخته اید.

 

مشتاقانه منتظر فیدبکها و اصلاحات پیشنهادی شما در این رابطه هستم. لطفا چنانچه هر گونه سوال و یا ابهامی در این رابطه داشتید در ادامه ی همین تاپیک مطرح فرمایید.

 


  • moonice و M.Sadeghi این پست را پسندیده است

#9 mahmoud

mahmoud

    Administrator

  • مدیریت انجمن
  • 100 ارسال

ارسالی 26 March 2016 - 12:53 PM

یکی از کورهای جالب موجود در پکیج FPGArduino، کور Xark VGA است که قابلیت نمایش متن و تصاویر bitmap روی خروجی VGA را دارد. کار کردن با این کور بسیار ساده بوده و چند نمونه پروژه نمونه آن در مسیر file > Examples > f32c_Vga_textconsole قابل ملاحظه است.

در ادامه تصاویری از نتیجه اجرای برخی از این مثالها قرار گرفته است:

 

uqk_untitled.jpg

 

hvq4_photo_2016-03-26_17-13-49.jpg

 

fenx_photo_2016-03-26_17-13-45.jpg

 

fv5j_photo_2016-03-26_17-13-42.jpg


  • mahdichi, moonice و M.Sadeghi این پست را پسندیده است

#10 moonice

moonice

    newbie

  • کاربر عادی
  • ستاره
  • 2 ارسال

ارسالی 29 March 2016 - 04:19 PM

سلام خسته نباشید 
مهندس من تمام روال بالا رو انجام دادم ولی میخوام یک مثال آپلود کنم روی برد با ارور زیر رو به رو میشم

ممنون میشم راهنماییم کنید

 

فایل های پیوستی



#11 mahmoud

mahmoud

    Administrator

  • مدیریت انجمن
  • 100 ارسال

ارسالی 29 March 2016 - 06:26 PM

مهندس جان این خطا به خاطر وجود یک ایرادی در Bootloader هست.

لطفا مطمئن بشید که:

1- فایل بوت لودر صحیح را انتخاب کرده باشید.

2- بوت لودر روی FPGA پروگرام شده باشد.

 

برای این کار:

در آرشیو پروژه که از اینجا دانلود کرده اید:

* در صورتی که از مگاوینگ logix1 استفاده میکنید به مسیر : /rtl/proj/xilinx/posedge_one_bram_logix1

* و در صورتی که بورد را بدون مگاوینگ استفاده میکنید به مسیر: /rtl/proj/xilinx/posedge_one_bram

 

 رفته و پس از باز کردن پروژه ی ise موجود در این پوشه ها و سپس سنتز و اجرای آن فایل .bit حاصل از این کار (که همان بوت لودر مورد نظر است) را روی FPGA و یا Flash موجود روی بورد پروگرام کنید.



#12 moonice

moonice

    newbie

  • کاربر عادی
  • ستاره
  • 2 ارسال

ارسالی 29 March 2016 - 10:09 PM

همه این کارا رو کردم

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

ولی توی خود نرم افزار اردینو وقتی بردو انتخاب میکنم اصلا گزنه پورت فعال نمیشه که مثلا COMX  رو انتخاب کنم...



#13 mahmoud

mahmoud

    Administrator

  • مدیریت انجمن
  • 100 ارسال

ارسالی 30 March 2016 - 05:14 AM

خب این موردی که میگین اصلا ربطی به بوت لودر و نرم افزار Arduino نداره، مشکلی توی اتصال بورد وجود داره. یا بورد درست متصل نشده و یا نرم افزار دیگری (مثل Impact) بازه و پورت را مشغول کرده. همچنین این احتمال وجود داره که قبلا مود عملکرد usb را از حالت uart به fifo تغییر داده باشید (برای پروژه ارتباط usb پر سرعت). 

چنانچه همه چیز درست باشد، بایستی در Device Manager، یک پورت COM به اسم Usb serial port داشته باشید.



#14 mahmoud

mahmoud

    Administrator

  • مدیریت انجمن
  • 100 ارسال

ارسالی 07 April 2016 - 02:46 PM

در این پست میخواهیم بوت لودر بورد تنها (بدون مگاوینگ) را بیشتر بررسی کنیم.

 

قبل از هر چیز سورس پروژه را از آدرس زیر دانلود (و یا در صورتی که با Git کار میکنید fetch) نمایید.

https://github.com/m..._one_bram_sram8

 

پس از دانلود پروژه به مسیر زیر که حاوی پروژه ی ISE مربوط به بوت لودر است میرویم:

/rtl/proj/xilinx/posedge_one_bram

با اجرای فایل .xise موجود در این پوشه، پروژه ی ISE مربوطه اجرا میشود. ساختار کلی طرح بدین صورت است:

 

knt_fpgarduino_hirearchy.png

 

همانطور که مشاهده میکنید در top_module ماژول تولید کلاک و ماژول soc (شامل پردازنده f32c و Peripheral های متصل به آن) قرار دارند.

با نگاهی به ساختار این فایل به تعداد زیادی generic (یا همان parameter در اصطلاح وریلاگ) برخورد میکنیم که جهت پیکره بندی و سفارشی سازی soc در نظر گرفته شده اند. پارامترهایی مانند فرکانس کاری، معماری، میزان حافظه، نوع و تعداد peripheral ها (سریال، SPI، GPIO، خروجی تصویر، فرستنده FM/RDS، کنترلر PID و ...) همه و همه در این ماژول تنظیم شده و به ماژول soc اعمال میشوند.

 

ماژول کلاک (clkgen25):

ماژول کلاک وظیفه ی تولید کلاک های مورد نیاز soc را دارد. ورودی این ماژول کلاک 24MHz روی بورد و خروجی آن چهار پالس ساعت با فرکانس های 25MHz (برای ماژول VGA) و 100MHz (برای پردازنده f32c) و 250MHz (برای HDMI/DVI و همچنین فرستنده FM) است.

 

ماژول soc (با نام glue_sram):

این در برگیرنده ی سافت کور f32c (با نام pipeline در طرح فوق) و Peripheral های متصل به آن است. کند و کاو دقیق این ماژول بیشتر از هر چیز نیازمند داشتن دیدی کلی از ساختار Programmable System On Chip یا PSOC است. در فصل های آخر کتاب Embedded Core Design with FPGA نوشته ی دکتر زین العابدین نوابی مطالب بسیار مفیدی در این رابطه ذکر شده که مطالعه آن به عزیزان علاقمند توصیه میشود.

 

ماژول Pipeline، آنگونه که اشاره شد حاوی هسته ی مرکزی پردازنده ی f32c است که بررسی جزئیات آن نه مورد نیاز است و نه در حوصله ی این نوشته که اگر هم بود از تخصص بنده خارج بود! کند و کاو این ماژول به دانشجویان معماری بشدت توصیه میشود.

 

سایر ماژول ها نیز توصیف سخت افزاری Peripheral های متصل به سافت-کور است. بعنوان نمونه:

sram8: یک sram_controller جهت خواندن و نوشتن در sram است.

sio: یا همان (serial IO) ماژول ارتباط سریال UART است.

vga_textmode: یک VGA_Controller با قابلیت نمایش متن است. تصاویری از عملکرد این ماژول در چند پست قبلتر قرار داده شده است.

videofifo_bram: یک VGA_Controller دیگر با قابلیت های متفاوت. نیازمند بررسی بیشتر!

dvid_out: خروجی HDMI/DVI برای ماژول vga_textmode

fm: فرستنده FM با قابلیت RDS

bram: حافظه ی block ram مورد نیاز جهت ذخیره ی data و instructions ها.

debug: ماژول Debug جهت دیباگ کد نوشته شده برای پردازنده.

 

کلیه ی peripheral ها بصورت Memory Mapped به پردازنده اصلی متصل شده اند. به این معنی که هر peripheral یک فضای آدرس مخصوص به خود را دارد که پردازنده برای ارسال اطلاعات (write) به آن peripheral خاص در قسمتی از فضای آدرس آن اطلاعات را نوشته و بالعکس Peripheral مذکور نیز برای ارسال اطلاعات به پردازنده (read) در قسمت دیگری از آن فضای آدرس اطلاعات برگشتی را مینویسد. بعنوان نمونه تکه کد زیر قسمتی از کد موجود در ماژول glue_sram است که مربوط به تعریف فضای آدرس ماژول سریال میباشد:

 
-- Serial I/O (RS232)
constant iomap_sio: T_iomap_range := (x"FB00", x"FB3F");

 

فضای آدرس دهی (address map) مربوط به soc در کامنتهای بالای ماژول نمایش داده شده است که البته نیاز به اصلاحات جزئی دارد (به دلیل اضافه کردن برخی ماژول های جدید مثل fm_rds و حذف برخی ماژول ها مثل ADC).


  • moonice این پست را پسندیده است

#15 mahmoud

mahmoud

    Administrator

  • مدیریت انجمن
  • 100 ارسال

ارسالی 07 April 2016 - 03:15 PM

در ادامه ی پست قبلی...

در حال حاضر کانفیگ این بوت لودر بدین صورت است:

 

فرکانس کاری: 100 مگاهرتز

معماری: MIPS

قابلیت دیباگ: غیرفعال

حافظه cache دیتا: 2 کیلوبایت

حافظه cache آدرس: 2 کیلوبایت

اینترفیس سریال: 1 عدد

اینترفیس SPI: دو عدد

اینترفیس gpio: سی و دو (32) عدد

اینترفیس simple_in و Simple_out: هر کدام 32 عدد (Simple_in و simple_out در واقع همان GPI و GPO هستند که برخی فانکشن ها مثل Interrupt را ندارند و  معمولا برای اتصال ابزارهایی مثل LED و کلید استفاده میشود).

اینترفیس vga/hdmi: غیرفعال - این اینترفیس با اینترفیس vga_textmode تداخل دارد و تنها یکی از آنها میتواند فعال باشد.

اینترفیس Vgatext: فعال

اینترفیس fm/rds: فعال 

 

نحوه ی نگاشت ورودی/خروجی ها روی پین های موجود روی بورد بدین صورت است (با توجه به top_module و فایل ucf):

  • uart و spi_0 و Sram به ترتیب به مبدل سریال به usb، حافظه ی فلش و SRAM روی بورد متصل هستند.
  • خروجی Simple_out[7:0] به پین های A1 تا A8 پین هدر A
  • ورودی simple_in[7:0] به پین های A9 تا A16 پین هدر A
  • GPIO[7:0] به پین های B1 تا B8 پین هدر B
  • خروجی آنتن FM/RDS به پین B16 پین هدر B.
  • اینترفیس SPI_1 به پین های B10 تا B13 به شرح ذیل
"spibus_sck"   =>  pin B10
"spibus_si" => pin B11 
"spibus_so"  => pin B12
"spibus_cen"   => pin B13

  • moonice این پست را پسندیده است

#16 mistery

mistery

    newbie

  • کاربر عادی
  • ستاره
  • 0 ارسال

ارسالی 07 April 2016 - 04:29 PM

Hi to all, I see you have made lots of progress with FPGArduino. I do not know much about FPGA but if I can somehow help let me know


  • mahmoud این پست را پسندیده است

#17 moonice

moonice

    newbie

  • کاربر عادی
  • ستاره
  • 2 ارسال

ارسالی 07 April 2016 - 09:36 PM

واقعا ممنون از توضیحات خوب شما...

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

روی چه چیز هایی باید کار شود؟


  • mahmoud این پست را پسندیده است

#18 mistery

mistery

    newbie

  • کاربر عادی
  • ستاره
  • 0 ارسال

ارسالی 08 April 2016 - 07:46 AM

I see that your board is similar to numatoV2 so you should be able to get working all things that work on numato board, I have tested VGA, HDMI, FM, RDS, I2C, SD CARD,boulder game sample on VGA and HDMI, problem is that only EMARD can help you to support SDRAM on your board


  • mahmoud, sigma_mx و SajjadNouri این پست را پسندیده است

#19 mahmoud

mahmoud

    Administrator

  • مدیریت انجمن
  • 100 ارسال

ارسالی 08 April 2016 - 04:37 PM

I see that your board is similar to numatoV2 so you should be able to get working all things that work on numato board, I have tested VGA, HDMI, FM, RDS, I2C, SD CARD,boulder game sample on VGA and HDMI, problem is that only EMARD can help you to support SDRAM on your board

 

Mistery,

Welcome to our forum. Great to see you here!

We are working on a costume bootloader with the following features:

 

CPU freq: 100MHz

cpu arch: MIPS

debug: Disabled

D-cache: 2KB

I-cache: 2KB

 

serial io: 1

spi: 2 (one connected to on-board spi-flash, the other for user)

simple_in: 8 

simple_out: 8

gpio: 8

vga/hdmi: Disabled

vgatext: Enabled

fm/rds: Enabled

 

we have partially tested sio, simple_in, simple_out, vgatext and fm/rds. Though there are some unsolved issues yet.

I'll try to list all the known issues below:

 

#1 - Simple_out bit 3 seems to have different behavior than other bits. It is always stuck to 1. I think this is due to it's dual-functionality (ocp of timer and simple_out). I am not sure how to disable ocp.

 

#2 - vgatext console seems to malfunction! I've ran the "f32c_vgaconsole_features" example and put the result pictures in my earlier post. I am not sure what the supposed result should be, but it seems to show irrelevant contents somehow!

 

BTW, what is the vga/hdmi core? It seems that only one of the vga/hdmi and vga_textmode interfaces could be enabled on a given bootloader, yeah? how can we use it? May you show us a sample of its output?

 

Again thank you for joining us and hope we could make a complete port of your amazing FPGArduino on the posedge-one!



#20 mahmoud

mahmoud

    Administrator

  • مدیریت انجمن
  • 100 ارسال

ارسالی 08 April 2016 - 04:55 PM

واقعا ممنون از توضیحات خوب شما...

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

روی چه چیز هایی باید کار شود؟

خواهش میکنم.

الان دنبال این هستیم که مشکلاتی را که در پست قبلی اشاره کردم را ریشه یابی و رفع کنیم و در ادامه سایر ویژگی ها و اینترفیس ها را نیز تست کنیم و چنانچه مشکلی داشت مرتفع کنیم.


  • moonice این پست را پسندیده است





همچنین به FPGArduino, Arduino نیز برچسب خورده است

0 کاربر در حال خواندن این موضوع است

0 کاربر، 0 مهمان و 0 عضو مخفی