26.02.2013 Views

第1章ZLG/CF 驱动使用 - Read

第1章ZLG/CF 驱动使用 - Read

第1章ZLG/CF 驱动使用 - Read

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!