LEVEL EXPANSION BOARD · V1.0

让 3.3V 的 FPGA
直接对话 5V 世界

16 通道双向电平转换转接板。插上 HSEDA 核心板 40 芯扩展口,FPGA 立刻可以驱动或读取 5V 的 LCD、继电器、数码管、传感器与老式单片机——不改电路、不换器件、上电即通。

16 通道 · 2 组 74LVC164245 双电源 ±24 mA 驱动 4~5 ns 延迟 50.8×26.8 mm
0~5VB 侧真实摆幅
免外部供电板载 LDO 取电
Why It Matters

3.3V 之后,老器件还在工作

现代 FPGA 的 IO 是 3.3V 甚至更低,而现场大量 5V 器件仍在服役。直连轻则通信不稳,重则烧毁 IO。

直连 = 拿 IO 冒险

5V 信号直接灌进 3.3V 输入脚,超过绝对最大额定值,长期运行会击穿输入级 ESD 结构。

3.3V 输出推不动 5V 器件

5V CMOS 的 VIH 通常在 3.5V 以上,3.3V 高电平落在不确定区,器件时而识别为高、时而为低。

面包板飞线不可交付

分立 MOS + 上拉电阻搭出来的转换电路,通道少、方向固定、走线杂乱,做出来的样机没法交给客户。

Features

六个理由,把它放进你的项目

不是简单的转接排线,而是一块考虑过过冲、误触发与供电路径的成品小板。

16 通道,两组独立方向

Port1 / Port2 各 8 位,DIR1、DIR2 单独控制。两组可同时工作在相反方向,互不干扰。

双电源自动匹配

A 侧 3.3V 由板载 AMS1117-3.3 产生,B 侧 5V 直接取自 J6-1。只要核心板供电,模块即工作。

方向由 GPIO 决定

DIR 高 = 3.3V→5V 输出,低 = 5V→3.3V 输入。运行中随时切换,不需要改硬件或跳线。

加固的 DIR 输入

DIR 串 33Ω 匹配电阻并配 1kΩ 上/下拉网络,抑制长线过冲与误触发,上电阶段也有确定偏置。

标准间距,即插即用

J6 为 2×20 / 2.54 mm,直接插在 HSEDA 核心板扩展口;J1、J2 为 2×5,杜邦线或 IDC 排线均可引出。

上电即通,零配置

输出使能 1G / 2G 已在板上接地,常使能。没有寄存器、没有初始化时序,插上就工作。

Architecture

一块板,三条信号路径

3.3V 数据经 A 侧进入转换器,5V 数据从 B 侧出来;方向由 DIR 决定,使能常通。电源只有一路。

FPGA 核心板 EP4CE10 / EP4CE30 XC6SLX9 / XC7A35 I/O = 3.3V J6 2×20 3.3V 侧 74LVC164245 16 位双电源电平转换器 A 侧 1A1~1A8 2A1~2A8 B 侧 1B1~1B8 2B1~2B8 VCCA 3.3V VCCB 5V 1DIR / 2DIR 1G / 2G 已接地(常使能) J1 2×5 · IN J2 2×5 · OUT 5V 外设 LCD1602 / 数码管 继电器板 / 传感器 8051 / 并口 ADC AMS1117-3.3 5V → 3.3V / 800 mA 3.3V 5V LED1 电源指示
方向定义:DIR = 1 → A 到 B(3.3V 侧 → 5V 侧,FPGA 输出);DIR = 0 → B 到 A(5V 侧 → 3.3V 侧,FPGA 输入)。 注意 DIR 引脚带 1kΩ 上拉 + 1kΩ 下拉,悬空时会停在中点约 1.65V,方向不确定,必须由 FPGA 主动驱动。
Specifications

技术规格

核心参数一览。完整引脚映射与 BOM 见产品说明书。

产品型号接口电平转换模块 V1.0(Level Expansion Board V1.0)
转换通道数16 通道(Port1:8 位,Port2:8 位)
核心器件74LVC164245(SSOP-48,双电源 16 位收发器)
A 侧逻辑电压 VCCA3.3V(板载 AMS1117-3.3 稳压)
B 侧逻辑电压 VCCB5V(直接取 J6-1 的 5V)
支持电平组合3.3V CMOS ↔ 5V CMOS / TTL
单通道驱动能力±24 mA(VCC = 3.0V 时)
传输延迟典型 4~5 ns
建议工作频率≤ 25 MHz(排线引出);短距离直连可达 50 MHz
静态电流小于 10 mA(不含负载,LED 约 1.5 mA)
板载稳压器能力3.3V / 800 mA(受 J6 供电路径限制)
方向控制DIR1 = J6-38 控制 J1;DIR2 = J6-37 控制 J2
输出使能1G / 2G 板上接地,常使能
接口J6:2×20,2.54 mm,40P;J1 / J2:2×5,2.54 mm,10P
板卡尺寸50.80 × 26.80 mm;4 × Ø3.2 mm 安装孔
PCB 工艺双面板,板厚 1.6 mm,蓝色阻焊,喷锡,过孔盖油
工作温度-40 ℃ ~ +85 ℃
适用边界:3.3V 侧电压由板上 LDO 固定,本模块不能用于 1.8V / 2.5V 系统;B 侧耐压上限 5.5V,禁止接 12V / 24V。 需要 1.8V 转换请选用 VCX 系列器件方案。
Board Layout

板卡布局与尺寸

三个连接器加一颗指示灯,50.8 × 26.8 mm,与核心板扩展口同宽,插上后不侵占额外空间。

正面:上方 J2 / J1(5V 侧 2×5),中间 ALVC164245 主芯片,下方 J6(3.3V 侧 2×20)
尺寸:50.80 × 26.80 mm,四角 Ø3.2 mm 安装孔
与 HSEDA EP4CE10 核心板组合:直接插入 40 芯扩展口,从核心板取 5V
背面可焊母排座:竖插核心板、横插杜邦线两种用法都支持
Pinout

接口与引脚定义

接线前请先核对 1 脚位置。J6 引脚号与数据位是反向排列的,这是最容易出错的地方。

引脚信号说明引脚信号说明
15V(D5V)5V 电源输入2GND地
3NC未连接4GND地
5GND地6~20NC未连接(模块不使用)
212A8Port2 数据位 8(MSB)222A7Port2 数据位 7
232A6Port2 数据位 6242A5Port2 数据位 5
252A4Port2 数据位 4262A3Port2 数据位 3
272A2Port2 数据位 2282A1Port2 数据位 1(LSB)
291A8Port1 数据位 8(MSB)301A7Port1 数据位 7
311A6Port1 数据位 6321A5Port1 数据位 5
331A4Port1 数据位 4341A3Port1 数据位 3
351A2Port1 数据位 2361A1Port1 数据位 1(LSB)
372DIRPort2 方向控制381DIRPort1 方向控制
39NC未连接40NC未连接

注意:J6 为 2×20 双排针,奇数脚在右列、偶数脚在左列,1 脚在右下方。插入核心板前务必核对 1 脚位置——插反会把 5V 加到信号脚上。

J1(Port1,丝印 IN)
引脚信号
1GND
2GND
31B8(MSB)
41B7
51B6
61B5
71B4
81B3
91B2
101B1(LSB)
J2(Port2,丝印 OUT)
引脚信号
1GND
2GND
32B8(MSB)
42B7
52B6
62B5
72B4
82B3
92B2
102B1(LSB)

J1 的丝印 IN、J2 的丝印 OUT 只是沿用「一路输入、一路输出」的习惯命名。实际方向由 DIR1 / DIR2 决定,两路都可以做输入,也都可以做输出。

数据位J6网络J1
bit1(LSB)361A1 → 1B110
bit2351A2 → 1B29
bit3341A3 → 1B38
bit4331A4 → 1B47
bit5321A5 → 1B56
bit6311A6 → 1B65
bit7301A7 → 1B74
bit8(MSB)291A8 → 1B83

Port1(J6 ↔ J1),方向由 J6-38 控制

数据位J6网络J2
bit1(LSB)282A1 → 2B110
bit2272A2 → 2B29
bit3262A3 → 2B38
bit4252A4 → 2B47
bit5242A5 → 2B56
bit6232A6 → 2B65
bit7222A7 → 2B74
bit8(MSB)212A8 → 2B83

Port2(J6 ↔ J2),方向由 J6-37 控制

最容易踩的坑:J6 引脚号与数据位反向排列(J6-36 = bit1,J6-29 = bit8);J1 / J2 也是 10 脚 = bit1、3 脚 = bit8。接线时请逐位核对上表。

J6网络EP4CE10EP4CE30XC6SLX9(V3.0)XC7A35 / A100
212A8D9PIN_H19118T1
222A7E10PIN_H20117R2
232A6C11PIN_H21116W7
242A5D11PIN_H22115W6
252A4E6PIN_J17114V7
262A3F8PIN_J18112W5
272A2B5PIN_J21111U6
282A1A5PIN_J22105Y3
291A8B6PIN_K17104W4
301A7A6PIN_K18102V5
311A6B7PIN_K19101V4
321A5A7PIN_K21100T6
331A4B8PIN_K2299V3
341A3A8PIN_L2198U5
351A2C8PIN_L2297U3
361A1A9PIN_M1995T5
372DIRB9PIN_M2094T4
381DIRA10PIN_M2193T3

XC6SLX9 一列的数字为核心板排针序号(非 FPGA 引脚名);XC7A35 一列对应核心板 J11 接口。

Quick Start

四步,10 分钟点灯

整个流程只有四步,不需要装驱动、不需要配置寄存器。

安装模块

J6 排针对准核心板扩展口,确认 1 脚方向后垂直插入。上电后红色 LED1 常亮,说明 3.3V 已建立。

连接 5V 外设

J1 的 1、2 脚接外设 GND,3~10 脚接外设数据脚。DIR1 = 0 时用万用表量,应为稳定电平无抖动。

设置方向

FPGA 中把 DIR 脚驱动到目标值。DIR1 = 1 输出、DIR2 = 0 输入,用万用表可在 J6-38 / J6-37 直接量到 3.3V 与 0V。

环回自检

没有外设时,把 J1 的 3~10 脚按位短接到 J2 的 3~10 脚。Port1 输出 8 位计数,Port2 读回同值即 16 通道正常。

Verilog · Port1 输出到 5V 外设DIR1 = 1
// 8 位数据经 Port1 输出到 5V 侧
module out8 (
    input  wire       clk,
    input  wire       rst_n,
    output wire [7:0] dout,   // 接 J6-36..29
    output wire       dir1    // 接 J6-38
);
    assign dir1 = 1'b1;          // 3.3V → 5V 输出

    reg [7:0] dat;
    always @(posedge clk or negedge rst_n)
        if (!rst_n) dat <= 8'h00;
        else        dat <= dat + 8'h01;

    assign dout = dat;
endmodule

外设端用示波器应量到 0V / 5V 摆幅;若只有 0V / 3.3V,说明 5V 没有送到 B 侧,检查 J6-1。

Verilog · Port2 采集 5V 输入DIR2 = 0
// 采集 Port2 的 8 位 5V 输入
module in8 (
    input  wire       clk,
    input  wire       rst_n,
    input  wire [7:0] din,      // 接 J6-28..21
    output wire       dir2,      // 接 J6-37
    output reg  [7:0] dat
);
    assign dir2 = 1'b0;          // 5V → 3.3V 输入

    reg [1:0] sync;
    always @(posedge clk or negedge rst_n)
        if (!rst_n) begin sync <= 2'b00; dat <= 8'h00; end
        else
        begin
            sync <= {sync[0], din[0]};   // 打两拍同步(示例)
            dat  <= din;
        end
endmodule

5V 输入为高时 FPGA 侧读到的约 3.3V,为低时约 0V。切忌在 DIR2 = 1 时把外部信号强加进来,会造成两侧对顶。按键、拨码等边沿敏感慢速信号建议在 FPGA 内打两拍后再消抖。

Verilog · 半双工总线,运行中切换方向切换前先置高阻
// 半双工总线:sel=1 写,sel=0 读
module half_duplex (
    inout  wire [7:0] bus,      // 接 J6-36..29
    output wire       dir1,     // 接 J6-38
    input  wire       sel,
    input  wire [7:0] wdata,
    output reg  [7:0] rdata
);
    assign dir1 = sel;
    assign bus  = sel ? wdata : 8'bz;   // 读周期先释放总线

    always @(*) rdata = bus;
endmodule

切换顺序:FPGA 侧对应引脚先置高阻 → 改变 DIR → 等待 ≥100 ns(远大于 5 ns 传输延迟)→ 再开始新的读写。不推荐用本模块做 I2C:SDA 在一次传输中多次换向,靠 DIR 切换会产生毛刺与总线争用。

Quartus 引脚约束 · EP4CE10 核心板可直接复制
# Port1:8 位输出(J6-36 → J6-29)
set_location_assignment PIN_A9  -to dout[0]
set_location_assignment PIN_C8  -to dout[1]
set_location_assignment PIN_A8  -to dout[2]
set_location_assignment PIN_B8  -to dout[3]
set_location_assignment PIN_A7  -to dout[4]
set_location_assignment PIN_B7  -to dout[5]
set_location_assignment PIN_A6  -to dout[6]
set_location_assignment PIN_B6  -to dout[7]

# Port2:8 位输入(J6-28 → J6-21)
set_location_assignment PIN_A5  -to din[0]
set_location_assignment PIN_B5  -to din[1]
set_location_assignment PIN_F8  -to din[2]
set_location_assignment PIN_E6  -to din[3]
set_location_assignment PIN_D11 -to din[4]
set_location_assignment PIN_C11 -to din[5]
set_location_assignment PIN_E10 -to din[6]
set_location_assignment PIN_D9  -to din[7]

# 方向控制
set_location_assignment PIN_A10 -to dir1   # J6-38
set_location_assignment PIN_B9  -to dir2   # J6-37
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to *

时钟引脚请按所用核心板的晶振实际引脚填写,不同版本核心板不一致。

Schematic

原理图公开

完整原理图随产品文档提供。核心就一颗 ALVC164245 加一颗 LDO,没有隐藏的魔法。

原理图 V1.0:J6 扩展口 → 电源(AMS1117-3.3)→ ALVC164245 → J1 / J2 5V 侧引出,DIR 带 33Ω 串阻与 1kΩ 上下拉
FAQ

常见问题

十个在调试现场最常被问到的问题。

上电后 LED1 不亮,模块没反应
检查 J6-1 是否有 5V、J6-2 / 4 / 5 是否可靠接地、排针是否插到底。LED1 由 3.3V 供电,灯不亮说明 3.3V 没有建立,先排查 5V 与 U1。
信号能通,但 5V 侧只有 3.3V 摆幅
B 侧没有供电。确认 J6-1 的 5V 已连接;若用外部电源单独给模块供电,务必接到 J6-1。
数据方向总是反的
DIR 电平设反了。DIR = 1 是 3.3V → 5V(输出),DIR = 0 是 5V → 3.3V(输入)。另外注意 DIR1 对应 J1、DIR2 对应 J2,别搞混。
读到的数据位顺序不对
J6 的引脚号与数据位是反向排列的(J6-36 = bit1,J6-29 = bit8;J1 / J2 的 10 脚 = bit1,3 脚 = bit8)。请对照「通道对应关系」逐位核对。
DIR 用万用表量到 1.6V 左右
DIR 引脚悬空了。该脚带 1kΩ 上拉 + 1kΩ 下拉,悬空时会停在中点。必须由 FPGA 主动驱动到明确的高或低。
能不能转 1.8V 或 2.5V?
不能。A 侧电压由板上 LDO 固定为 3.3V。需要 1.8V / 2.5V 请选其他方案(如 VCX 系列器件)。
能不能做 I2C / 单总线?
不推荐。这类协议在传输中频繁切换方向,用 DIR 切换会引入毛刺与总线争用。建议使用专用双向电平转换电路(MOSFET 方案)。
5V 侧能接 12V 或 24V 吗?
绝对不能。B 侧耐压上限为 5.5V,超压会直接损坏 ALVC164245。
能同时用满 16 路吗?
可以。两组各自独立、互不影响,可同时工作在相反方向。
模块可以带电插拔吗?
不建议。插拔瞬间的浪涌和地弹可能损坏器件,请断电后插拔。
Precautions

使用注意事项

下面每一条都对应过现场的真实故障。

!严禁超压:A 侧不超过 3.6V,B 侧不超过 5.5V。
!严禁插反:插入核心板前核对 J6 的 1 脚位置。
!DIR 不可悬空:必须由主控明确驱动高或低。
!避免对顶:方向切换前先让驱动方进入高阻,同一时刻只允许一侧驱动。
!感性负载加保护:驱动继电器、电机时在负载端加续流二极管,避免反峰击穿。
!长排线降速:杜邦线引出超过 20 cm 时,把信号频率降到 10 MHz 以下,或在 FPGA 侧加串阻。
!静电防护:拿取时先释放静电,避免直接触碰排针与芯片。
!不防水不防潮:请勿在凝露、高湿或强腐蚀环境使用。

现在就把 5V 外设接上

产品型号:接口电平转换模块 V1.0
配套平台:EP4CE10 / EP4CE30 / XC6SLX9 / XC7A35 系列 FPGA 核心板