`
insertyou
  • 浏览: 893333 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

CH376-U盘读写模块(串口)使用笔记

 
阅读更多

最近做项目,需要把一些AD转换的数据存储在U盘上,四处寻访最终找到了CH376这个芯片。2009年12月终于在网上买到CH376模块。模块使用的是IC开发网设计的CH376模块,有兴趣的朋友可以去看看www.icdev.com.cn。价格不是很贵几十元钱。它用的CH376芯片是南京沁恒的(www.wch.cn)。

经过1个月的摸索,总算调试成功了。这点要感谢“沁恒”的工程师的支持。很多问题都是他们帮助调试成功的。

用7S64的串口驱动CH376模块,首先要对模块带的驱动文件进行修改。

(1)首先修改HAL.h 文件,屏蔽以下代码

/* CH376芯片 硬件抽象层 V1.0 */
/* 提供I/O接口子程序 */

//#include<reg52.h>
#include"CH376INC.H"

#ifndef__CH376_HAL_H__
#define __CH376_HAL_H__

//#ifdef __CX51__
//#ifndef __C51__
//#define __C51__1
//#endif
//#endif
//
//#ifdef __C51__
//#defineBIG_ENDIAN1
//#endif
//#ifdef __C51__
//#pragma NOAREGS
//#endif

(2)修改UART_HW.C串口驱动文件

#include "HAL.H"
#include "stdio.h"
#include "CH376INC.H"

#include "UART/Serial.h" 在这里加入AT91SAM7S64串口通信代码,后面会给出代码全文

voidCH376_PORT_INIT( void ) /* 由于使用异步串口读写时序,所以进行初始化 */
{
//*屏蔽这里所有的代码*/

}

修改CH376写命令、数据写入、数据读写命令

voidxWriteCH376Cmd( UINT8 mCmd ) /* 向CH376写命令 */
{
Uart0WriteData(SER_SYNC_CODE1);/* 启动操作的第1个串口同步码 */
Uart0WriteData(SER_SYNC_CODE2);/* 启动操作的第2个串口同步码 */
Uart0WriteData(mCmd); /* 串口输出 */

}

voidxWriteCH376Data( UINT8 mData ) /* 向CH376写数据 */
{
Uart0WriteData(mData);
}

UINT8xReadCH376Data( void ) /* 从CH376读数据 */
{

return(Uart0ReadData());
}

/* 查询CH376中断(INT#低电平) */
UINT8Query376Interrupt( void )
{
UINT8res;
xWriteCH376Cmd( CMD_GET_STATUS ); /* 测试单片机与CH376之间的通讯接口 */
res = xReadCH376Data( );
return(res);
}

UINT8mInitCH376Host( void ) /* 初始化CH376 */
{
UINT8res;
CH376_PORT_INIT( ); /* 接口硬件初始化 */
xWriteCH376Cmd( CMD11_CHECK_EXIST ); /* 测试单片机与CH376之间的通讯接口 */
xWriteCH376Data( 0x65 );
res = xReadCH376Data( );
if ( res != 0x9A )
{
printf("\nmInitCH376Host:USB MODULE CONNECTION FAILED\n");
return( ERR_USB_UNKNOWN );
}
else
{
printf("\nmInitCH376Host: USB MODULE CONNECTION SUCCESS\n");
return( USB_INT_SUCCESS );
}

}

修改完成后,就可以使用改模块了。

下面给出Serial.c Serial.h源程序供也在使用AT91SAM7S64的朋友一起参考交流。

/*******************************************************/

初始化串口0

void Init_UART0 (void) { /* Initialize Serial Interface */
*AT91C_PMC_PCER|=(1 << AT91C_ID_US0);
*AT91C_PIOA_PDR|= AT91C_PA5_RXD0| /* Enable RxD0 Pin */
AT91C_PA6_TXD0; /* Enalbe TxD0 Pin */

index0=0;
pUSART0->US_CR = AT91C_US_RSTRX | /* Reset Receiver */
AT91C_US_RSTTX | /* Reset Transmitter */
AT91C_US_RXDIS | /* Receiver Disable */
AT91C_US_TXDIS; /* Transmitter Disable */

pUSART0->US_MR = AT91C_US_USMODE_NORMAL | /* Normal Mode */
AT91C_US_CLKS_CLOCK | /* Clock = MCK */
AT91C_US_CHRL_8_BITS | /* 8-bit Data */
AT91C_US_PAR_NONE | /* No Parity */
AT91C_US_NBSTOP_1_BIT; /* 1 Stop Bit */

pUSART0->US_BRGR = BRD_USB; /* Baud Rate Divisor */

pUSART0->US_CR = AT91C_US_RXEN | /* Receiver Enable */
AT91C_US_TXEN; /* Transmitter Enable */


}

/******USB 模块通信用**********/
void Uart0WriteData (unsigned char data) { /* Write character to Serial Port */

while (!(pUSART0->US_CSR & AT91C_US_TXRDY)); /* Wait for Empty Tx Buffer */
pUSART0->US_THR = data;
}

unsigned char Uart0ReadData (void) { /* Read character from Serial Port */
while (!(pUSART0->US_CSR & AT91C_US_RXRDY)){ }
return (pUSART0->US_RHR); /* Read Character */
}

unsigned int Uart0_IsRxReady(void)
{
//return (AT91C_BASE_DBGU->DBGU_CSR & AT91C_US_RXRDY);
return (pUSART0->US_CSR & AT91C_US_RXRDY);
}
/******USB 模块通信用**********/

整个CH376在AT91SAM7S64上的使用就到此为止。 目前使用下列感觉还可以。

呵呵。

分享到:
评论

相关推荐

    CH375B-U盘读写模块参考资料

    总结来说,CH375B-U盘读写模块通过集成的CH375B芯片实现了对USB闪存盘的高效读写,简化了硬件设计,提供了易用的软件接口。无论是对于新手还是经验丰富的开发者,理解和掌握这一模块都能极大地提升USB设备的开发效率...

    CH376模块U盘读写-STM32F103_spi_CH376U盘读写模块_STM32F103_

    在本文中,我们将深入探讨如何使用CH376模块与STM32F103微控制器通过SPI2接口实现U盘读写功能。这个过程涉及硬件连接、固件配置、SPI通信协议以及CH376模块的命令集,是嵌入式系统中常见的一种应用。 首先,CH376...

    Ex201-U盘读写例程(CH376)例程

    1. **接口**:CH376支持USB 1.1和2.0协议,提供了串行接口(如SPI、I2C或UART)与主控制器通信。 2. **功能**:它可以作为USB主机,连接并管理各种USB设备,如U盘、USB摄像头、打印机等。 3. **命令集**:CH376有...

    CH376-V2.0.ZIP_STM32 CH376_STM32 HAL CH376T_ch376t stm32 驱动_stm

    CH376是一款微控制器接口的USB设备控制器,常用于实现嵌入式系统的USB接口功能。STM32是意法半导体(STMicroelectronics)推出的一款基于ARM Cortex-M内核的微控制器系列,广泛应用于各类电子设备。本篇将详细讲解...

    CH376模块TF卡读写-STM32F103_SPI通信_ch376TF卡读写模块_TF卡读写_STM32F103_

    在本文中,我们将深入探讨如何使用STM32F103微控制器通过SPI通信协议与CH376模块进行交互,实现对TF卡的读写功能。STM32F103是意法半导体(STMicroelectronics)推出的一款基于ARM Cortex-M3内核的微控制器,具有...

    基于STM32F407的CH376 U盘模块串口实现

    在本文中,我们将深入探讨如何在基于STM32F407的嵌入式系统中实现CH376 U盘模块的串口通信。STM32F407是一款高性能的ARM Cortex-M4微控制器,拥有丰富的外设接口,包括通用异步收发传输器(USART),这使得它非常...

    CH376U盘读写控制程序

    CH376是一款专门用于USB设备接口的微控制器芯片,由芯邦科技(Chipbond Technology)设计生产。...开发者需要熟悉CH376的数据手册,理解其工作原理,并具备一定的硬件接口编程经验,才能有效地控制U盘的读写操作。

    单片机+CH376读写U盘、SD卡中的文件

    总结起来,"单片机+CH376读写U盘、SD卡中的文件"是一项实用的技术,它使单片机具备了对移动存储设备的强大控制能力,不仅可以读写文件,还能管理USB设备。开发者需要熟悉CH376的接口、指令集和错误处理机制,结合...

    CH376S读CSV文件_ch376s_c_读写csv文件_

    CH376S是一款USB接口芯片,用于扩展微控制器的文件系统功能,包括读写SD卡或U盘上的文件。本篇文章将详细介绍如何在C语言环境下,利用CH376S芯片在STM32F103RCT6上实现CSV文件的读取和写入。 首先,理解CSV文件格式...

    CH375-U盘模块用户手册

    用户手册还提醒用户在使用模块时应遵守版权规定,未经建安工贸(***)书面同意,不得将手册内容用于商业目的。 实物照片部分则为用户提供CH375-U盘模块的外观图,包括顶层和底层的实物照片,以便用户了解模块的物理...

    STM32-CH376-Udisk.rar-.RAR_ CH376 FS_STM32 CH376_U盘 STM32_ch

    基于STM32的CH376 外扩U盘读取程序,很实用,可以很容易的改造成其他系统的u盘操作程序。

    STM32_U盘读写例程(CH376)

    在本例程中,我们关注的是如何通过STM32利用CH376芯片实现对U盘的读写操作。CH376是威尔盛公司(Willow Solutions)推出的一款USB主机接口芯片,支持多种文件系统,可以方便地与各种单片机进行连接,实现USB设备的...

    STM32-U盘读写例程(CH374)

    本例程使用了CH374芯片厂家提供的的文件系统库来读写U盘。程序执行如下操作: (1) 用户插入U盘后,首先显示磁盘容量。 (2) 打开U盘中的/STM32/armfly.txt文件,并显示前128个字符。如果找不到armfly.txt文件, ...

    ch376 u盘sd卡读写模块说明

    ch376 u盘sd卡读写模块说明 u盘模块的详细使用方法,和硬件配合

    ch376s的U盘读写

    CH376 支持USB 设备方式和USB 主机方式,并且内置了USB 通讯协议的基本固件,内置了处理Mass-Storage海量存储设备的专用通讯协议的固件,内置了SD 卡的通讯接口固件,这里给出里U盘基于单片机的程序。

    U盘文件读写程序(CH376资料+中文数据手册)

    使用CH376进行U盘文件读写时,开发者需要了解以下几个关键知识点: 1. **初始化CH376**:在开始任何操作前,必须先初始化CH376,设置其工作模式,包括选择USB设备类型、设置工作电压等。 2. **挂载U盘**:通过特定...

    基于CH376的U盘读写系统的设计与实现

    基于CH376S的U盘读写系统设计方案,通过STC90C58AD单片机与CH376S模块的结合,实现了U盘文件的高效管理。此系统不仅能够简化嵌入式系统中文件管理的过程,还具备很高的灵活性和适应性,适用于多种非PC环境下的数据...

    CH375_CH376_U盘模块

    在U盘模块中,CH375或CH376通常用于将微控制器与USB闪存驱动器连接,实现数据的读写功能。 在“CH375_CH376_U盘模块”这个主题中,测试程序是关键部分,它通常包括以下内容: 1. 驱动程序:驱动程序是连接操作系统...

    ch376-read-hardware.rar_CH376 STM32_CH376. SPI_STM32 CH376_stm3

    基于stm32控制ch376读写硬盘,ch376用主模式,spi接口通信。

Global site tag (gtag.js) - Google Analytics