概述
CH365是一个连接PCI总线的通用接口芯片,CH367/CH368是连接PCI-Express总线的通用接口芯片。支持I/O端口映射、存储器映射、扩展ROM以及中断,提供主动并口、SPI、I2C、GPIO等硬件接口。基于如上芯片可将PCI/PCIe总线转换为简便易用的类似于ISA总线的32位/8位主动并行接口,用于制作PCI/PCIe总线的计算机板卡,以及将原有板卡升级到PCI/PCIe总线上。相较于原产品,速度更快,实时性更好,可控性更佳,适用于高速实时的I/O控制卡、通讯接口卡、数据采集卡等。
驱动和调试软件支持CH36X芯片的IO、MEMORY、CONFIG空间以字节、字、双字三种方式进行读写操 作,同时提供了SPI和I2C接口函数,可直接操作EEPROM和FLASH等器件。支持4种中断方式的配置:上 升沿、下降沿、高电平、低电平,具体操作可参考下面的调试演示。
驱动安装包:CH367DRV.ZIP - 南京沁恒微电子股份有限公司
安装包说明:CH367/CH368的Windows驱动和DLL动态库,支持32/64位 Windows 11/10/8.1/8/7/VISTA/XP, SERVER 2016/2012/2008/2003, 2000/NT4.0/ME/98操作系统,通过微软数字签名认证,用于CH367和CH368的PCIE卡。
开发资料包:CH368EVT.ZIP - 南京沁恒微电子股份有限公司
资料包说明:该资料包包含两个目录文件
DEBUG368:CH36X的调试应用程序
PUB:CH368评估板说明和原理图
驱动安装和设备识别
-
在主机设备断电环境下将CH368板卡插入PCIe插槽(禁止热插拔)
-
解压驱动安装包
-
打开安装包双击应用程序
-
点击安装,等待出现安装成功信息即可
-
在设备管理器中查看CH368设备(快捷键win键+x)
-
鼠标右击选择属性可查看驱动信息和设备ID等信息。厂商标识:[1c00]设备标识:[5824]
-
打开解压后的CH368EVT文件,进入DEBUG368,点击应用程序DEBUG368.exe
-
软件打开后界面展示
硬件展示
CH368 评估板主要由 CH368 芯片、排针引出的 IO/MEM/地址/数据信号线、FLASH 芯片、 EEPROM 芯片、电源电路以及演示用 LED 组成,用于演示 PCI-Express 总线通用接口芯片 CH368 的基本功能:IO 读写、存储器读写、SPI 读写、I2C 读写、配置空间读写以及中断 演示等。该评估板还可以测试 CH368 自定义 PCIe 板卡的 ID 功能、调节脉冲宽度以及支 持 32 位 MEM 宽度读写等。
实物展示
元器件介绍
P1 是 PCIe 总线,直接插入计算机的 PCIe 插槽。 P2、P3 是 CH368 芯片本地端的控制总线,数据总线,地址总线等信号线引出。
U1(CH368)是 PCI-Express 总线的通用接口芯片。 U2(ASM1117)是1.8V 稳压管,为 CH368 内核提供电源。 U3(24C02)是 I2C 接口 EEPROM,可为 CH368 定制 PCIe 板卡的 ID。如果 CH368 启用外部 ID,则可以在 U2 中自定义供应商标识 Vendor ID 和设备标识 Device ID 等。如果未设置为外部 ID,则使用 CH368 默认 ID,此时 U3 可以省去。 U4(25F512)是 SPI 接口 FLASH,用来保存应用数据。在不测试 SPI 读写时可以省去。 U5(74LS273)8 位数据/地址锁存器,用来锁存 I/O 端口的数据。 U6(7805) LDO 稳压到5V。
JP1 为 CH368 电源选择: 1-2 短接 CH368 通过 PCIE 3.3V 供电,默认2-3 连接。 2-3 短接 CH368 通过 PCIE 3.3Vaux 供电,当系统关机后,CH368 不断电,可通过 WAKEIN 信号唤醒计算机(需要软件支持)。 JP2 为输出电源选择 1-2 短接输出5V 电压给 P3 所接外设供电。 2-3 短接输出3.3V 电压。
F1 是保险丝 C1、C17 是100UF 电源退耦电容。 C2、C4 是10UF 电源退耦电容。 C3、C5~C16、C18~C23 为0.1UF 电源退偶电容。 RP1~PR3 为2K 欧姆排阻,用于限流。 RP4~RP19 为200 欧姆排阻。 R1、R2 为0 欧姆电阻,其中 R2 用于支持 PCIe 唤醒信号线,不用时可以省去。 R3 为外接12KΩ电阻到 GND,用于系统参考电流输入。 R5 10K 欧姆电阻 L1~L11 为 LED,用于演示总线 I/O 写、通用输入输出信号读写,对应的信号包括: INT/SDX/SCL/SDA/SCS/ADDR/RSTO。
功能演示
点击界面底部的“打开设备”,软件自动显示设备信息
可在设备管理器中进行比对,设备管理器->右击PCIe扩展板卡CH368->属性->资源
IO/MEM脉冲宽度设置
a-功能
通过更改读写速度控制寄存器的位,来控制脉冲宽度。
b-实现
使用 DEBUG367/368.EXE 程序“脉冲宽度设置”功能来查看当前脉冲宽度和设置 所需脉冲宽度。
c-验证
读写脉冲的宽度从 30nS 到 450nS 可选。读写脉冲净宽度最小为 0nS,最大为 480nS;含建立时间和保持时间的读写信号总宽度步距为 30nS,最小为 60nS,最 大为 510nS
d-演示
当前脉宽为240ns,设置为30ns
IO读写演示
a-功能
CH368 支持以字节/字/双字为单位对 I/O 端口访问,支持直接地址/偏移地址访问 I/O 端口。
b-实现
使用 DEBUG367/368.EXE 程序“IO 读写”功能可以演示通过直接地址或者偏移地 址对 I/O 端口进行访问。
c-验证
U5 可以用于简单测试 I/O 输出功能,CH368 的任何 I/O 的输出数据都会在 IOWR 脉冲结束时被锁存器 U5 保存,然后驱动 L1~L4 这 4 个 LED,显示 I/O 数据端口 D3~D0 位的状态。灯亮代表 1,灯灭代表 0。 第二种方法通过外接逻辑分析仪等监控设备抓取数据线上的输出数据验证输出功能。
d-注意
当选择字,双字模式进行读写 IO 时,输入的地址和长度需分别为 2 和 4 的倍数, 块读写的最大长度为 32K。
e-演示
测试IO读供能,由于双向数据信号线内置上拉电阻,默认为高电平,所以通过D0数据信号线外接GND拉低电平,D1~D31保持不变,利用调试工具读取一字节数据为0xFE,验证成功
IO写数据演示:往IO空间00端口写入数据0x05,使用逻辑分析仪抓取D3~D0数据位的值为0101 验证写数据成功。
Memory空间读写演示
a-功能
和 IO 读写功能类似,CH368 支持支持以字节/双字为单位对 MEM 进行读写。
b-实现
使用 DEBUG367/368.EXE 程序“Memory读写”功能可以演示通过偏移地址对存储器端 口进行访问。
c-验证
可连接外部 Memory器件来写入和回读数据,当不连接外设时可使用逻辑分析仪/示波器等硬件仪器监控总线数据(参考以下测试举例)。
d-注意
选择双字进行读写双字进行读写时,输入的地址和数据长度需为4的倍数,输入的 地址和数据长度的和应小于等于 0x7FFF,进行双字读写前需勾选32bit勾选框。
e-演示
以字节为单位写数据0x03H,硬件上逻辑分析仪连接双向数据线D0~D3抓取输出值为0011,验证写数据成功。
双向数据端口D0~D31默认高电平,将D0接地拉低电平,此时进行Memory读取信号线D7~D0的数据为1111 1110(0xFE),利用软件读取验证
I2C 读写功能演示
a-功能
CH368 支持 I2C 接口与外设通讯,支持读/写 EEPROM。
b-实现
使用 DEBUG367/368.EXE 程序“I2C 字节读写”功能可以演示 24CXX 中数据的变化。
c-验证
外接配置芯片 24CXX 是非易失串行 EEPROM 存储器,除了向 CH368 提供配置信息 之外,还可以供应用程序自行保存一些其它参数。
d-注意
CH368 支持以下型号的 24CXX 芯片:24C01(A)、24C02、24C04、24C08、24C16 等。 CH368 芯片会在每次开机或者 PCIE 总线复位后检查外部的 24CXX 配置芯片中的数据,如果连接 了配置芯片并且数据有效则自动加载到 CH368 芯片中替换默认的 PCIE 识别信息。所以当不需要修改芯片的 ID 时,外部配置芯片有效标志不能为 78H,具体参考CH368芯片手册。
e-演示
I2C读取演示:地址[00H]
I2C写数据演示:此时更改该地址数据为FFH,并再次回读验证写入功能
读取该地址数据后为写入数据FFH,验证成功
配置信息读写演示
点击配置信息可以获取/配置芯片信息,配置信息的更改需要参考上述注意事项以及CH368芯片手册。
SPI接口功能演示
a-功能
CH368 支持 SPI 接口与外设通讯。
b-实现
使用 DEBUG367/368.EXE 程序“SPI 演示”功能可以读/写/擦除 FLASH 数据。
c-验证
除了读/写/擦除 FLASH 芯片 25F512(U4)外,DEBUG367/368.EXE 程序还提供选择 IO 模式 SPI3/SPI4 和时钟频率 15.6MHz/ 31.3MHz 的设置。
d-注意
不同品牌和型号的 FLASH 芯片,命令码不同,需要参考 FLASH 芯片手册。
e-演示
SPI读取演示:DEBUG367/368.EXE 程序是以文本的形式对FLASH进行读写,可以看到FLASH中有提前写入的数据
FLASH擦除演示:点击擦除显示擦出成功后,再读取FLASH,此时已擦出成功
SPI写FLASH演示:在文本中输入字符串“qwertyuiopasdfghjkl”,再读取FLASH中的内容,数据相同验证成功
回读数据:
配置空间读写
a-功能
支持字节读/写访问配置空间。
b-实现
使用 DEBUG367/368.EXE 程序“配置空间读写”功能可以演示。
c-验证
根据 CH368 芯片手册输入对应的配置空间地址,检查回读对应数据。
d-注意
配置空间的位属性不同,有些完全只读、有些可读可写、有些只读但可以事先设 定等等,具体请参照 CH368 芯片手册。
e-演示
读取配置空间01H的数据为1CH,对比数据手册验证读取成功
中断功能
a-功能 CH368 支持电平/边沿 2 种中断类型,通过打开设备时操作中断寄存器,可以选择中断类型,详细说明请查看 CH368 芯片手册中 IO 基址寄存器和硬件中断的相关说 明。 b-实现 使用 DEBUG367/368.EXE 程序“中断演示”功能。 电平中断: 程序通过"电平中断"按键来控制 A15引脚产生一个高电平信号和一个低电平信号,从而触发中断,进入中断以后产生一个高电平取消中断请求。 边沿中断: 程序通过"边沿中断"按键来控制 A15引脚模拟产生上升沿信号,当 INT#脚 收到上升沿信号后进入中断计数,进入中断以后设置 CH367/CH368 的中断激 活状态位为 0,从而取消中断。 c-验证 通过输出引脚A15 来控制 INT#触发中断,采用低电平有效的电平触发方式,和上升沿有效的边沿触发方式。 d-注意 在演示时需要把 INT#与 A15 短接。
e-演示