پرش به


تصویر

ارتباط سریال UART بین FPGA و PC

serial UART FPGA

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

#1 mahmoud

mahmoud

    Administrator

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

ارسالی 05 January 2016 - 08:29 PM

آپدیت 96/05/30: پروژه به زبان وریلاگ خوانا اضافه شد.

 

رفقای پازجی، سلام!

در این نوشته به بررسی چگونگی ایجاد یک ارتباط سریال ساده از نوع UART بین FPGA و PC خواهیم پرداخت. البته قبلا طی یک آموزش تصویری با نحوه‌ی ایجاد یک ارتباط UART ساده با استفاده از پردازنده‌ی MicroBlaze آشنا شدیم، اما از آنجایی که در بسیاری از کاربردها نیاز داریم تا ارتباط سریال را بدون استفاده از میکروبلیز داشته باشیم در این پروژه‌ی نمونه به پیاده‌سازی یک ارتباط سریال UART بدون استفاده از MicroBlaze و در قالب چند ماژول سخت‌افزاری ساده خواهیم پرداخت.

از آنجایی که اصول اولیه ارتباط UART در اکثر مراجع آموزشی میکروکنترلرها ذکر شده و به احتمال زیاد اکثر شما با آن آشنا هستید از ذکر مقدمات و مبانی این ارتباط خودداری کرده و یک راست به سراغ اصل ماجرا میرویم! همچنین از آنجایی که هدف از ارائه‌ی "طرح‌های نمونه" (Sample Design) فراهم کردن یک الگوی آماده جهت بکارگیری در سایر پروژه‌ها است، تنها به توضیح کلیات طرح و نحوه‌ی استفاده از آن در پروژه‌های دیگر بسنده می‌کنیم و وارد جزئیات طراحی داخلی ماژول‌ها نمی‌شویم.

 

توضیحات:

این طرح نمونه متشکل از یک ماژول گیرنده (uart_rx_fifo) و یک ماژول فرستنده (uart_tx_fifo) داده‌های سریال است که توسط ماژول سومی به نام rx_to_tx تشکیل یک "حلقه برگردان" یا "loopback" را داده‌اند؛ بدین معنی که داده‌هایی که از طرف PC ارسال شده و توسط ماژول گیرنده دریافت می‌شوند، بطور پیوسته توسط ماژول واسط rx_to_tx خوانده شده و به ماژول TX داده می‌شود تا به کامپیوتر برگردانده شود. تکنیک "حلقه برگردان" یک روش مرسوم جهت تست عملکرد لینک‌های ارتباطی است که قبلا در طرح نمونه‌ی "ارتباط USB با سرعت 8MB/s در حالت Asyncronous FIFO" نیز از آن استفاده کردیم.

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

uart2fifo-fpga.png
  • ماژول clk_gen شامل یک کور PLL است که توسط CORE Generator موجود در ISE تولید شده است و وظیفه‌ی آن تولید کلاک 40MHz مورد نیاز سایر ماژول‌ها از روی کلاک 24MHz تامین شده توسط کریستال روی بورد است.
  • ماژول uart_rx_fifo وظیفه‌ی دریافت داده‌های ارسالی از جهان خارج (که در مثال ما یک PC است) و ذخیره‌ی آن درون یک FIFO با عمق 1K را دارد. برای خواندن اطلاعات ارسالی کافی است تا دیتای موجود در این FIFO را بخوانید. به همین سادگی، به همین خوشمزگی!
  • ماژول uart_tx_fifo نیز مجهز به یک FIFO است که کاربر آن را با اطلاعات دلخواه خودش پر میکند و ماژول بطور پیوسته داده‌های درون این FIFO را خوانده و به سمت کامپیوتر ارسال می‌کند. با این اوصاف کاربر عملا از درگیری با جزئیات ارتباط سریال معاف بوده و تنها کاری که بایستی انجام دهد خواندن و نوشتن اطلاعات از/به FIFO های RX و TX است. 
  • ماژول rx2tx نیز تنها به جهت تست عملکرد طرح است و قابلیت دیگری ندارد. بنابراین چنانچه قصد دارید تا این طرح نمونه را در پروژه‌های خود استفاده کنید، میتوانید این ماژول را حذف کنید. 

توجه: بصورت پیشفرض ماژول‌های فرستنده و گیرنده‌ی UART موجود در این طرح همگی روی کلاک ورودی 40MHz و باود ریت 9600 تنظیم شده‌اند. چنانچه بخواهید فرکانس پالس کلاک ورودی و یا baud rate را تغییر دهید، بایستی پارامترهای CLOCK_RATE و BAUD_RATE را در ماژول‌های uart_rx_fifo و uart_tx_fifo تغییر دهید. 

 

جهت تست این طرح نیز کافی است تا پس از اجرای پروژه‌ی ISE ارائه شده در فایل پیوست و تولید فایل bit و پروگرام کردن آن روی بورد پازج-یک، از طریق نرم‌افزاری مانند putty یک ارتباط سریال با بورد برقرار کنید (چنانچه با نحوه‌ی انجام این کار آشنایی ندارید به راهنمای کاربری بورد پازج-یک مراجعه نمایید). چنانچه همه چیز به خوبی پیش رفته باشد، بایستی پس از تایپ هر کاراکتر در کنسول سریال، بلافاصله همان کاراکتر به شما برگشت داده شود (شکل زیر).

 

uart2fifo-putty.png

 

توجه: لازم به ذکر است کنسول putty به صورت پیشفرض کاراکترهای ارسالی از سمت کاربر را چاپ نمیکند و تنها کاراکترهای برگشتی از پورت سریال را نمایش می‌دهد. لذا نباید انتظار داشته باشید که پست از تایپ هر کاراکتر آن را دو بار مشاهده کنید و یک بار نمایش آن به منزله‌ی صحت اجرای کار است.

 

امیدوارم این پروژه نمونه به کارتان آمده باشد.

always@posedge باشید!

 

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

فایل‌های سورس و پروژه‌ی ISE (دانلود)


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

#2 moslem kh

moslem kh

    newbie

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

ارسالی 05 January 2016 - 09:47 PM

با سلام و خسته نباشبد.

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

ببخشبد راه اندازی ارسال و دریافت داده از fpga  به sram  اگه بزارید عالی میشه.

واینکه من انتظار داشتم آموزش به صورت کلیپ باشه. چون واقعا درک مطلب بهتره و بازدهی بهتری هم نسبت به متن و نوشته ها داره.

با سپاس فراوان



#3 mahmoud

mahmoud

    Administrator

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

ارسالی 06 January 2016 - 06:04 AM

سلام

انشاءالله آموزش تصویری آن هم جزء برنامه آموزشی خواهد بود. پروژه‌ی کار با SRAM نیز انشاءالله به زودی در همین بخش قرار داده خواهد شد.

موفق و موید باشید



#4 M.Sadeghi

M.Sadeghi

    کاربر عادی

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

ارسالی 06 January 2016 - 07:12 AM

سلام به همه دوستان عزیز

من تست کردم و جواب گرفتم , یه سوالی داشتم :

بعضی از warning ها در مرحله سنتز و implement میتونه ناشی از عواملی باشه که اهمیتی در عمل نداره (همینطور بعضیاشونم از error هم مهم ترن به نظر من !)

اما اینکه این warning ها باعث بشه که فایل .bit هم با وجود warning تولید بشه چندین بار تو عمل دیدم که مشکل ساز شده و همه سعیم تو کدنویسی بر این بوده که تا حد امکان warning هم نداشته باشم

حالا میخواستم بدونم اگه مرحله generate programming file هم با warning انجام بشه (مثل همین پروژه )میشه ازش چشم پوشی کرد ؟؟؟؟(من چندبار نادیده گرفتم و دیدم مشکل داره و اینجا جواب گرفتم !)



#5 mahmoud

mahmoud

    Administrator

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

ارسالی 06 January 2016 - 03:37 PM

باید ببینید warning چی هست؛ بعضی warning ها واقعا مهم هستند مثل پورت ورودی که به جایی وصل نباشه (float) و یا انتساب یک رجیستر با طول زیاد به رجیستری با طول کم که باعث truncate شدن داده ها میشه و ممکنه منشاء خطا بشه. ولی بعضی هشدارها مهم نیستند، مثل هشداری که در مرحله‌ی تولید فایل همین پروژه داده میشه و به این شرحه:

 

WARNING:PhysDesignRules:2410 - This design is using one or more 9K Block RAMs
   (RAMB8BWER).  9K Block RAM initialization data, both user defined and
   default, may be incorrect and should not be used.  For more information,
   please reference Xilinx Answer Record 39999.
 
که داره میگه شما از Block RAM استفاده کردی و باید حواستون باشه که مقادیر اولیه BRAM معتبر نیستند و نباید ازشون استفاده کرد. 
بعضی هشدارها مثل این نمونه واقعا هشدار نیستند و بیشتر شبیه information هستند. ولی Xilinx دیکه شورش را درآورده واقعا و به همه چی گیر میده! حتی من خیلی موارد را دیدم که به core هایی که خودش generate میکنه هم Warning میده! :P بنابراین در مورد ISE، داشتن طرحهایی که هیچ warning ی نداشته باشه را باید توی خواب دید! درست برخلاف Quartus که در این مورد خیلی خوش اخلاق‌تر برخورد میکنه و قُر بیخود نمیزنه!
به هر حال توصیه ای که علمای فن میکنن اینه که error ها را تک به تک رفع کنید و Warning ها را تک به تک بخونید و بررسی کنید. چون بعضی warning ها میتونه ناشی از سوتی‌هایی باشه که از چشمتون مخفی مونده و ممکنه باعث عملکرد اشتباه طرحتون بشه.

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

#6 Amin

Amin

    newbie

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

ارسالی 21 March 2016 - 07:03 PM

سلام 

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

1.شما برای کدهایی مثل این کدها را با C به صورت State-Machin می نویسید و بعد به صورت Verilog ازش Export می گیرید؟

2.اگر میشه یک در مورد این روش توضیح بدید.آیا این روش بهینه است؟ چون بسیار وارنینگ میده و وقتی با کدهای توی FPGA4FUN مقایسه میکنم حس میکنم اون حجم کمتری میگیره ...

3.به عنوان یک پیشنهاد شاید بد نباشه در کنار راه اندازی در قالب یک مثال برای همین موارد یک core هم بسازید تا اگه کسی خواست در پروژه ها استفاده کنه نخواد تمام کدهای پروژه را بخونه البته توی این کد UART ورودی و خروجی ها کامل مشخصه چون ماژول LoopBack چیزی نداره ولی به صورت کلی گفتم ( مثلا برای SRAM  )

4.در صفحه توضیحات مربوط به Ft232 لینک دوم مشکل داره و یک مورد دیگه این PDF ها که گذاشتین هم تو فایل پروژه است هم بالاش و خوب ممکنه طرف دوبار دانلود کنه!  :unsure:

5.توی این پروژه برای من impact باز نمیکرد من دستی ایمپکتو باز کردم و بیت فایلو ریختم  :mellow:

ممنون که وقت میزارید   ;)



#7 mahmoud

mahmoud

    Administrator

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

ارسالی 22 March 2016 - 03:45 AM

سلام

 

1 و 2: معمولا برای طراحی اینترفیس ها از HLS (تعریف سخت افزار توسط کد C) استفاده نمیشه. ماژول uart استفاده شده در این پروژه هم قسمتی از یکی از پروژه های نمونه ی Xilinx است (همانطور که در Header های فایل ها مشخه) و بنابراین خیلی قابل اعتمادتر از کدهای نمونه آموزشی است که در سایت هایی مثل FPGA4FUN معرفی شده.

 

3. ممنون از پیشنهادتون. در واقع اینجا هم همین کار را کردیم و همونجور که د توضیحات پروژه عنوان شده و خودتون هم به درستی اشاره کردید با حذف ماژول loopback از بقیه ی طرح میشه به صورت یک core آماده (out of the box!) استفاده کرد.

 

4 و 5. ممنون بابت تذکر. موارد اصلاح شد. 



#8 Amin

Amin

    newbie

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

ارسالی 22 March 2016 - 05:42 PM

سلام مجدد ، خدمت شما

دوباره چندتا چیز بگم :)

 

1.من استفاده از HLS برا اساس همون هدرها گفتم که نوشته :

// ==============================================================
// RTL generated by Vivado™ HLS - High-Level Synthesis from C, C++ and SystemC
// Version: 2015.1
// Copyright © 2015 Xilinx Inc. All rights reserved.
//
// ===========================================================

بنابراین حدس زدم این مثال از HLS استفاده کرده و کد را کمی خوندم و متوجه تفاوتهایی با FPGA4FUN شدم مثلا در قسمت گیرنده یک ماژول برای Metastability نوشته و چیزهایی مثل این که خوب شاید حجم بیشتری بگیره ولی دقت کار را بالاتر میره یا مثلا استفاده از FIFO و ...

ولی حق با شماست این ماژول بهتری هست.

 

2. من میخواستم این دوتا ماژول را از هم جدا کنم یک ماژول برای فرستادن یکی برای گرفتن 
RX , TX
من ماژول فرستادن را نوشتم که یک کارکتر a را هر ثانیه یکبار بفرسته وقتی TestBench را نوشتنم مقدار خروجی tx همیشه X می ماند ولی در عمل a را میفرستاد :| 
و ماژول گرفتن هم نوشتم که اگر a را دریافت کرد یک پایه toggle شود ولی اون پروژه ارور زیر را میده :
 
Multi-source in Unit <Receive> on signal <N1>; this signal is connected to multiple drivers.

در سرچی که کردم متوجه شدم اگر یک متغییر را در چند always مقدار دهی کنیم این ارور رخ میدهد همچنین این صفحه هم به چشمم خورد :

 The wrong signal is named in "ERROR:Xst:528 - Multi-source..." message

اگر دوستان لطف کنند مشکلات این دو کد را بفرمایند ممنون میشم این کدها میتونه بعدا به درد افراد دیگر نیز بخورد  :wub:

 

3. wire rst هم در ماژول top در پروژه پست اول هم اضافه هست جایی استفاده نشده

 

4....



#9 mahmoud

mahmoud

    Administrator

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

ارسالی 23 March 2016 - 03:06 AM

سلام.

بنابراین حدس زدم این مثال از HLS استفاده کرده و کد را کمی خوندم و متوجه تفاوتهایی با FPGA4FUN شدم 

بخشید یکمی مسائل قاطی شد، فکر کردم منظورتون core ارتباط uart هستش! درسته، ماژول ارتباط async fifo توسط دوست عزیزمون آقای چنگانی با HLS نوشته شده. 

در ضمن مطمئنید FPGA4FUN کد ارتباط ftdi async fifo داره؟! فکر کنم اونی که شما دیدید فقط uart باشه ها!

لطفا برای جلوگیری از تداخل مسائل، اون قسمتی از سوالتون که مربوط به مود async fifo هست را در پست مربوط به خودش (اینجا) مطرح کنید و در این تاپیک تنها مود uart را مطرح کنید.

 

در سرچی که کردم متوجه شدم اگر یک متغییر را در چند always مقدار دهی کنیم

بله این که یکی از قوانین مسلم طراحی دیجیتال هست. شما یک متغیر را نمیتوانید در دو بلوک always مجزا مقدار دهی کنید، چرا که هر متغییری درون یک بلوک always به یک مدار ترتیبی ترجمه میشه و وقتی یک متغییر دو جا مقدار دهی بشه شما در عمل خروجی اون دو تا مدار ترتیبی مجزا را به یک نقطه وصل کردید که این نه تنها غیرمجاز بلکه غیراخلاقی و غیرشرعی هم هست!
 

دیباگ کردن کد کار دشوار و زمانبری است، مخصوصا وقتی که کد توسط فردی دیگر و با ذهنیتی متفاوت نوشته شده باشد. بنابراین فکر میکنم اگر مشکلات کدی که نوشتید را خودتون پیدا کنید و برای حلش از انجمن کمک بگیرید کار بسیار نیکویی انجام داده اید!

موفق باشید.



#10 p.bahramian

p.bahramian

    newbie

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

ارسالی 31 July 2016 - 06:06 PM

سلام خسته نباشید و تشکر بابت تمام اطلاعات خوبی که اینجا قرار می دهید. من تازه بورد را گرفتم و برای تست UART و تراشه خود بورد این پروژه رو روی بورد ریختم اما متاسفانه در ترمینال هیچ اتفاقی نمی افتد و هیچ دریافتی نداره. شماره COM درست هست و باد ریت هم 9600. ممنون میشم اگه راهنمایی بفرمایید.



#11 mahmoud

mahmoud

    Administrator

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

ارسالی 01 August 2016 - 03:46 AM

سلام خسته نباشید و تشکر بابت تمام اطلاعات خوبی که اینجا قرار می دهید. من تازه بورد را گرفتم و برای تست UART و تراشه خود بورد این پروژه رو روی بورد ریختم اما متاسفانه در ترمینال هیچ اتفاقی نمی افتد و هیچ دریافتی نداره. شماره COM درست هست و باد ریت هم 9600. ممنون میشم اگه راهنمایی بفرمایید.

سلام.

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

در صورت صحت عملکرد سخت افزار و نصب بودن درایورها بایستی پس از هر بار فشردن کلید USER_PB نتیجه ی تست رم روی پورت سریال ارسال شود و در کنسول نمایش داده شود.



#12 p.bahramian

p.bahramian

    newbie

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

ارسالی 01 August 2016 - 07:24 AM

من این فایل mb_top.bit را روی بورد ریختم بدون مشکل پروگرام شد ولی در ترمینال بعد فشردن کلید هیچ اتفاقی نیفتاد. فکر نمی کنم درایور پروگرامر مشکلی داشته باشه چون دقیقا مثل راهنما بود موارد و الان مشکلی در پروگرام کردن نداره. و من برنامه یوآرت آموزش نهم سایت را بدون مشکل با مبدل خارجی تست کردم.

#13 mahmoud

mahmoud

    Administrator

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

ارسالی 01 August 2016 - 09:09 AM

آیا تمام مراحل تشریح شده در بخش "راه اندازی اولیه و تست برد" موجود در سند راهنمای کاربری برد را طی کرده اید؟ مخصوصا قسمت مربوط به تنظیمات پورت COM که در شکل 10 از سند مذکور نمایش داده شده است.
چنانچه کلیه ی مراحل فوق را طی کرده اید و مشکل پابرجاست، به احتمال زیاد مبدل USB شما به جای UART در حالت FIFO تنظیم شده است. به منظور تنظیم آن در حالت UART از برنامه ی ftdi_change_mode موجود در لینک روبرو استفاده کنید. (دانلود)

چنانچه باز هم مشکل پابرجا بود لطفا با عضویت در گروه تلگرامی پازج به ایدی @mahmoud_Haghighi یا @mahdichi پیام خصوصی دهید.

 

موفق باشید.



#14 دانشجو

دانشجو

    newbie

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

ارسالی 05 August 2016 - 01:26 PM

آیا تمام مراحل تشریح شده در بخش "راه اندازی اولیه و تست برد" موجود در سند راهنمای کاربری برد را طی کرده اید؟ مخصوصا قسمت مربوط به تنظیمات پورت COM که در شکل 10 از سند مذکور نمایش داده شده است.
چنانچه کلیه ی مراحل فوق را طی کرده اید و مشکل پابرجاست، به احتمال زیاد مبدل USB شما به جای UART در حالت FIFO تنظیم شده است. به منظور تنظیم آن در حالت UART از برنامه ی ftdi_change_mode موجود در لینک روبرو استفاده کنید. (دانلود)

چنانچه باز هم مشکل پابرجا بود لطفا با عضویت در گروه تلگرامی پازج به ایدی @mahmoud_Haghighi یا @mahdichi پیام خصوصی دهید.

 

موفق باشید.

سلام...منم دقیقا با همین مشکلی که گفتن مواجه شدم...با فشردن user pb صفحه سیاه خالی فقط میبینم!!همه چیز درسته ...تست بورد رو هم انجام دادم سالمه...اگه امکان داره راهنمایی بفرمایید...ممکنه برنامه verilog که نوشتین مشکل داشته باشه؟



#15 mahmoud

mahmoud

    Administrator

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

ارسالی 05 August 2016 - 02:05 PM

سلام...منم دقیقا با همین مشکلی که گفتن مواجه شدم...با فشردن user pb صفحه سیاه خالی فقط میبینم!!همه چیز درسته ...تست بورد رو هم انجام دادم سالمه...اگه امکان داره راهنمایی بفرمایید...ممکنه برنامه verilog که نوشتین مشکل داشته باشه؟

سلام.
مشکل ایشون مربوط به سخت افزار بود که با رفع ایراد برد مرتفع شد. اما شما میفرمایید تست برد را انجام دادید و سالمه. یعنی نتیجه ی تست Sram را روی putty دریافت کردید؟



#16 دانشجو

دانشجو

    newbie

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

ارسالی 05 August 2016 - 03:37 PM

سلام.
مشکل ایشون مربوط به سخت افزار بود که با رفع ایراد برد مرتفع شد. اما شما میفرمایید تست برد را انجام دادید و سالمه. یعنی نتیجه ی تست Sram را روی putty دریافت کردید؟

بله با تست sram همه گزینه ها passed شد...



#17 دانشجو

دانشجو

    newbie

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

ارسالی 05 August 2016 - 03:46 PM

بله با تست sram همه گزینه ها passed شد...

bit فایل با چندتا warning مربوط به synthesize و  implement design ایجاد میشه...و بعدش با اجرای putty  کارکتری که مینویسم رو دریافت نمیکنم!!



#18 mahmoud

mahmoud

    Administrator

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

ارسالی 05 August 2016 - 05:52 PM

bit فایل با چندتا warning مربوط به synthesize و  implement design ایجاد میشه...و بعدش با اجرای putty  کارکتری که مینویسم رو دریافت نمیکنم!!

برنامه را روی حافظه فلش میریزید یا مستقیم روی خود FPGA پروگرام میکنید؟
چنانچه برنامه را روی خود FPGA پروگرام میکنید، احتمالا از کلید PROG که استفاده نمیکنید؟ (موردی که بعضی از کاربران مرتکب آن میشوند!).

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

با تشکر.



#19 mahmoud

mahmoud

    Administrator

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

ارسالی 05 August 2016 - 06:59 PM

مورد مهم تری که وجود دارد این است که چنانچه برنامه به درستی عمل کند، به ازای فشردن هر کلید بایستی تنها یک کاراکتر روی خروجی ترمینال مشاهده کنید (نه دو تا). این بدین علت است که putty بصورت پیشفرض تنها کاراکتر دریافت شده از پورت سریال را نمایش میدهد و کاراکتری ارسالی شما را نمایش نمیدهد. بنابراین نباید انتظار داشته باشید با فشردن هر کلید، 2 کاراکتر را روی کنسول مشاهده نمایید.



#20 دانشجو

دانشجو

    newbie

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

ارسالی 06 August 2016 - 07:23 AM

مورد مهم تری که وجود دارد این است که چنانچه برنامه به درستی عمل کند، به ازای فشردن هر کلید بایستی تنها یک کاراکتر روی خروجی ترمینال مشاهده کنید (نه دو تا). این بدین علت است که putty بصورت پیشفرض تنها کاراکتر دریافت شده از پورت سریال را نمایش میدهد و کاراکتری ارسالی شما را نمایش نمیدهد. بنابراین نباید انتظار داشته باشید با فشردن هر کلید، 2 کاراکتر را روی کنسول مشاهده نمایید.

پس درست عمل میکنه...ممنون از راهنمایی شما...برای اطمینان یکبار fpga را ریست کردم و مجددا در putty کاراکتر نوشتم اما هیچی نشون نداد...پس درست عمل میکنه...اما تو pdf گفته بود باید اول چند خط با عبارت  passed ظاهر بشه!!که نمیشه!البته با اون برنامه تست بورد ظاهر میشه اما با این برنامه نع... 







همچنین به serial, UART, FPGA نیز برچسب خورده است

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

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