【新版CH554评测DIY】音频校音器之8
音频校音器之8-USB的功能1、在评测的过程中,非常明显的发现CH554最大的优势就是USB的功能设计和引入,使用方便简明。在使用前需要先了解USB通讯协议和下载协议监测器如USB Hound等,不过各种软件都还是有不完善的地方,最主要的就是对于新版64位机的兼容性,这里多数情况下都要进行对应的设定。
2、USB 控制器简介
USB的功能:内嵌 USB 控制器和 USB 收发器,支持 USB-Host 主机模式和 USB-Device 设备模式,支持USB type-C 主从检测,支持 USB 2.0 全速 12Mbps 或者低速 1.5Mbps。支持最大 64 字节数据包,内置 FIFO,支持 DMA。
CH554 内嵌 USB 控制器和 USB 收发器,特性如下:(1)、支持 USB Host 主机功能和 USB Device 设备功能;(2)、支持 USB 2.0 全速 12Mbps 或者低速 1.5Mbps;(3)、支持 USB 控制传输、批量传输、中断传输、同步/实时传输;(4)、支持最大 64 字节的数据包,内置 FIFO,支持中断和 DMA。CH554 的 USB 相关寄存器分为 3 个部分,部分寄存器是在主机和设备模式下进行复用的。(1)、USB 全局寄存器;(2)、USB 设备控制器寄存器;(3)、USB 主机控制器寄存器。
USB相关寄存器:
3、对于例程的应用,基本都很好地展示了USB接口的性能。
注意,需要连接中间的micro USB接口,这样就可以在设备管理器中发现设备了。而且,显示程序中设定的PID和VID
参照程序中的设备设定可知,
对于USB协议可以直接启动程序读取有关参数和通讯,不过对于串口仍然需要连接板卡的USB转串口功能,才能显示页面的功能。
按键没有按下时,
按下对应按键时,
详见程序的main()代码部分,
void main( void )
{
CfgFsys(); //Configure sys
mDelaymS(5); //
mInitSTDIO( ); // Init UART0
#if DE_PRINTF
printf( "Start config.\r\n" );
printf( "Init USB device.\r\n" );
#endif
USBDeviceInit(); // Configure the USB module,the Endpoint and the USB Interrupt
EA = 1;
UEP1_T_LEN = 0; // Reset the trans length register
UEP2_T_LEN = 0;
FLAG = 0;
EnumOK = 0;
TouchKeyQueryCylSet1Or2ms(1); //set query cycle
TouchKeyChanelSelect(3); //set query chanel
while(1)
{
if( EnumOK == 1 )
{
HIDValueHandle();
}
else
{
if(TKEY_CTRL&bTKC_IF) //wait query finsh,max 2ms »ñ衼üÖμ»ù×¼Ö죬¶à2éÑù¼¸′Î
{
TouchKeyButton = TKEY_DAT; //
#ifdef DE_PRINTF
printf("A.=%04x\n",TouchKeyButton&0x7FFF);
#endif
}
}
}
}
/**************************** END *************************************/
4、编译和开发
不过,在本项目中恐怕不能如计划使用usb口了,因为有关FFT变换资源消耗大,而范例提供的程序在添加touchkey后也显示编译超容量限制,只有16k的代码确实不适合更大的计算量。
5、其他的USB范例也都测试过,确实非常的好用,是快速开发的首选。
页:
[1]