本帖最后由 wsssyis 于 2009-12-22 19:48 编辑
最近有个东西老搞不定 麻烦大家帮忙看看 AS5045无接触式旋转编码器 读出来的数据老是不对 单片机用的是LPC931 7.373M晶振
看这个AS5045的DATASHEET 很多时间要求都是以ns为单位 还有要求100ns以内的 是不是LPC931不能满足这个要求?目前读出来的数据和PWM那边输出的对不上 也就是说读出来的数据不对
读数据那个地方大概是这样:
初始化后 CS=1; CLK=1; // CS=片选 CLK=时钟 DO=数据线
read_data() //读18位数据的函数
{
CS=0;
DO=1;
DELAY(5毫秒);//TCLK FE
CLK=0; //第一个下降沿
DELAY(5毫秒);//低电平时间
CLK=1; //第一个上升沿 数据此时送到数据线上???????
SBUF=DO; //该操作必须在上升沿后的400ns内执行吗???????是否需要等
数据线稳定加DELAY()?但是LPC931的一个命令最少好像要
271ns 无法同时又延时又读数
DELAY(5毫秒);//高电平时间 第1个数读取完毕
。
。
。
DELAY(5毫秒);//高电平时间 第18个数读取完毕
CS=1;
DELAY(5毫秒);//一个读取周期完毕
}
符号 最小值 典型值 最大值 单位
tDO active 100 ns
tCLK FE 500 ns
T clk/2 500 ns
tDO valid 357 375 394 ns
tDO tristate 100 ns
tCSn 500 ns
读出频率 >0 1 MHz
AS5045.pdf
(506.24 KB)
|