اطلاعیه

Collapse
No announcement yet.

مشکل در ارتباط SPI با آیسی MCP4921

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

    مشکل در ارتباط SPI با آیسی MCP4921

    سلام دوستان
    من با کدویژن کار میکنم
    نیاز به یه خروجی آنالوگ دارم که بین 0 تا 10 ولت باشه و میخوام بدمش به ابنورتر برای کنترل دور موتور. از این آیسی MCP4921 به این دلیل استفاده کردم که تعداد پایه هام کم نیاد.
    حالا هر کاری میکنم توی پروتئوس کار نمیکنه و ولتاژ خروجیش کلا صفره.
    کدم اینه:
    #include <mega32.h>
    // SPI functions
    #include <spi.h>
    #include <delay.h>
    #include <stdio.h>
    // Declare your global variables here
    void main(void)
    {
    PORTB=0x00;
    DDRB=0xB0;


    // SPI initialization
    // SPI Type: Master
    // SPI Clock Rate: 4000.000 kHz
    // SPI Clock Phase: Cycle Half
    // SPI Clock Polarity: Low
    // SPI Data Order: MSB First
    SPCR=0x54;
    SPSR=0x00;

    while (1)
    {
    spi(0x0000);
    delay_ms(1000);
    spi(0x7FFF);
    delay_ms(1000);
    }
    }

    #2
    پاسخ : مشکل در ارتباط SPI با آیسی MCP4921

    کسی نیست کمک کنه؟

    دیدگاه


      #3
      پاسخ : مشکل در ارتباط SPI با آیسی MCP4921

      درود
      این قطعه 12 بیتی هست و spi سخت افزاری میکرو 8 بیتی.
      برای کار کردن با این قطعه spi رو به صورت نرم افزاری خودت درست کن و 12 بیت پشت سر هم بفرست. شکل 1-1 دیتاشیت رو نگاه کن.
      مـن هیچ ندانم که مرا آن که سرشت
      از اهل بهشت کرد یا دوزخ زشت
      جامی و بتی و بربطی بر لب کشت
      اين هر سه مرا نقد و تو را نسیه بهشت

      دیدگاه


        #4
        پاسخ : مشکل در ارتباط SPI با آیسی MCP4921

        سلام
        ممنون از پاسختون
        مشکلم حل شد
        مشکل در تنظیمات رجیستر SPCR بود که باتنظیم اون به 0x50 حل شد.

        دیدگاه

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