标题: 请教高人mc33389 canlin网关 [打印本页]
作者: chenliang_hit 时间: 2006-7-2 16:21 标题: 请教高人mc33389 canlin网关
小弟用mc33389用作can-lin网关,兼作电源供电,写swcr的窗口操作怎么定时阿?有没有更多的资料可以参考以下,如果有代码的话最好了,不胜感激
email:280109609@qq.com
作者: zhwdy81 时间: 2006-7-3 11:20
我得初始化
SPI_data1=RD33389(0x27,0xC7);//dog 200ms
//冷启动必读
//SPI_data1=RD33389(0x30,0x0); //读唤醒输入控制寄存器WUICR
//SPI_data1=RD33389(0x60,0x0); //读复位源寄存器RSR
//SPI_data1=RD33389(0x6C,0x0); //读电压补给状态寄存器VSSR
//唤醒后必读
SPI_data1=RD33389(0x30,0x0); //读唤醒输入控制寄存器WUICR
SPI_data1=RD33389(0x3c,0x0); //读唤醒输入状态寄存器WUISR
SPI_data1=RD33389(0x60,0x0); //读复位源寄存器RSR
SPI_data1=RD33389(0x6C,0x0); //读电压补给状态寄存器VSSR
//******************************************************
SPI_data1=RD33389(0x28,0x0); //基础电平寄存器
SPI_data1=RD33389(0x44,0x0); //读唤醒输入适时信息
SPI_data1=RD33389(0x50,0x0); //读CANH错误
SPI_data1=RD33389(0x5C,0x0); //读CANL错误
SPI_data1=RD33389(0x28,0x0); //基础电平寄存器
//
SPI_data1=RD33389(0x03,0x91);//标准模式
SPI_data1=RD33389(0x90,0x91);//标准模式
//
SPI_data1=RD33389(0x17,0x91);//V3ON
//SPI_data1=RD33389(0x33,0x32); //唤醒输入控制寄存器
//
SPI_data1=RD33389(0x2B,0x00);//0。7V
//SPI_data1=RD33389(0x2B,0x91);//-1.2V
//SPI_data1=RD33389(0x2B,0x32);//-1.7V
//SPI_data1=RD33389(0x2B,0xA3);//-2.2V
//CAN设置
SPI_data1=RD33389(0x93,0xA3);//RX/TX
//SPI_data1=RD33389(0x93,0x32);//RX
//SPI_data1=RD33389(0x93,0x00);//VBAT
//SPI_data1=RD33389(0x3C,0x0); //唤醒输入状态寄存器
//SPI_data1=RD33389(0x90,0x0); //传送控制寄存器
作者: chenliang_hit 时间: 2006-7-3 21:02 标题: zhwdy81你好
首先谢谢你的帮助,我是通过33993的wake脚来唤醒33389的,现在有个问题是,在33389V2 不供电的情况下,33993的wake脚维持低电平,怎样通过33993的wake脚来触发33389呢?[em13]
作者: chenliang_hit 时间: 2006-7-3 21:15
能帮忙解释下触发窗口的含义吗?谢谢
作者: chenliang_hit 时间: 2006-7-4 07:44 标题: 新问题
你好,zhwdy81
这是我采用你的mc33389初始化代码,为什么初始化后没有进入normal状态呢?
void Init_33389()
{
unsigned char RD33389(unsigned char cs_addr , unsigned char cs_cmd);
unsigned char WT33389(unsigned char cs_addr , unsigned char cs_cmd);
unsigned char SPI_data1;
SPI_data1=WT33389(CS_SWCR , 0x07) ; //看门狗设置200ms
//唤醒后必读
SPI_data1=RD33389(CS_WUICR , 0x00); //读唤醒输入控制寄存器WUICR
SPI_data1=RD33389(CS_WUISR , 0x00); //读唤醒输入状态寄存器WUISR
SPI_data1=RD33389(CS_RSR , 0x00); //读复位源寄存器RSR
SPI_data1=RD33389(CS_VSSR , 0x00); //读电压补给状态寄存器VSSR
//配置状态寄存器
//唤醒源配置 WUICR
SPI_data1=WT33389(CS_WUICR , 0x02); //唤醒输入L0,L1打开控制寄存器 写WUICR
SPI_data1=WT33389(CS_V3R , 0x04); //force wake up on 写V3R
}[em13]
作者: zhwdy81 时间: 2006-7-4 10:56
不好意思啊 我也不是很清楚 我用到过看管唤醒和can唤醒 没用33993的wake脚
我得wake直接接的vbate
作者: zhwdy81 时间: 2006-7-4 11:09
chenliang_hit
你的是什么问题啊 是不是没反应啊?
喂狗有没问题?
这个片子比较难用,我也是勉强用起来
作者: luckydog 时间: 2006-7-4 11:21
对于chenliang_hit的问题
请教高人mc33389 canlin网关
小弟用mc33389用作can-lin网关,兼作电源供电,写swcr的窗口操作怎么定时阿?有没有更多的资料可以参考以下,如果有代码的话最好了,不胜感激
我的理解是MC33389上电后,正常的话会进入NormalRequest Mode,在75ms内需要对SPI操作,也就是必须先写SWCR(看门狗)。写入你需要的看门狗时间间隔后,必须在这个时间间隔的后半部分“喂狗”,比如如果选择100ms的看门狗时间间隔,那么必须在50ms后才能喂狗。如果你在前50ms内喂狗的话,会使芯片reset。
作者: chenliang_hit 时间: 2006-7-4 11:57
跟我的理解差不多,可是初始话时 默认值是5ms的狗 ,第一次如果设置成200ms的话,是不是要在100ms以后在写swcr,如果是那样的话,就有一个问题了,初始化的75毫秒时间内是触发不了看门狗的,这时就reset了; 如果窗口值按初试值设的话就应该,第一次在2.5ms后写SWCR设置成200ms,之后出现normal状态,以后按200ms算 ,不知道我这样理解对不对 [em13]
作者: chenliang_hit 时间: 2006-7-4 12:18
这是33389的初始化代码, 问题在后面描述
void Init_33389()
{
unsigned char RD33389(unsigned char cs_addr );
void WT33389(unsigned char cs_addr , unsigned char cs_cmd);
unsigned char SPI_data1;
/*数据格式转化在函数内部完成*/
/*狗设置200ms*/
WT33389(CS_SWCR , 0x07);
/*醒后必读*/
SPI_data1=RD33389(CS_WUICR );/*唤醒输入控制寄存器*/
SPI_data1=RD33389(CS_WUISR ); /*唤醒输入状态寄存器WUISR*/
SPI_data1=RD33389(CS_RSR ); /*读复位源寄存器RSR*/
SPI_data1=RD33389(CS_VSSR ); /*读电压补给状态寄存器VSSR*/
/*置状态寄存器*/
/*源配置 WUICR*/
WT33389(CS_WUICR , 0x02);/*唤醒输入L0,L1打开控制寄存器 写WUICR*/
WT33389(CS_V3R , 0x04); /* wake up on 写V3R*/
}
主函数目的是想要通过mc33993的wake pin 触发mc33389供电,现在问题是写SWCR寄存器后,mc33389并不进入normal状态,不知道是什么原因
void main(void)
{
/*配置CONFIG ,初始化MCU I/O方向*/
Init_MCU();
/*初始化SPI*/
Init_SPI();
/*初始化33389*/
Init_33389();
/*始化其他模块初始化*/
InitDelay(4000);
/*初始化33993,其中33993的VDD是通过mc33389的V2供电的, 33993 wake pin是接到33389的L0,为了正常初始化mc33993必须保证在mc33389处于normal状态的时候初始 化mc33993,这点怎么实现,如何判断mc33389何时进入normal状态.*/
Init_33993();
EnableInterrupts;
while(1)
{
}
}[em13]
作者: zhwdy81 时间: 2006-7-4 12:22
在初始化33389前延时50几ms试一下呢
我在初始化前延时了 delay5ms(10);
喂狗在110ms左右
作者: chenliang_hit 时间: 2006-7-4 21:25
我已经实验出来结果了
normal request也有一个看门狗[em12]
不过还是非常的感谢你的帮助
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) |
Powered by Discuz! 7.0.0 |