位置:51电子网 » 技术资料 » 控制技术

CoolRunner-Ⅱ I2C控制器寄存器

发布时间:2008/9/19 0:00:00 访问次数:1151

  i2c控制器寄存器基地址mbase由vhdl代码中常量base address决定,基地址为地址总线的高16位,低8位地址将决定哪一个寄存器被寻址。此i2c控制器寄存器共有如下4个。
  (1)madr:地址寄存器(地址为mbase+$8dh)
  ■bit7~bit1:从设备地址(r/w)。
  ■bit0:保留。
  (2)mbcr:控制寄存器(地址为mbase+$8fh)
  ■bit7:en(r/w),i2c控制器使能位。“1”使能i2c控制器,0”复位并禁止i2c控制器。在对mbcr其他位操作之前,此位必须被首先设置为“1”。
  ■bit6:ien(r/w),中断允许位。“1”允许中断,当状态寄存器的mif位也被置位时,中断发生;0”禁止中断,但是不会清除任何当前正在申请的中断。
  ■bit5:sta(r/w),主/从模式选择位。当微控制器将此位从“0”改变为“1”,在主模式下,i2c控制器将会产生一个start。清除此位,会产生一个stop,同时i2c切换到从模式。然而,如果是由于总线仲裁失败而导致此位被清除,将不会产生stop。
  ■bit4:tx(riw),发送/接收模式选择。“1”时,i2c主设备发送;0”时,i2c主设备接收。
  ● bit3:ak(r/w),发送应答使能。此位指定在ack阶段sda线的值。主从接收都适用。-ack bit=“1”,表示没有应答;-ack bit=“0”表示应答。当主设各接收到ack为“1”时,表示已经接收到最后一个字节,因此此位可以用来告诉主设备结束当前的传输操作。
  ■bit2:rsta (riw),重复开始。写“1”到此位,如果coolrunner-ii i2c为当前总线控制设备,则会产生一个“重复开始”,读此位则总为“0”;如果总线被其他设备主控,则写入此位会导致总线仲裁矢败。
  ■bitl~bit0:保留。
  (3)mbsr:状态寄存器(地址为mbase+$93h)
  ■bit7:mcf(r),pc数据传输标志位。数据传输过程中,此位被清除。在ack周期被sol上升沿置位,且仅保持一个时钟周期。“1”表示传输完毕,“0”表示传输正在进行。
  ■bit6:maas(r),从寻址标志位。当fc总线上地址与madr中地址匹配时,i2c就会被作为从设各并切换到从模式,此时该位被置“1”。
  ■bit5:mbb(r),总线忙标志位。当检测到start时,此位被置“1”;当检测到stop时,此位被清“0”。
  ■bit4:mal(it/软件清除),仲裁失败标志位。i2c总线仲裁失败时被置“1”,此位可以通过uc写入“0”而清除。
  ■bit3:保留。
  ■bit2:srw(r),从设备读写标志位,此位反映了主设备的读写位的值,“1”表示主设备从从设备读;“0”表示主设备写入从设备。
  ■bit1:mif(r/软仵清除),中断标志位。当有中断发生时,此位被置“1”。如果中断允许,mien= “1”,则会使uc产生一个中断。在中断服务程序中通过uc写入“0”进行软件清零。
  ■bit0:rxak(r)接收应答位,此位反映了sda总线ack阶段的值,“1”表示没有ack;“0”表示收到ack。
  (4)mbdr:数据i/o寄存器(地址为mbase+$95h)
  8位,可读/写。数据寄存器保存的是要发送到i2c总线上的数据,或者从i2c总线上接收的数据。在物理上,这个寄存器是由两个同地址的寄存器组成的,一个用于i2c发送;另一个用于i2c接收,这种机制消除了uc和i2c控制器之间的竞争。

  欢迎转载,信息来自维库电子市场网(www.dzsc.com)



  i2c控制器寄存器基地址mbase由vhdl代码中常量base address决定,基地址为地址总线的高16位,低8位地址将决定哪一个寄存器被寻址。此i2c控制器寄存器共有如下4个。
  (1)madr:地址寄存器(地址为mbase+$8dh)
  ■bit7~bit1:从设备地址(r/w)。
  ■bit0:保留。
  (2)mbcr:控制寄存器(地址为mbase+$8fh)
  ■bit7:en(r/w),i2c控制器使能位。“1”使能i2c控制器,0”复位并禁止i2c控制器。在对mbcr其他位操作之前,此位必须被首先设置为“1”。
  ■bit6:ien(r/w),中断允许位。“1”允许中断,当状态寄存器的mif位也被置位时,中断发生;0”禁止中断,但是不会清除任何当前正在申请的中断。
  ■bit5:sta(r/w),主/从模式选择位。当微控制器将此位从“0”改变为“1”,在主模式下,i2c控制器将会产生一个start。清除此位,会产生一个stop,同时i2c切换到从模式。然而,如果是由于总线仲裁失败而导致此位被清除,将不会产生stop。
  ■bit4:tx(riw),发送/接收模式选择。“1”时,i2c主设备发送;0”时,i2c主设备接收。
  ● bit3:ak(r/w),发送应答使能。此位指定在ack阶段sda线的值。主从接收都适用。-ack bit=“1”,表示没有应答;-ack bit=“0”表示应答。当主设各接收到ack为“1”时,表示已经接收到最后一个字节,因此此位可以用来告诉主设备结束当前的传输操作。
  ■bit2:rsta (riw),重复开始。写“1”到此位,如果coolrunner-ii i2c为当前总线控制设备,则会产生一个“重复开始”,读此位则总为“0”;如果总线被其他设备主控,则写入此位会导致总线仲裁矢败。
  ■bitl~bit0:保留。
  (3)mbsr:状态寄存器(地址为mbase+$93h)
  ■bit7:mcf(r),pc数据传输标志位。数据传输过程中,此位被清除。在ack周期被sol上升沿置位,且仅保持一个时钟周期。“1”表示传输完毕,“0”表示传输正在进行。
  ■bit6:maas(r),从寻址标志位。当fc总线上地址与madr中地址匹配时,i2c就会被作为从设各并切换到从模式,此时该位被置“1”。
  ■bit5:mbb(r),总线忙标志位。当检测到start时,此位被置“1”;当检测到stop时,此位被清“0”。
  ■bit4:mal(it/软件清除),仲裁失败标志位。i2c总线仲裁失败时被置“1”,此位可以通过uc写入“0”而清除。
  ■bit3:保留。
  ■bit2:srw(r),从设备读写标志位,此位反映了主设备的读写位的值,“1”表示主设备从从设备读;“0”表示主设备写入从设备。
  ■bit1:mif(r/软仵清除),中断标志位。当有中断发生时,此位被置“1”。如果中断允许,mien= “1”,则会使uc产生一个中断。在中断服务程序中通过uc写入“0”进行软件清零。
  ■bit0:rxak(r)接收应答位,此位反映了sda总线ack阶段的值,“1”表示没有ack;“0”表示收到ack。
  (4)mbdr:数据i/o寄存器(地址为mbase+$95h)
  8位,可读/写。数据寄存器保存的是要发送到i2c总线上的数据,或者从i2c总线上接收的数据。在物理上,这个寄存器是由两个同地址的寄存器组成的,一个用于i2c发送;另一个用于i2c接收,这种机制消除了uc和i2c控制器之间的竞争。

  欢迎转载,信息来自维库电子市场网(www.dzsc.com)



相关IC型号

热门点击

 

推荐技术资料

自制经典的1875功放
    平时我也经常逛一些音响DIY论坛,发现有很多人喜欢LM... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!