1、制作最小系统板
在制作最小系统板的时候,要用USB转TTL给板子供电,留了一个电源输入的四个接口,同时又用排针引出来VCC和GND用于后续其他外设的电源供应,电源配有电源指示灯和保护电容,
当时在焊接的时候把接口处的电源输入直接和引出的电源接口接到了一起,导致开关只控制了单片机的使能和和复位,最后的现象是开关没有按下灯就会亮,只是比较暗,开关按下后指示灯变亮,一直不知道什么问题,想着直接这样也没什么影响,最后是通过把电源引出和电源输入的连接切断重新焊接到开关后面控制解决的灯先亮的问题
问题2:使用的是XPT2046作为模拟信号转换芯片,一个是这个芯片当时只找到了贴片封装,没找到插件封装,但又需要在洞洞板上实现,在老师的建议下我知道了封装转换板,就是把芯片贴上去,他引出的可以接排针的引脚,可以买到。再一个是在焊接好之后,发现一上电就会出现引脚1-8有好几个引脚都在冒火花,冒烟,但是仔细看也无锡粘连,没有出现短路现象,后百度看到说是焊锡膏粘连短路,我用万用表测果然引脚1和2之间发生了短路(我在刚焊好时是检查过没有问题的),所以我就用电阻引脚在芯片引脚之间剐蹭掉残留的焊锡膏,确实之后就没冒烟也没有冒火花了,应该是上电之后焊锡膏受热流动将引脚粘连在一起了,所以以后洗板还是要多注意这一个问题。
2、51单片机最小系统的检查
以STC89C52为例(洞洞板、蚀刻板都要检查,工厂打板部分步骤可省略)
1.测量单片机供电是否正常
51单片机的P20脚为GND,P40脚为VCC,红表笔接VCC,黑表笔接地:如果结果不为5V(2.6V或者其他),考虑是电源的问题。
1.1 首先检查电源线,红表笔接正极,黑表笔接负极,显示为5V左右,电源线正常。考虑是电路板的问题
1.2 将电压表调至通断档(红黑表笔短接电压表鸣叫)。
首先检查GND连接是否正常,将黑表笔接在电源开关GND,将红表笔接在单片机GND,看万用表是否鸣叫,若鸣叫则正常;不鸣叫,则GND断路,检查GND线。
然后检查VCC连接是否正常(单片机VCC与电源VCC)操作方法相同。
1.3 测试好后,重新检查单片机VCC与单片机GND之间电压是否为5V。只有单片机供电正常后,才能进行接下来的检查。
2.测量单片机的复位(以STC89C52RC为例,RST引脚,第9脚)
红表笔接RST ,黑表笔接GND,观察是否为0V,若为0V,则正常。
3.测量第30脚(ALE引脚)
红表笔接ALE引脚,黑表笔接地,如果电压值为1.7V,1.8V左右则正常,如果5V或者其他,则不正常。 若5V,可能是晶振部分出现问题,有三种情况:1.连线断了,2.某两个地方短路,3.晶振坏了。首先看18、19脚有没有短路,再看19、20有没有短路(万用表调至通断档,鸣叫即为短路),然后检查晶振脚与18脚是否断路,晶振脚与19脚是否断路。
3、LCD1602显示内容于背景色块重叠问题
调节对比度电位器,可解决
51单片机无法复位且LCD1602乱码问题
LCD1602按下复位后乱码的问题
保证各个外设接入干净电源和低(直接从电源处接入,减少转接)
4、AD报错 [Short-Circuit Constraint Violation]
(把这两个改成一样的就可以解决了)
5、PCB开板(光绘文件输出+嘉立创下单流程)
注意,下面内容属于引用,非原创,要自己去修改,现在只是记录,防止遗忘
板材选择参考
PCB打板之前必须要知道的FR-4 - 知乎 (zhihu.com)
光绘文件输出参考(见自己的文件夹)
6、关于51单片机最小系统的复位电路问题
到底是不是只能用极性电容?还有电容电阻如何匹配和选择??
7、GPS模块解码
里面有三种数据类型:GN、GP、BD 分别代表 双模模式、GPS 模式、北斗模式,提取其中的时间信息
8、电源类芯片选型
电源芯片_luo_suo的博客-CSDN博客
9、电源防反接、MOSFET选型
怎样选择MOSFET_weixin_30399055的博客-CSDN博客
最终选择N沟道MOSFET,如何选择如下
MOSFET选得好,极性反接保护更可靠_你的酸橘真甜~的博客-CSDN博客
防反接保护电路_*fzfw的博客-CSDN博客
10、电路设计种电容的使用
360°详解去耦电容,真正的理解及在真正工程中的使用!_Nydxsst的博客-CSDN博客
去耦电容:10uF电容与0.1uF问题_去耦电容为什么选0.1uf_小小烟王的博客-CSDN博客
电路设计——电容作用_霁风AI的博客-CSDN博客
11、ICL7660数据手册
ICL7660AIBAZA-T pdf, ICL7660AIBAZA-T Description, ICL7660AIBAZA-T Datasheet, ICL7660AIBAZA-T view ::: ALLDATASHEET :::
12、LM117LD-5.0/LM1117MP-3V3数据手册
LM1117LD-1.8/NOPB pdf, LM1117LD-1.8/NOPB Description, LM1117LD-1.8/NOPB Datasheet, LM1117LD-1.8/NOPB view ::: ALLDATASHEET :::
12转5V典型应用电路
13、压控晶振控制电路
晶振简介(OCXO恒温、 MCXO数补、VCXO压控、VCTCXO、VCOCXO)_tsx晶体的原理_沙漠的甲壳虫的博客-CSDN博客
SiT3809:80 -220MHz 单端压控振荡器VCXO_SiTime样品中心的博客-CSDN博客
14、信号发生部分
CPLD->产生方波
正弦信号发生器(DAC0832)
基于stm32单片机的信号发生器设计_基于stm32的信号发生器_单片机实例设计的博客-CSDN博客
15、STM32复位电RC时间计算、最小系统
STM32上电复位电路参数选择 - 爱码网 (likecs.com)
stm32f103c8t6最小系统引脚及功能原理图_stm32f103c8t6引脚图及功能_岁月哥的博客-CSDN博客z
基于STM32波形信号发生器proteus仿真设计(仿真+程序+报告+讲解)_stm32信号发生器_BT-BOX的博客-CSDN博客
16、直流插头的接法
DC直流电源插座 DC-005-2.6 - 简书 (jianshu.com)
17、退耦电容
退耦电容原理--退藕电容的一般配置原则_退藕电解电容用高频低阻_「已注销」的博客-CSDN博客
浅谈为什么大电容滤低频小电容滤高频的问题_电容大小与滤波频率的关系_学无止境_Charles的博客-CSDN博客
高频滤波电容的容量选择?_caoshengbiao的博客-CSDN博客
18、STM32F103C8T6最小系统
Altium Designer绘制stm32最小系统原理图_ad原理图模块分割线_缔宇diyu的博客-CSDN博客
STM32F103ZET6最小系统板制作指引_仙不悔的博客-CSDN博客
19、STM32的两个晶振
stm32 为什么有二个晶振_stm32为什么要两个晶振_红了芭蕉,绿了樱桃:)的博客-CSDN博客
20、STM32F103C8T6数据手册
STM32F103C8T6 pdf, STM32F103C8T6 Description, STM32F103C8T6 Datasheet, STM32F103C8T6 view ::: ALLDATASHEET :::
嘉盛单片机开发参考资料
更多资料链接
21、DAC0832使用详细参考
(七)DAC0832 数模转换芯片的应用 以及运算放大器的学习 01 - 无悔这一生。 - 博客园
22、IO扩展之74HC595
单片机芯片之——图解74HC595(第一部分)_Vuko-wxh的博客-CSDN博客 51单片机74HC595驱动LCD1602扩展IO口_单片机驱动595_菜鸟会点灯的博客-CSDN博客
为什么没有使用74HC595呢?因为本来是节约4个IO,但是由于LCD1602还要一个忙不忙的反馈判断需要读取D7位,则还要占据一个IO,只节约3个IO操作要增加一步,所以先不考虑这种扩展。
23、STM32通过74HC595扩展IO驱动LCD1602
51单片机74HC595驱动LCD1602扩展IO口_单片机驱动595_菜鸟会点灯的博客-CSDN博客
为什么没用呢?因为用的话确实IO可以节省4个,但是由于LCD操作前还要判断忙不忙,使用74HC
(最后还是用了)
24、STM32下载程序相关
STM32最小系统板程序下载_stm32最小系统板下载程序_Wooooone的博客-CSDN博客
25、STM32的AFIO时钟使用
STM32的复用时钟(应该是复用重映射时钟)的开启时间。只是单纯的默认的复用类似引脚第二功能,不需要开始复用重映射时钟,发生重映射才开启复用重映射时钟_复用时钟开启后复用重映射时钟需要开启吗_qq_25814297-npl的博客-CSDN博客
26、proteus报错解决
1、电源未配置(stm32中间的VDDA,VSSA隐藏管脚)proteus提示“No power supply specified for net VDDA in Power Rail Configuratin” 错误_没有为电源轨配置网络vdda指定电源_Fang_s076的博客-CSDN博客
2、接线端子设置不进行仿真Proteus 仿真时出现 No model specified for J1、2、3 debug_no model specified for j1. [j1]_perseverance52的博客-CSDN博客
3、未加载程序文件proteus 遇到Program file is not specified和Real Time Simulation failed to start._proteus未指定程序文件_霍志杰的博客-CSDN博客
27、Proteus闪退问题解决办法
Proteus 8.12 安装教程及解决闪退-CSDN博客
STM32进行Protuse仿真时一直报错要注意这些:
1、32芯片晶振频率是否设置,如果没有,message在仿真时错误会一直增加达到好几千条
2、创建工程要选择部件库M3内核,且选择keil编程(自己截图证明)
(此两条属于原创解决哈哈哈)
在Proteus进行stm32程序的仿真运行_不#曾&轻听的博客-CSDN博客
28、DAC管教使用法则
DAC0832_百度百科
概括来说就是:
ILE(H)
CS和WR1接在一起组合成LE1,用一个IO控制,H时DAC寄存器输出随输入变化,下降沿锁存
XFER和WR2组合成LE2,用一个IO控制,为H时DA寄存器的输出随寄存器输入变化,下降沿时将数据锁存器的值打入DAC寄存器并开始D/A转换
29、STM32使用片外8M高速时钟(使用的第二段程序代码最后行拿出来放到外面)
【STM32】系统时钟RCC详解(超详细,超全面)_stm32时钟_Z小旋的博客-CSDN博客
30、STM32使用SWD下载程序
STlink使用四线SWD为STM32下载/调试程序_cumt240的博客-CSDN博客
STlink使用四线SWD为STM32下载/调试程序_stlink四根线_cumt240的博客-CSDN博客
(按照第二个接线是成功的)
31、STM32同时使用多个串口
STM32同时使用多个串口,使用printf_stm32多个串口怎么用printf_xiao_zhou_joy的博客-CSDN博客
32、GPS部分
1、字符串相关函数:
strstr()函数的使用说明(C语言)__Crazy€的博客-CSDN博客
2、GPS数据格式:NMEA-0183协议_pzs0221的博客-CSDN博客
33、CPLD部分
1、关于安装MAX II库。很惭愧我没在官网找到到底在哪儿下载,直接在网上下载的,注意要是.qdz后缀,按照文件默认路径,如果已有库文件复制到默认路径还是显示Can't find Quartus ll Subscription Edition device files (.qdz)in directory F:\CPLDquartusbin,则是因为版本不匹配,要对应,Quartus ll版本不仅看13.0,还要看后面的数字也要一致,在这里可以看
Quartus II软件安装过程中的can't find Quartus II subscription Editon device file(.qdz)_nwsuaf_huasir的博客-CSDN博客
2、仿真Modelsim
破解版安装教程
modelsim se 10.5安装教程_modelsim10.5_呓语煮酒的博客-CSDN博客
3、Quartus报错解决:
1)Error (292027): Specified license does not contain information required to run the Quartus II software
许可证出了问题,License可能自动链接到Modelsim在C盘下建立的文件夹,换回来就可以了
2) Error (292027)Error: Quartus II 64-Bit EDA Netlist Writer was unsuccessful. 1 error, 0 warnings Error: Peak virtual memory: 4485 megabytes Error: Processing ended: Thu Mar 23 11:43:20 2023 Error: Elapsed time: 00:00:00 Error: Total CPU time (on all processors): 00:00:00: Specified license does not contain information required to run the Quartus II software
34、Mudelisim仿真始终没有任何变化
工程文件打仿真要在simlation->start simulation->work里面选第二个那个在源文件名后面加了一串的那个文件,重新打开的wave需要手动添加查看变量
35、STM32和CPLD进行SPI通信
STM32与FPGA之间的SPI通讯_stm32 fpga_涛涛呐~的博客-CSDN博客
36、CPLD驱动74HC595
FPGA驱动74HC595实现数码管动态显示_74hc595驱动数码管_学习就van事了的博客-CSDN博客
37、CPLD驱动DAC0832
电子设计大赛-信号源类题目分析_三个独立的信号源 正弦波:频率50hz,幅值1v,偏移1v; 脉冲波:频率10khz,幅值0v/1v_嵌入式基地的博客-CSDN博客
38、CPLD方波毛刺处理(软件)
方波中的毛刺_方波上升沿毛刺过大怎么办_ALIFPGA的博客-CSDN博客
39、Quartus II报错解决
1、
Quartus 2 使用错误集锦_error (10137): verilog hdl procedural assignment e_xhnmn的博客-CSDN博客
2、assign 里面进行赋值的语句一定要是reg变量
40、Quartus II与Modelsim联合仿真操作
1、仿真步骤:各种初始配置及联合请看正点原子相关视频,讲得很清楚,现在只联合配置完从建立工程后。
最先要连接到Modelsim
第一步:生成test_bentch
第二步 按照生成后下方信息栏给出的路径打开test_bentch文件,文件后缀为.vt(打开文件夹没有看到就将文件类型改为 all files),一般是这个路径下
打开界面如下(以一个5分频工程为例,下面是配置完的,刚打开是没有配置的,需要自己配置)
第三步 test_bentch 的配置(分为5个部分)
①时间分度值,此处决定了仿真里面所有的延时时间单位,默认是1ps/1ps,一般调试改成ns够用
比如是1ns/1ns,则 #100就是延时100ns (再执行这一行的语句)
②注意这个名字是工程名自动后面加了“——vlg_tst”这个是不能更改的,而且后面在Modelsim里面仿真也要选择这个文件名,否则可能出现没有任何波形的情况
.v文件里所有用到的输入和输出都会出现在这里,输入定义为reg类型,输出定义为wire类型,默认就会有,不用管
③inital块
里面配置时钟、复位信号的初始值,注意复位信号,比如下降是复位,那么这里就要配置为上升沿才会有波形输出,因为配置为下降沿则为复位
④always里面是自动循环的,所以时钟信号翻转就配置在此处
其他没说的就不用管
第四步 配置完进行编译
第五步 进入Modelsim进行仿真,按照如下操作会自动跳转
第六步 会自动弹出很多窗口,但是我之前试过这个一直无法正常仿真,所以我按照如下方法
,在Modelsim里面按照如下方法
弹出窗口按照如下选择,一定要选那个结尾是_vlg_tst的文件
之后会自动跳转,再选中要查看波形的输入输出IO,添加到波形窗
调整仿真时间,点击运行,即可出现波形
如果没有的话点击WAVE窗口,ZOOM ALL 不是灰色了,再点击ZOOM ALL 再看看
以下为5分频波形仿真结果
41、压控晶振参数选择
一文搞懂!压控晶振工作原理及参数要求_百科TA说 (baidu.com)
42、AD编译过程种的问题
【AD15绘制原理图编译的一些警告的处理】_contains floating input pins_隐形的猫咪的博客-CSDN博客
43、AD报错解决
1、AD:细节 Off grid Net Label 0ILE at 14185.847mil,9200mil——栅格的问题
AD10原理图编译出现错误--off grid处理方法_Aries_新浪博客
44、PCB布线
【硬件设计】关于电赛——硬件设计和PCB绘制的一些心得(持续更新)_电赛使用的电路板的要求_GalaxyerKw的博客-CSDN博客
2、AD一起用BOOM表就闪退 ???
3、AD布线相关(板尺寸估计)
Altium AD20的PCB板框绘制、定义板子形状、重新设置原点、放置尺寸标注_ad板框画在哪一层_Mark_md的博客-CSDN博客
4、AD导出BOOM表的时候要先打开WPS或者Excel ,否则没有反应
5、线宽选择:(毕设:信号线:15mil,电源线:30mil;过孔20mil,焊盘35mil)
通常信号线宽为:0.2~0.3mm,0.254mm 10mil
电源线为1.2~2.5 mm,1.5mm 50mil
过孔:50mil,焊盘60mil
对于两层板来说,最好这样规划:表层走多条电源信号,另一层走多条地信号,让电源和地信号像“井”字形排列,基本上不走环线
一般都是就近接地,但要区分模拟和数字地:模拟器件就接模拟地,数字器件就接数字地;大信号地和小信号地也分开来
同时具有模拟和数字功能的电路板,模拟地和数字地通常是分离的,只在电源处连接避免相互干扰。不要把数字电源与模拟电源重叠放置,否则就会产生耦合电容,破坏分离度
6、过孔大小
过孔孔径优选系列如下:0.3mm,0.5mm(过孔、焊盘)
7、这个报错怎么办?也不能忽略,连线出来线都是绿叉
PCB焊盘之间间距小于10mil报错_collision小于10mil-CSDN博客
修改这个地方才可以
45、STM32各类时钟的区别(包括如何使用外部8M时钟)
STM32各种时钟的区别_内部时钟和外部时钟的区别_枯藤闲画云的博客-CSDN博客
46、DAC0832后面接LM358的作用,为什么没有看到任何反馈电阻??
从DAC0832内部工作原理探索DAC0832输出电压的方法_dac0832工作原理_pang9998的博客-CSDN博客
STM32如何使用外部8M晶振吗,配置前后没有区别是为什么?
使用外部 8M晶振的原因是精度更高。(void RCC_Configuration(uint32_t pllmul)放在sys.c文件)
STM32输出波形频率计算(此图片为转载)
47、0R电阻
0R 电阻在电路中的作用_0r电阻的作用_P_xiaojia的博客-CSDN博客
48、电路功耗分析
1、STM32(此图片为转载)
2、CPLD(FPGA)(MAX II)
quartus II带有估算功耗的功能(具体怎么用还不知道)
3、功耗分析的相关补充知识
芯片功耗分析_input duty_王_嘻嘻的博客-CSDN博客
49、GPS授时新角度
原来我一直想着通过捕获的外部信号作为基准去改变内部时钟的定时情况,现在突然打开新思路,不需要改变内部时钟情况,我可以产生捕获一个秒脉冲,同时用系统时钟产生一个秒脉冲,直接测量两个的相位差,比对得到误差再调整我系统时钟的输出波形,进行一个误差补偿,好像问题是不是解决了???
1、比如FPGA就可以做到测量两路信号的相位差(如下)
基于FPGA和STM32的相位差测量(含源码)_stm32测量相位差_Bigbeea的博客-CSDN博客
FPGA测两路信号相位差_fpga测相位_lt66ds的博客-CSDN博客
2、STM32+FPGA测频率基于FPGA和STM32的频率计设计(100Mhz-1hz精确到0.1hz)_stm32简易数字频率计设计_Bigbeea的博客-CSDN博客
50、quartus如何看rtl图
要先编译
之后会弹出rtl图(如下图所示)
图一5分频
图二 STM32与CPLD进行SPI通信
51、使用压控晶振那些你需要知道的事
以我所实用的Si3808 VCXO为例。(6脚压控晶振)
1、工作电压的范围
2、晶振的中心频率(50MHz)
3、晶振的控制电压范围:中心频率对应的控制电压为Vdd(电源电压)/2,且在数据手册里面对应有相应电源电压下的最大控制电压和最小控制电压,比如我使用的电源电压是3V3,标称频率为50MHz,则中心频率输出对应的电压是3V3/2=1.65V左右,根据数据手册该电源电压下的最大控制电压是3.2V,最低控制电压是0.1V,则控制电压调节范围为0.1V-3.2V控制电压输入阻抗是100KΩ,输入电容是5pF,输出电压最高为90%Vdd,最低为10%Vdd。
4、电路连接有要求:数据手册里面明确Vdd端要有15pF电容,Vdd要有104电容
5、ppm,晶振相对偏差单位,数字越小精度越高,计算方法n (ppm) =▲f(Hz)/中心频率f0(MHz),其中▲f为可调节频率范围,比如我选的是n=±100,f0=50,则可调节频率范围▲f=n*f0=±5000Hz。
6、提醒;晶振布线要尽可能靠近芯片,晶振周围最好不要其他器件
52、FPGA进行串口通信(读取GPS数据包括UTC,经纬度信息等,暂时先不用,作为后续参考)
FPGA项目四:串口通信_fpga串口调试助手_da..的博客-CSDN博客
53、模拟地和数字地的问题
模拟地与数字地详解_模拟电路与数字电路地一点共地的目的是_kevinhg的博客-CSDN博客
54、quartuas Ⅱ编译警告解决
1、Warning (10230): Verilog HDL assignment warning at cpld_catch_pps.v(137): truncated value with size 32 to match size of target (8)
FPGA Verilog编译时警告Warning (10230): truncated value with size 32 to match size of target (3)_panhongfeng111的博客-CSDN博客
2、 Verilog HDL Conditional Statement error at top_module
HDLBites学习笔记之Error (10200): Verilog HDL Conditional Statement error at top_module_程默白的博客-CSDN博客
3、
最大难题——依靠外来信号减小相位差同时输出电压控制外部振荡器!!!!!!!!终于找到一点方向,原来有锁相环的!!!!!!!!!
哈哈,CPLD没有锁相环这个功能,又回到最初的起点
55、FPGA任意分频
FPGA基础设计(二):任意分频器(奇数,偶数,小数)_fpga小数分频_帅杰的芯路之旅的博客-CSDN博客
56、基于CPLD驱动DAC0832的信号发生器
1、
eda设计基于CPLD的信号发生器设计.doc 全文免费在线看-免费阅读-max文档投稿赚钱网 (book118.com)
2、CPLD以查表方式生成正弦波,首先需要利用MATLAB或者是Python生成相应的码表
57、FPGA测量信号频率(只有第一个可以用,第二个和第三个CPLD用不了,资源不够)
FPGA频率测量的三种方法(直接测量法,间接测量法,等精度测量法)_fpga频率测量的三种方法(直接测量法,间接测量法,等精度测量法)_孤独的单刀的博客-CSDN博客
58、MATLAB导入EXCEL数据画图
如何将excel文件导入matlab并绘制曲线-百度经验 (baidu.com)
免费转PDF
7个免费PDF转换软件推荐 - 知乎
59、IEEE网站英文文献下载方式
IEEE XPLORE论文PDF免费下载方法-CSDN博客