CH375 USB接口芯片技术手册-南京沁恒

5星 · 超过95%的资源 需积分: 10 16 下载量 16 浏览量 更新于2024-12-04 收藏 205KB PDF 举报
"CH375是南京沁恒电子有限公司推出的一款USB总线接口芯片,具备USB HOST主机方式和SLAVE设备方式的支持。该芯片设计适用于与单片机/DSP/MCU等控制器集成,便于扩展系统的USB功能。CH375在设备方式下与CH372兼容,但在主机方式下提供了丰富的功能,包括处理Mass-Storage设备的通讯协议,使得外部控制器可以直接读写USB存储设备。此外,它还具备自动检测设备连接和断开的能力,并且支持多种USB传输类型。" CH375的主要特点如下: 1. **USB接口**:支持全速USB 1.1标准,作为HOST主机时,只需一个晶体和两个电容即可完成外围配置。 2. **主机与设备模式切换**:可动态切换主机或设备模式,与CH372完全兼容。 3. **传输类型**:支持控制传输、批量传输和中断传输,满足不同类型的USB通信需求。 4. **自动检测**:能自动检测USB设备的连接和断开状态,并通过中断输出通知外部控制器。 5. **协议处理**:内置控制传输协议处理器,简化了控制传输操作。 6. **海量存储协议**:内置固件处理Bulk-Only传输协议,兼容SCSI、UFI或等效命令集的USB存储设备,如硬盘、闪存盘等。 7. **文件级子程序库**:提供单片机读写USB存储设备文件的便捷接口。 8. **接口设计**:并行接口包含8位数据总线和4线控制,串行接口有串行输入、输出和中断输出,支持波特率动态调整。 9. **电源兼容**:支持5V和3.3V电源电压。 10. **封装形式**:采用SOP-28封装,提供与DIP-28封装的转换板,方便不同类型的电路板集成。 CH375的这些特性使其成为USB扩展应用的理想选择,尤其是对于需要与USB存储设备交互的嵌入式系统。通过串行或并行接口,它可以轻松地集成到各种微控制器的系统中,实现USB功能的快速开发和部署。

uint32 bluetooth_ch9141_read_buff (uint8 *buff, uint32 len) { uint32 data_l = len; fifo_read_buffer(&bluetooth_ch9141_fifo, buff, &data_l, FIFO_READ_AND_CLEAN); return data_l; }uint32 bluetooth_ch9141_send_buff (uint8 *buff, uint32 len) { uint16 time_count = 0; while(len > 30) { time_count = 0; while(BLUETOOTH_CH9141_RTS_PIN && time_count++ < BLUETOOTH_CH9141_TIMEOUT_COUNT) // 如果RTS为低电平,则继续发送数据 delay_ms(1); if(time_count >= BLUETOOTH_CH9141_TIMEOUT_COUNT) return len; // 模块忙,如果允许当前程序使用while等待 则可以使用后面注释的while等待语句替换本if语句 uart_putbuff(BLUETOOTH_CH9141_INDEX, buff, 30); buff += 30; // 地址偏移 len -= 30; // 数量 } time_count = 0; while(BLUETOOTH_CH9141_RTS_PIN && time_count++ < BLUETOOTH_CH9141_TIMEOUT_COUNT) // 如果RTS为低电平,则继续发送数据 delay_ms(1); if(time_count >= BLUETOOTH_CH9141_TIMEOUT_COUNT) return len; // 模块忙,如果允许当前程序使用while等待 则可以使用后面注释的while等待语句替换本if语句 uart_putbuff(BLUETOOTH_CH9141_INDEX, buff, (uint16)len); // 发送最后的数据 return 0; }uint8 bluetooth_ch9141_init (void) { wireless_type = WIRELESS_CH9141; // 本函数使用的波特率为115200 为蓝牙转串口模块的默认波特率 如需其他波特率请使用上位机修改模块参数 fifo_init(&bluetooth_ch9141_fifo, bluetooth_ch9141_buffer, BLUETOOTH_CH9141_BUFFER_SIZE); uart_init(BLUETOOTH_CH9141_INDEX, BLUETOOTH_CH9141_TX_PIN, BLUETOOTH_CH9141_RX_PIN, BLUETOOTH_CH9141_BUAD_RATE, BLUETOOTH_CH9141_TIMER); return 0; }void bluetooth_ch9141_uart_callback (void) { // 读取无线串口的数据 并且置位接收标志 bluetooth_ch9141_data = BLUETOOTH_CH9141_DATA_BUF; fifo_write_buffer(&bluetooth_ch9141_fifo, &bluetooth_ch9141_data, 1); // 存入 FIFO }static fifo_struct bluetooth_ch9141_fifo; static uint8 bluetooth_ch9141_buffer[BLUETOOTH_CH9141_BUFFER_SIZE]; // 数据存放数组 static uint8 bluetooth_ch9141_data;为我设置参数让这些函数可以让HC-05蓝牙工作

2023-07-14 上传