DSP芯片初始化(vc5416_init函数)主要负责设置VC5416的工作频率,配置SWCR以及SWWSR寄存器,另外本应用系统采用一个GPIO引脚作为68001的复位信号,所以还需要对其进行相关设置。

基于DSP芯片PC机之间的USB接口设计

USB芯片初始化(sx2_init函数)主要负责清除Buffer缓冲区以及使能VC5416 的外部中断INT1,待初始化结束后发出READY中断,此时DSP将描述符写入68001,进行枚举过程,待枚举通过后发出ENUMOK中断,枚举方式可以采用外部EEPROM通过I2C总线上电后从外部导入描述符,也可采用通过运行DSP程序从DSP导入到68001,本应用系统采用第二种枚举方式。

USB芯片配置程序(sx2_setup函数)是在命令通道(0节点)收到无法自动处理的上位机请求,68001向VC5416发出SETUP中断后执行的程序,此时VC5416 通过对SETUP寄存器连续执行八次读操作流程即可得到8字节请求,系统可以响应该请求或STALL该请求。

USB 芯片数据读写程序(sx2_processdata 函数)即PC 机与USB从设备端遵照USB传输协议进行数据通信。

CY7C68001的地址FIFOAD[2:0]为100时,选中CY7C68001的命令接口。对于命令接口的读写要分两步进行,即在READY有效时,先通过命令接口写入要寻址寄存器的子地址和操作类型(读或写),之后,在READY再次有效时分两次读写命令接口,即可读写一个字节的数据。

4.2 中断服务程序设计要点

DSP使用一个外部中断引脚(INT1)与CY7C68001的INT脚相连,USB总线上产生一系列的活动,均会触发相应的中断,一旦中断产生,DSP 会从CY7C68001 的Command 口中读取相应的值,来判断产生的是何种中断。

CY7C68001 EZ-USB SX2 包括六个中断源:SETUP(收到来自于USB 上位机(PC)发送过来的Set-up 包时产生的中断)、EP0BUF(端点0 缓存可用时产生的中断)、FLAGS(OUT 端点FIFO的状态从空变为非空时产生的中断)、ENUMOK(SX2枚举完成后产生的中断)、BUSACTIVITY(SX2检测到总线活动时产生的中断)以及READY(SX2上电并且复位完毕后产生的中断),每一个中断源都可以通过置位或清除INTENABLE寄存器中相应位来使能或禁止。

CY7C68001芯片采用中断缓冲机制,每次只会有一个中断源,其他中断源只有在上一个中断被读走后才会发出新的中断请求。

因此,当一个中断产生时,INT引脚为低电平状态,同时中断状态位会置入命令接口,在进入中断程序后应先对中断源进行判断,首先判断是否是读寄存器所产生的中断,如果是则将数据准备好标志位置1然后返回,否则外部PC通过选通SLRD/SLOE信号从命令接口中读取中断状态位来判断产生的是何种中断,然后根据中断源进行相应操作,DSP读取中断状态位后自动清除中断标志位。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查