第1章ZLG/CF 驱动使用 - Read
第1章ZLG/CF 驱动使用 - Read
第1章ZLG/CF 驱动使用 - Read
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
#endif<br />
写 ATA 设备寄存器步骤如下:<br />
(1) 关系统中断,预防在写寄存器操作中产生中断;<br />
(2) 设置 GPIO 模拟 ATA 接口数据的引脚为输出状态,准备输出数据到设备数据线;<br />
(3) 设置 ATA 设备寄存器的相应地址;<br />
(4) 设置 GPIO 模拟 ATA 接口数据的引脚的电平为要写到设备的值;<br />
(5) 使写 ATA 设备寄存器信号引脚为低电平;<br />
(6) 使写 ATA 设备寄存器信号引脚为高电平;<br />
(7) 如果 ATA 设备(<strong>CF</strong> 卡)是 8 位总线模式,并且操作的是数据寄存器(16 位),则<br />
需重复(3)、(4)、(5)步。<br />
(8) 取消 ATA 设备寄存器地址的选择。<br />
(9) 设置 GPIO 模拟 ATA 接口的数据总线引脚为输入状态,释放总线。<br />
(10) 开系统中断。<br />
LPC2210 的 GPIO 引脚模拟写 ATA 设备寄存器的函数如程序清单 1.3 所示,ATA 设备<br />
各寄存器地址宏定义如程序清单 1.5 所示。<br />
#ifdef ATA_BUS_AT_8bit<br />
程序清单 1.3 写 ATA 设备寄存器函数<br />
void SYS_PortOut(uint32 reg, uint16 data) /*使用 8 位数据总线*/<br />
{<br />
}<br />
OS_ENTER_CRITICAL(); /*关中断*/<br />
IO2DIR = IO2DIR | ATA_DATA; /*设置数据总线为输出*/<br />
IO1CLR = Addr_CS_at_P1; /*地址与片选信号都为低电平*/<br />
IO1SET = reg; /*地址高电平位输出,完成地址的设置*/<br />
/*写低字节*/<br />
IO2CLR = ATA_DATA; /*数据总线上输出全为低电平*/<br />
IO2SET = data