通用串行输入/输出(I/O)操作
一次串行通信周期分为两个阶段。
第一阶段:向 AD9914 写入“指令字节”。该字节包含待访问寄存器的地址,并指明接下来的数据传输是“写”还是“读”。
写周期
第二阶段:数据从串口控制器传送到串口缓冲区。传输字节数取决于被访问的寄存器。例如访问控制功能寄存器 2(地址 0x01)时,第二阶段必须连续传输 4 字节;每位数据在对应 SCLK 上升沿被锁存。串口控制器要求一次性访问完该寄存器的全部字节,否则下次通信会失步。若想少写几个字节,可利用 SYNCIO 引脚:拉低 SYNCIO 可立即终止当前 I/O 操作并复位串口指针;下一个字节即被视为新的指令字节。注意:SYNCIO 之前已完整写入的字节会被保留在串口缓冲区,未写完的位/字节则丢弃。任何通信周期结束后,AD9914 都期待接下来的 8 个 SCLK 上升沿是下一轮的指令字节。
数据生效
写周期结束后,数据仍停留在串口缓冲区,尚未生效。必须发出 I/O UPDATE(可由软件指令、PROFILE 引脚变化或外部 IO_UPDATE 脉冲触发),才能把缓冲区内容载入真正起作用的“活动寄存器”。IO_UPDATE 可在每次写操作后立即发出,也可在所有串行操作完成后再统一发出。
读周期
第二阶段与写周期类似,区别有两点:
数据源是“活动寄存器”而非串口缓冲区;
数据在 SCLK 下降沿被驱动输出。
若要回读任意 PROFILE 寄存器(地址 0x0B–0x1A),必须借助外部三根 PROFILE 选择引脚 PS[0:2]:例如想读 Profile 5(地址 0x15),须令 PS[0:2]=101。写 PROFILE 寄存器时则无此要求。
如有型号采购及选型需求,可直接联系兆亿微波电子元件商城。