查看: 20650|回复: 39

[MPC] 安版主,MPC5604B的FlexCAN官方例程,发不出数据,怎么回事?

[复制链接]

该用户从未签到

12

主题

79

帖子

0

中级会员

Rank: 3Rank: 3

积分
264
最后登录
2020-9-23
发表于 2012-3-17 18:21:21 | 显示全部楼层 |阅读模式
目标板:TRK-MPC5604B
程序代码是官方例程 直接贴出,希望安版主可以指点迷津!
#include "MPC5604B_M27V.h" /* Use proper include file */
uint32_t  RxCODE;              /* Received message buffer code */
uint32_t RxID;                 /* Received message ID */
uint32_t  RxLENGTH;            /* Recieved message number of data bytes */
uint8_t  RxDATA[8];            /* Received message data string*/
uint32_t RxTIMESTAMP;          /* Received message time */       
void initModesAndClks(void) {
  ME.MER.R = 0x0000001D;          /* Enable DRUN, RUN0, SAFE, RESET modes */
                                  /* Initialize PLL before turning it on: */
/* Use 1 of the next 2 lines depending on crystal frequency: */
  CGM.FMPLL_CR.R = 0x02400100;    /* 8 MHz xtal: Set PLL0 to 64 MHz */  
/*CGM.FMPLL_CR.R = 0x12400100;*/  /* 40 MHz xtal: Set PLL0 to 64 MHz */  
  ME.RUN[0].R = 0x001F0074;       /* RUN0 cfg: 16MHzIRCON,OSC0ON,PLL0ON,syclk=PLL */
  ME.RUNPC[1].R = 0x00000010;    /* Peri. Cfg. 1 settings: only run in RUN0 mode */
  ME.PCTL[16].R = 0x01;           /* MPC56xxB/P/S FlexCAN0: select ME.RUNPC[1] */ 
  ME.PCTL[17].R = 0x01;           /* MPC56xxB/S FlexCAN1:  select ME.RUNPC[1] */ 
  ME.PCTL[68].R = 0x01;           /* MPC56xxB/S SIUL:  select ME.RUNPC[1] */ 
                                  /* Mode Transition to enter RUN0 mode: */
  ME.MCTL.R = 0x40005AF0;         /* Enter RUN0 Mode & Key */
  ME.MCTL.R = 0x4000A50F;         /* Enter RUN0 Mode & Inverted Key */ 
  while (ME.GS.B.S_MTRANS) {}     /* Wait for mode transition to complete */   
                                  /* Note: could wait here using timer and/or I_TC IRQ */
  while(ME.GS.B.S_CURRENTMODE != 4) {} /* Verify RUN0 is the current mode */
}
void initPeriClkGen(void) {
  CGM.SC_DC[1].R = 0x80;     /* MPC56xxB/S: Enable peri set 2 sysclk divided by 1 */
}
void disableWatchdog(void) {
  SWT.SR.R = 0x0000c520;     /* Write keys to clear soft lock bit */
  SWT.SR.R = 0x0000d928;
  SWT.CR.R = 0x8000010A;     /* Clear watchdog enable (WEN) */
}
   
void initCAN_0 (void)
{
  uint8_t   i;

  CAN_0.MCR.R = 0x5000003F;       /* Put in Freeze Mode & enable all 64 msg bufs */
  CAN_0.CR.R = 0x04DB0006;        /* Configure for 8MHz OSC, 100KHz bit time */
  for (i=0; i
我知道答案 目前已有38人回答

FlexCAN1.rar

121.46 KB, 下载次数: 153, 下载积分: 威望 1

回复

使用道具 举报

该用户从未签到

6

主题

52

帖子

0

注册会员

Rank: 2

积分
172
最后登录
1970-1-1
发表于 2012-3-20 11:04:56 | 显示全部楼层

RE:安版主,MPC5604B的FlexCAN官方例程,发不出数据,怎么回事?

这个是要对SBC进行配置的,楼主可以参考一下33904怎么配的
回复 支持 反对

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2012-3-20 17:13:04 | 显示全部楼层

    RE:安版主,MPC5604B的FlexCAN官方例程,发不出数据,怎么回事?

    真对不住楼主,我对MPC5604B也不熟悉,还是参考例程吧。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12

    主题

    79

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    264
    最后登录
    2020-9-23
     楼主| 发表于 2012-3-22 10:59:02 | 显示全部楼层

    回复:安版主,MPC5604B的FlexCAN官方例程,发不出数据,怎么回事?

    谢谢,版主、小不点的回复,SBC是得配置一下啊!不知道怎么配置啊,调不通,郁闷呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6

    主题

    52

    帖子

    0

    注册会员

    Rank: 2

    积分
    172
    最后登录
    1970-1-1
    发表于 2012-3-22 16:42:25 | 显示全部楼层

    RE:安版主,MPC5604B的FlexCAN官方例程,发不出数据,怎么回事?

    先把SPI调通了,至少能够写数据读数据吧,调通了再说,这个调不通肯定不行的,我调了很久才整出来
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    12

    主题

    79

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    264
    最后登录
    2020-9-23
     楼主| 发表于 2012-3-25 13:30:42 | 显示全部楼层

    回复:安版主,MPC5604B的FlexCAN官方例程,发不出数据,怎么回事?

    回复第 5 楼 于2012-03-22 08:42:25发表:
    先把SPI调通了,至少能够写数据读数据吧,调通了再说,这个调不通肯定不行的,我调了很久才整出来 

    还是要谢谢您,我没使用MCZ33905S,用的外部接的1040,CAN数据可以正常发送了!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    45

    帖子

    0

    新手上路

    Rank: 1

    积分
    14
    最后登录
    1970-1-1
    发表于 2012-8-16 18:07:03 | 显示全部楼层

    回复:安版主,MPC5604B的FlexCAN官方例程,发不出数据,怎么回事?

    同求 我的也是不能收发数据
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    27

    帖子

    0

    新手上路

    Rank: 1

    积分
    36
    最后登录
    1970-1-1
    发表于 2012-8-31 10:07:07 | 显示全部楼层

    RE:安版主,MPC5604B的FlexCAN官方例程,发不出数据,怎么回事?

    谁有用MPC5646C????
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    4

    帖子

    0

    新手上路

    Rank: 1

    积分
    11
    最后登录
    1970-1-1
    发表于 2012-9-3 15:46:37 | 显示全部楼层

    RE:安版主,MPC5604B的FlexCAN官方例程,发不出数据,怎么回事?

    有在用MPC5634   必须先通过SPI将MC33905的CAN收发器使能   然后才能进行CAN收发   
    DSPI_B.PUSHR.R = 0x000160C0;  //使能MC33905CAN收发
    DSPI_B.PUSHR.R = 0x00012100;  //读取CAN状态   回来的如果是C0说明CAN正常,之后就可以进行正常的CAN收发了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    4

    帖子

    0

    新手上路

    Rank: 1

    积分
    11
    最后登录
    1970-1-1
    发表于 2012-9-3 15:48:58 | 显示全部楼层

    回复:安版主,MPC5604B的FlexCAN官方例程,发不出数据,怎么回事?

    回复第 6 楼 于2012-03-25 13:30:42发表:
    回复第 5 楼 于2012-03-22 08:42:25发表:
    先把SPI调通了,至少能够写数据读数据吧,调通了再说,这个调不通肯定不行的,我调了很久才整出来 

    还是要谢谢您,我没使用MCZ33905S,用的外部接的1040,CAN数据可以正常发送了!
     

    MC33905还是很方便使用的  集成度也很高   只是需要SPI进行配置   相应的命令看懂手册以后其实很简单的 建议可以使用下哦
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-9 06:44 , Processed in 0.110641 second(s), 31 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表