Slave FIFO时TD_init函数常用模板!


CYpress的Cy7c68013A芯片得到广大同仁的喜好,一般我们就修改TD_init函数和Descr.a51中的 VID, PID参数,其他基本不用动,当然偶说的是Slave FIFO的情况

TD_init() 函数 的常用模板,工作在Slave FIFO模式下!


   CPUCS = ((CPUCS & ~bmCLKSPD) | bmCLKSPD1) ;   // 设置 CPU 时钟为 48MHz

   IFCONFIG = 0xCB;   // 设置 接口采用 内部时钟,48MHz,IFCLK关闭输出,异步Slave FIFO方式
 
   SYNCDELAY;
 
   REVCTL=0x03;     //缺省给定值,cypress推荐
 
   SYNCDELAY; 

///  各个EP端点 使能及输出模式等寄存器配置!!

  EP1OUTCFG = 0xA0;
  EP1INCFG = 0xA0;
  SYNCDELAY;                   
  EP2CFG = 0xE0;
  SYNCDELAY;                   
  EP4CFG = 0xE0;
  SYNCDELAY;                   
  EP6CFG = 0xA2;
  SYNCDELAY;                   
  EP8CFG = 0xA0;

/// 重设 各端点的 FIFO,目的是启动时清空 FIFO,防止缓冲中的旧数据破坏现有数据

  SYNCDELAY;
  FIFORESET = 0x80;
  SYNCDELAY;
  FIFORESET = 0x02;
  SYNCDELAY;
  FIFORESET = 0x04;
  SYNCDELAY;     
  FIFORESET = 0x06;
  SYNCDELAY;        
  FIFORESET = 0x08;
  SYNCDELAY;
  FIFORESET = 0x00;
  SYNCDELAY;

/// 设置 FlagA/B/C/D 引脚 对 EP端点的满空状态标记, 设置为00,00时,表示端点是由给到FIFOAddr[1:0]引脚上的外部逻辑来选择的!

  PINFLAGSAB = 0x00;
  SYNCDELAY;
  PINFLAGSCD = 0x00;
  SYNCDELAY;


/// 设置各引脚的 电平有效状态,

  FIFOPINPOLAR = 0x00;
  SYNCDELAY;

/// 端点2 IN方式下的数据长度设置!

  EP2AUTOINLENH =0x00;
    SYNCDELAY;
  EP2AUTOINLENL = 0x40;
    SYNCDELAY;

////  EP 端点配置寄存器! 可以配置端点EP为 autoIN 或者 autoOut方式,这样就进入真正的SlaveFIFO模式了,即硬件自动打包发往上位机!

  EP2FIFOCFG = 0x0D;    //  IMPORTANT

///  使能自动指针,自动指向端点缓冲区!

 SYNCDELAY;

 AUTOPTRSETUP |= 0x01;

点击数: 1933   打印  添加到收藏   发布时间: 2015-11-19




上一篇:Android手机App内嵌入web交互页面方法
下一篇:.net程序中给picturebox增加滚动条方法





» 相关内容
  MD5加密的一段代码
  滤波函数增强版
  Matlab模拟PID方法-推荐
  Matlab强制拟合函数过零方法
  清空USB FX2LP FIFO缓冲方法
  Savgol萨维基购耳滤波方法-MAT..
  CRC8校验函数通用版VC
  VS2008中修改VC使用的目标.net..
  Verilog实现clk计数器的rst边..
  Chart1控件坐标轴范围设定和恢..
  一个二维码生成页面-简洁实用
  AD7656六通道16位逐次逼近型25..
  TTL和232/485电平不分导致串口..
  .net程序中给picturebox增加滚..
  Slave FIFO时TD_init函数常用..