پرش به


تصویر

پروژه SPI


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

#1 nhosseinpourfardi

nhosseinpourfardi

    newbie

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

ارسالی 07 July 2017 - 02:06 PM

با سلام
چرا در واحد spi کلاک بر 2 تقسیم می شود؟
اگر بخواهیم این بلوک را به بلوک دیگری مثل Fifo ارتباط دهیم کلاک fifo  باید چه گونه باشد؟
با تشکر


#2 mahmoud

mahmoud

    Administrator

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

ارسالی 08 July 2017 - 05:03 AM

سلام

 

در مورد تقسیم کلاک بر 2، چنین چیزی کلیت ندارد. ممکن است در پروژه ای خاص این کار مورد نیاز بوده باشد.

 

در رابطه با fifo، از آنجایی که ورودی fifo، دیتای موازی است، لازم است قبل از هر چیز دیتای spi را که به صورت سریال است، توسط shift register به صورت موازی تبدیل کرد و بعد به fifo اعمال کرد.



#3 nhosseinpourfardi

nhosseinpourfardi

    newbie

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

ارسالی 08 July 2017 - 11:42 AM

ضمن تشکر از پاسختان

منظور جمله توضیحی در پروژه نمونه spi که خودتان نوشته بودید هست.

این جمله: در تنظیمات این بلوک پارامتری به اسم CLK_DIV وجود دارد که در واقع نشان می دهد کلاک SPI چه تقسیمی از کلاک سیستم باشد. حداکثر مقدار این پارامتر برابر ۲  است .

این پارامتر در واحد کلاک وجود دارد که کلاک خروجی چه تقسیمی از کلاک ورودی برد(24MHz) باشد.اما توضیح بالا در مورد بلوک SPI است.ممنون می شوم توضیح دهید.

سوال دوم هم منظورم کلاکشان بود.چون قاعدتا بلوک ها با کلاک هماهنگ و یکسان کار می کنند. بلوک spi  که کلاک ورودی خودش را بر 2 تقسیم می کند ، حال کلاک ورودی به بلوک fifo باید چه گونه باشد؟

 

با تشکر



#4 mahmoud

mahmoud

    Administrator

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

ارسالی 08 July 2017 - 05:53 PM

سلام.

 

پارامتر CLK_DIV یکی از پارامترهای کور است که ما نیازی به استفاده از آن نداریم و آن را برابر حداقل مقدار ممکن (حداکثر فرکانس خروجی) قرار میدهیم تا بیشترین سرعت را بدست آوریم.

 

کلاک واحد latch (همان fifo) با کلاک ورودی واحد spi یکسان است. اما کلاک خروجی واحد SPI میتواند مجزا باشد که در این مثال نیز چنین است.



#5 nhosseinpourfardi

nhosseinpourfardi

    newbie

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

ارسالی 17 July 2017 - 11:11 AM

با سلام

 

با بررسی کد verilog spi که به عنوان نمونه گذاشته بودید، متوجه شدم که کلاک sck یک چهارم کلاک ورودی ماژول spi یعنیclk  است. درواقع  در یک کلاک دیتا را به mosi می ریزید در یک کلاک دیتارا از miso  می گیرید در یک کلاک sck را set می کنید و در یک دیگه counter برای 16 بیت را اضافه می کنید.(چهار حالت رجیستر sck_q)این در صورتی است که دریک کلاک هم می توان دیتارا از miso برداشت،هم می توان شمارنده را زیاد کرد و... ودر نهایت می تواند clk با sck یکسان باشد.می خواستم بدانم که یک چهارم کردن کلاک دلیل خاصی دارد؟ 






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

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