OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2603|回复: 1

单片机与一个芯片的通信时序图,大家帮忙看看

[复制链接]

31

主题

50

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
277
金钱
277
注册时间
2017-11-29
在线时间
49 小时
发表于 2023-6-2 16:42:47 | 显示全部楼层 |阅读模式
20金钱
未标题-1.jpg
如上图,目的是通过图中的时序读出DATAOUT的数据,DATAOUT是并行的,有8个IO,代表bit0---biy7,单片机用的  stm32f1
AdrIn对应芯片4个并行IO,接到单片机四个IO,分别代表bit0---bit4,表示地址0-15


片选CS拉低保持时间t1:  大于20ns
地址提前准备时间t2 :  大于5ns
片选CS拉高保持时间t3:大于20ns
输入地址保持时间t4:  大于20ns
数据输出准备时间t5:  最大20ns
数据输出延时td:最大200ns
以下是数据手册的说明:
“在CLK-IN信号的每一个上升边缘后,数据被采样并保存。数据在CS下降边缘后的最新200ns(数据输出延迟)时可在数据总线上提供。地址数据的提供通过ClkOut和AdrOut相应地表示

伪代码:
void  readAllData(void)
{
    for(i = 0; i<16;  i++)  //从地址0开始读
    {
        CLKIN = 0;
        CS = 1;
        CLKIN  =1;
        AddrInSet(i);  //根据地址更改AdrIn的四个IO电平
        delay-ns(10);
        CS = 0;   
        delay-ns(300);
        readDataout();   //读取8个IO电平组成一个字节
        CS = 1;
        CLKIN = 0;
    }
}

我理解的就是CS为高的情况下,CLKIN由低变高,然后地址AdrIn准备好,然后将CS拉低,200ns后DATAOUT就可以读数据了,不知道理解的对不对

这样一番操作数据始终不对,大神能帮忙看看这个代码对应这个时序哪里有问题





正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

3281

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8206
金钱
8206
注册时间
2020-5-11
在线时间
3700 小时
发表于 2023-6-3 17:23:07 | 显示全部楼层
这时序有点怪,能否发下手册?
你的CLKIN低电平时间有点短,CS高电平时间有点短;
建议每一步都加大延时,并用示波器测一下实际波形。
对于手册中的时间,你得留点余量。
专治疑难杂症
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 06:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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