PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مشکل با پروتکل can در lpc2368



mehran1234
18-08-2011, 18:36
سلام
من می خوام که از پروتکل CAN تویه LPC2368 استفاده کنم.
شماتیک مدار به این ترتیبه:
You can see links before reply (You can see links before reply)
پایه های 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 استفاده کردم (به دلیل کمبود امکانات)
به نظر شما کدهای برنامه مشکل داره یا سخت افزار؟