#训练营#基于GD32的简易数字示波器 - 嘉立创EDA开源硬件平台

编辑器版本 ×
标准版 Standard

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版 professional

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

专业版 #训练营#基于GD32的简易数字示波器

简介:基于立创官方开源的简易示波器项目,修改了部分元件,增加了电池充电管理电路

开源协议: GPL 3.0

(未经作者授权,禁止转载)

已参加:简易数字示波器训练营

创建时间: 2024-03-04 19:51:42
更新时间: 2024-04-14 10:48:34
描述

B站演示视频已发布:https://www.bilibili.com/video/BV1hx4y1e7Gg

示波器具体原理请参考官方项目文档:https://www.yuque.com/wldz/jlceda/dso?singleDoc

硬件部分:

基于官方提供的原理图进行了一些细节上的修改:

1.将直插阻容替换为0603封装,将运放和比较器、电荷泵芯片替换为功能相近的贴片型号以节省板面空间,方便布线。部分元件立创没货了,上淘宝买的

2.将开发板排针替换为最小系统电路,提高系统集成度。去掉了LSE晶振(因为引脚被占用了),引出了USB引脚

3.将直插2P Type-C母座替换为更常见的16P母座,并增加5.1k下拉电阻以兼容C TO C线(16p接口焊接难度较高,如果缺少焊接经验可考虑使用DC母座供电)

4.增加了电池以及对应的电源管理电路,使用IP5407电源管理芯片,集成了升降压,电源路径管理(插入外部电源时会自动切换为外部供电并同时给电池充电),过流过压短路保护,电量显示,照明灯等功能(长按右侧按键可开启照明灯,短按可显示当前电量)

5.采用三明治结构堆叠设计,将BL5C锂电池固定在屏幕下方以提高空间利用率(在安装时建议搞点泡棉或者打印对应的垫块防止电池和屏幕晃动)

电池座链接:【淘宝】https://m.tb.cn/h.5CRHAIGYk6M6tiu?tk=1PyLWL5UdiD HU0854 「数码产品配件连接器 3PIN电池座端子 BC-3P-4.6/5.4/7.0铜耐高温」点击链接直接打开 或者 淘宝搜索直接打开

电池座左边的是电源测试点,未安装IP5407时可以将上面两个点短接以实现5V直通

6.将BNC接口替换为MCX接口,支持正点原子示波器探头,减少采购成本和板面空间占用。如果没有正点原子示波器的可以换成其他插座,看别人有用SMA或者直接放个排针的

硬件部分的问题:

1.EC11选型错误,此型号阉割了中心可按压开关,目前通过魔改(把另一型号轻触开关的锅仔片和按键帽移植了过去)暂时修复了此问题,建议替换为其他有中心开关的型号

当前存在问题的型号:C2687284

2.过压保护二极管位置错误,应当放置在衰减选择开关后面,放在当前位置会导致无法测量超过5V的信号

3.布局疏密不均,有进一步优化的空间

软件部分:

基于官方最终案例进行了一些修改:

1.修改了波形显示部分代码,解决了官方代码显示波形与实际波形方向相反的问题

//依次显示后续100个数据,这样可以防止波形滚动
for(i=Trigger_number;i<Trigger_number+100;i++)
{
    if(oscilloscope.keyValue == KEYD)
    {
        oscilloscope.keyValue=0;
        do
        {
            if(oscilloscope.keyValue == KEYD){
                oscilloscope.keyValue=0;
                break;
            }
        }while(1);
    }
    voltage=oscilloscope.voltageValue[i];

    if(voltage >= median)
    {
        voltage = 30 + (voltage - median)*gainFactor;
    }
    else
    {
        voltage = 30 - (median - voltage)*gainFactor;
    }
    drawCurve(80,voltage);
}          
}        
 

2.增加了RGB888转565函数,以便于修改界面颜色

#define RGB888_RED 0x00ff0000
#define RGB888_GREEN 0x0000ff00
#define RGB888_BLUE 0x000000ff

uint16_t RGB888ToRGB565(const uint32_t n888Color)
{
    uint16_t n565Color = 0;

    // 获取RGB单色,并截取高位
    uint8_t cRed = (n888Color & RGB888_RED) >> 19;
    uint8_t cGreen = (n888Color & RGB888_GREEN) >> 10;
    uint8_t cBlue = (n888Color & RGB888_BLUE) >> 3;

    // 连接
    n565Color = (cRed << 11) + (cGreen << 5) + (cBlue << 0);
    return n565Color;
}

 

3.优化了部分文字的显示位置

软件部分的问题:

1.耦合方式切换到AC时会出现波形失真

2.编码器驱动程序需要优化

外壳部分:

1.绘制了与轻触开关和编码器对应的按键帽和旋钮(替换其他型号EC11时请注意修改旋钮尺寸,内部槽孔宽度不能太小,不然会塞不进去)

画按钮的时候也要注意参考实际开孔尺寸和轻触开关顶部到外壳的距离

在led之间放置了挡光板,用以增强指示灯显示效果

2.使用拓竹标牌定制器绘制了浮雕面板(对应文件放在附件)当前使用的安装方法是先把面板贴上去再用小刀开孔,因为拓竹生成的3MF文件内置了多色数据,不方便再用其他软件编辑,所以就没有预先画好开孔

 

 

设计图
原理图
1 /
PCB
1 /
未生成预览图,请在编辑器重新保存一次
工程成员
侵权投诉
相关工程
换一批
加载中...
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

温馨提示
动态内容涉嫌违规
内容:
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

support
  • 开源平台公众号

MP