اطلاعیه

Collapse
No announcement yet.

مشکل با پروتکل CAN در LPC2368

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

    مشکل با پروتکل CAN در LPC2368

    سلام
    من می خوام که از پروتکل CAN تویه LPC2368 استفاده کنم.
    شماتیک مدار به این ترتیبه:

    پایه های VCC ی LPC2368 به +3.3 وصله و VSS ها هم به زمین متصلن.
    کریستال هم 12M هستش.
    پایه VDD ی MCP2551 هم +7 و GND و RS هم به زمین متصلن.

    کدهای برنامه هم اینه:
    کد:
    #include <LPC23xx.h>
    
    void CAN1IRQ (void)
    {
    IOSET0	|=(1<<22);
    CAN1CMR =0x00000004;
    VICVectAddr =0x00000000;
    }
    int main (void)
    {
    unsigned int i=1;
    unsigned int delay=0;
    IODIR0 |=(1<<22);
    IOCLR0 |=(1<<22);
    //------- initialize CAN2---------//
    PINSEL0 |=0x2<<8|0x2<<12;
    PCONP |=0x1<<14;
    CAN2MOD |=0x00000001;
    CAN2BTR =0x0B | 0x05<<16 |0x02<<20;
    CAN2MOD =0x00000000;
    //---------initialize CAN1---------//
    PINSEL0 |=0x5;
    PINSEL0 |=0x1<<13;
    CAN1MOD |=0x00000001;
    CAN1BTR =0x0B|0x05<<16 |0x02<<20;
    CAN1IER =0x00000001;
    VICVectPriority23 =0x00000000;
    VICVectAddr23 =(unsigned)CAN1IRQ;
    VICIntEnable =0x00800000;
    CAN_AFMR =0x00000003;
    //--------transfer data-----------//
    CAN2TFI1 =0x00040000;
    for(i=1;i<0x00000100;i=i<<1)
    {
    CAN2TID1=i;
    if(CAN2SR&0x00000004)
    {
    CAN2TDA1=i;
    CAN2CMR=0x0000021;
    }
    for(delay=0;delay<0xA0000;delay++);
    }
    while(1);
    }
    وقتی که دیتا از TX2 به RX1 برسه
    LED باید روشن بشه.
    من برنامه رو با دیباگر keil سیموله کردم و اون نشون داد که اطلاعات به درستی ارسال می شه
    اما نتونستم قسمت دریافت رو هم چک کنم.
    به جایه مقاومت 120 هم از 270 استفاده کردم (به دلیل کمبود امکانات)
    به نظر شما کدهای برنامه مشکل داره یا سخت افزار؟
لطفا صبر کنید...
X