前段时间,帮朋友设计了个小玩意。需求比较简单,就是用STM32模拟读卡器,通过TF卡读写一些文件,然后再有一些别的功能就可以了。

当时我觉得,这个不难啊,之前做过类似的东西。如果你看过我之前写的关于STM32的USB的那几篇文章,复杂了不敢说,鼠标、键盘、读卡器这些还是玩过的。

对成本不算太敏感,于是翻了翻手里还有什么库存,选了个STM32F4的芯片,USB选用芯片上的USB全速2.0接口,SDIO接口驱动TF卡,再加上其它的一些外设。画板子加焊接,加调程序,业余时间搞的,两周不到弄完了。

USB写入的时候,速度能到800KB左右。朋友说了,操作的都是几十KB的小文件,所以我感觉够了。

于是寄过去后,安心摸鱼…

哪知道,朋友那边收到后测了一下说不好用!!!

(⊙o⊙)纳尼?

需求没有沟通清楚

电话沟通一番,终于搞清楚了。他之前说文件大小只有几十KB,但是数量多,可能有几十个。而且这个读卡器接入的不是我们常用的电脑,是一种工业上用的机器,可以理解为特制的工控机。

显示器也不是常用的显示器,只能显示几个特定的界面。而读卡器接入工控机后,工控机会一次性把TF卡里的文件全都拷入机器内部的存储空间,这个时间不能太长,太常的话会被判别为读卡器故障。

那几十个文件的拷入时间预计有几十秒,太慢了….

我晕,最烦这种事前需求不说清,事后来补充的….

方案调整+第三方工具验证

改方案吧,USB2.0全速就不行了,要换成高速。

简单说下USB2.0支持的三种传输速度:

1、低速模式,1.5Mbps,换算成字节:187KB/S;

2、全速模式,12Mbps,换算成字节:1.5MB/S;

3、高速模式,480Mbps,换算成字节:60MB/S,实际不超过25MB/S。

STM32F407虽然支持高速模式,但是不能独立工作,需要外接一个高速的USB PHY芯片,这里选的是USB3300。它是美国microchip公司生产的一款高速USB PHY芯片,外设简单,价格合适,主要是资料多~~~

既然想要速度快,USB的差分线也要注意下,要考虑90Ω的阻抗匹配。祭出我的工具:HQDFM!

找到工具里的阻抗计算,打开,输入线宽与间距,算出阻抗:

再来一遍:导入PCB、布局、布线、铺铜、调整丝印,因为相比上一次做了一些改动,所以尽量用HQDFM工具检查一遍,避免出现一些问题。

导入GERBER文件后,直接“一键DFM分析”,还是比较省事的,综合评分92,凑合吧。有警告的那几项挨个看一下,确认没问题,就可以确认打板…

等下,他们又新添了个小工具:字符上焊盘分析。

有点意思,试一下…还真有点小问题:

改一下,发出制板。等待的这几天,调整了下程序。两个地方,一个是MSC_MEDIA_PACKET,默认是512,改大一些,另外就是堆栈,也改大一些,否则速度上不去。

项目干货资料下载

最后,因为涉及到朋友的利益,工程源文件就不分享了,分享一个USB3300的模块的原理图和PCB,以及HQDFM工具的下载链接。

HQDFM和AD、阿狸狗一样,也是电脑端使用的哈。下载地址(请复制到电脑端浏览器下载):

https://dfm.elecfans.com/uploads/software/promoter/hqdfm_bklyx.zip

其他的资料已经放在华秋DFM客户端的D分商城专区,下载登录华秋DFM,在D分商城专区就能看到。

D分商城专区入口:

在新页面的导航栏点击“我要推广”,进入D分专区:

进入专区后,在页面最下方,直接点击图片去百度云盘自取(不用兑换)

STM32模拟读卡器,对于工控机方案谨防踩坑相关推荐

  1. 【Vue】Vue1.0+Webpack1+Gulp项目升级构建方案的踩坑路

    最近半年在维护公司的一个管理后台项目,搭建之初的技术栈比较混乱,构建方案采用了Gulp中调用Webpack的方式,Gulp负责处理.html文件,Webpack负责加载.vue..js等.而在这一套构 ...

  2. 【群晖NAS】真·免费内网穿透方案 及踩坑合集

    一.介绍 一篇科普贴,帮助那些刚入门NAS的朋友尽量避免踩坑.因为本人实践了其中几种穿透方案,也积攒了一些经验,跟大家分享一下. 在这里想说一句,现在网上充斥着各种<内网穿透方案对比>,可 ...

  3. 年后准备跳槽一定要注意这几点。谨防踩坑

    经历了魔幻的2021最难招聘季,终于要迎来2022虎年.估计不少"打工人"早已蠢蠢欲动. 但领教过疫情的余威,经历过史上最难的地狱级求职季,尤其是对应届生求职受疫情影响比较大,求职 ...

  4. STM32使用ADC+DMA进行多通道模拟量采集 (踩坑及傻瓜式解析)

    STM32使用ADC+DMA进行多通道模拟量采集 (踩坑及通俗解析) ​ 利用STM32的片上外设可采集多个模拟量(如传感器数值),并在嵌入式程序中使用.如果只使用了一个通道,用时令ADC转换而后读取 ...

  5. 11.RT-thread项目实战--usb_device 模拟读卡器

    一.前言 在上节我们实现了FTP网络传输功能,实现了通过网络对设备的文件进行读写的功能,但是我们要是没网呢,想要导出数据文件怎么办?? 首先想到了USB,这次我们通过usb的otg接口,实现一个模拟读 ...

  6. STM32模拟电磁炮设计_STM32F103ZET6(程序+原理图+PCB+论文报告)

    本设计: 基于STM32模拟电磁炮设计_STM32F103ZET6(程序+原理图+PCB+论文报告) 原理图:Altium Designer 程序编译器:keil 5 编程语言:C语言 编号C0029 ...

  7. 前端模拟数据的技术方案(二)

    读取模拟服务器的静态数据,读取模拟服务器动态数据. 一.准备工作 1.参考文档 json-server官网 mockjs官网 2.安装包 # 安装json-server服务 npm install j ...

  8. STM32模拟USB多点触控屏

    STM32模拟USB多点触控屏 开发准备 STM32的USB官方例程库JoyStickMouse STM32F103RC Windows7 代码修改 1.usb_pwr.c RESULT PowerO ...

  9. 【STM32+机智云】机智云手机APP点灯实验踩坑记录

    [STM32+机智云]机智云手机APP点灯实验踩坑记录 一.实验背景 因为项目开发需要用到云平台,所以开始学习机智云平台,听说机智云比较容易入门,还有手机APP.因此开始了踩坑之旅,一切的一切开始于一 ...

最新文章

  1. android OkHttp form 上传图片和参数
  2. 有多少用户痛点,你是听回来的,而不是经过深思过后找出来的
  3. python 单元测试 unittest
  4. 编程行业里面的新行话
  5. oracle 日期trunc,Oracle TRUNC(date) TRUNC(number)
  6. 手机中CAD图纸发送到电脑上后打不开了怎么办?
  7. 360来硬拼,云盘免费用了!新注册就能获得36T容量!
  8. 面向对象:结构化开发方法和面向对象开发方法
  9. mysql 系统的健壮性_系统的健壮性和可恢复性
  10. java将十进制数字转换成二进制
  11. Kubernetes原生CI/CD构建框架Tekton详解
  12. Linux 基础命令 -- usermod
  13. python3爬虫系列教学、案例、代码实战,看这几篇就够了
  14. ExeCryptor脱壳脚本
  15. 启用非托管代码调试_托管,启用,授权:开放组织中的三个领导维度
  16. 难题 [已解决] :如何给Ubuntu系统安装无线网卡驱动?
  17. java+appium 连接第三方模拟机(夜神模拟器为例)
  18. Javaweb (jsp)课程设计(电子设备管理系统)
  19. 简单算法-bellman最短路
  20. 在HTML中将垂直转换为平行,大物实验思考题答案

热门文章

  1. 如何编辑制作并发送手机报?
  2. 2020-11-28画图上的最大值点,和零基准线
  3. 字符集、字符编码、国际化、本地化简要总结(UNICODE/UTF/ASCII/GB2312/GBK/GB18030)
  4. 高级篇之使用ENC编码器实现USBCam摄像头竖屏直播的方法
  5. C语言去除图像的离散区域,Visual C++数字图像实用工程案例精选
  6. IP、子网、超网(CIDR)、网段知识讲解
  7. C语言控制和鼠标键盘 (windows环境)
  8. Linux中ftp安装与基本操作
  9. 使用python生成图片验证码
  10. itext生成页眉页脚