Files
eb001/src/main/scala/backBoard/Readme.md
RuigeLee a29c01c812 改变读写操作方式,从单次跳变变为持续操作
增加4号测试寄存器,实际地址为4<<1
2024-03-16 20:46:35 +08:00

2.3 KiB
Raw Blame History

背板总线

用户接口

  • 数据地址线 AD 16比特位宽

  • 地址锁存 ADVn 负逻辑

  • 读使能 RDn 负逻辑

  • 写使能 WRn 负逻辑

  • 片选 CSn 负逻辑

使用要求地址锁存时ADV保持高至少30ns 写入时CS,WR保持高至少30ns读出时CS,RD保持高至少30ns方可读取数据线上数据

内存空间映射

  • 总线上最多允许挂载64个从站每个从站有8bits32个下行寄存器只写8bits32个上行寄存器只读
  • 当地址线第11比特(AD[10])为低时FSMC访问只读或者只写从站镜像寄存器以8比特形式组织
    • 通过16比特写用户接口 0x00 ~ 0x1F, 可以将数据同步写入到从站0的16个下行寄存器只写后续从站地址按序分配
    • 通过16比特读用户接口 0x00 ~ 0x1F, 可以将数据同步写入到从站0的16个上行寄存器只读后续从站地址按序分配
  • 当地址线第11比特(AD[10])为高时FSMC通过地址9到0比特访问可读可写主站寄存器全部定义为16比特
    • 0x00 控制状态,

      • statusCDRErr: 第4比特表示LVDS总线发生CDR解析错误写1清零
      • statusCRCErr: 第3比特表示LVDS总线发生传输CRC错误写1清零
      • statusLinkErr: 第2比特表示LVDS总线发生从站掉线写1清零
      • statusSynch: 第1比特表示LVDS总线各个从站已经同步初始化完成时且ctrlSynch为高自动置高手动将ctrlInit置高时自动置低
      • statusInit: 第0比特表示LVDS总线已经初始化初始化完成时自动置高手动将ctrlInit置高时自动置低
    • 0x01 操作寄存器

      • ctrlTransmit: 第5比特手动写入1将触发LVDS总线传输传输完成将自动清零
      • ctrlSynch: 第1比特手动写入1表示初始化的同时同步所有从站
      • ctrlInit: 第0比特手动写入1将触发LVDS总线初始化初始化完成将自动清零
    • 0x02 配置从栈数量(减一): 从站数量当前无法手动配置,初始化过程中将自动检测在线从站数量,并以该数量进行初始化,从站数量将自动写入该寄存器

    • 0x03 离线位置: 当发生从站掉线,该寄存器可读出掉线从站编号