- 0
- 0
- 约小于1千字
- 约 3页
- 2026-01-18 发布于北京
- 举报
在阅读本节内容前,请先参考《SPI-AT93C46介绍与操作说明》,本文只是解释程序。
AT93C46擦除时序图如下:
程序代码贴图如下:
:
9,12-14,16:参见spi_en的说明。
10:93c46的数据输出do。在该程序中需要检测do的输出状态来判断是否擦除完毕。低电
平表示忙,高电平表示擦除完毕。
11:待擦除单元的地址。由于在硬件中,93c46的ORG引脚接地,所以93c46的的存
储格式为128×8bits的格式。所以地址为7位。
15:擦除完毕信号。高电平表示擦除完毕。
31-76:产生擦写时序。
34-36:复位状态,cs置为0,表示无效,计数器cnt。
37-67:产生93c46的输入数据di,片选信号cs。
35:都是在clkin(即sk,见68-74的说明)的下降沿将数据输出。
39-42:产生起始位SB‘1’,并将擦除完毕标志finish置为0,表示还没擦除完毕。
43-46:产生擦除操作的操作码‘11’。
47-48:发送地址,先发送。
49-54:根据协议,拉低cs,维持至少250ns,然后再拉高cs。
55-60:通过判断do的状态一直等待擦除完毕,否则就一直死循环中这几句话里。
61-65:执行完擦除操作后,将cs置为无效状态,即低电平,将di置为低电平,finish
置为高(该信号一直为高,直到下一次启动信号的到来),表示擦除完毕,cnt置成
15,这样下一次触发这个process时,还会执行61-65句,一直这样循环,直到下
一次启动信号的到来,再执行一次擦除操作。
68-74:产生93c46的时钟信号sk。根据cnt的值,在一定的时间内将clkin赋值给sk,
形成93c46的时钟,其他的时刻使sk=0,即没有时钟脉冲。
原创力文档

文档评论(0)