当前位置: 首页 > article >正文

OTP单片机调试工具

        大部分的OTP单片机开发流程是先用仿真器进行仿真,f仿真完成之后再烧录OTP单片机芯片进行验证,但是很多少时候会发现有一个问题,仿真器仿真都是OK的,但是一旦焊接在板上了,就往往发现有问题,因为硬件条件变化,会出现,比如ADC不准,流程不对等,这要怎么样破解呢?

       解决方法就是去查看寄存器/内存,根据单片机状态去判断对应流程或是数据。那离开了仿真器,怎么样去查看这些数据呢?

      可以根据需要选择以下方法:

      1.预留1个IO口,当程序运行的时候,用点灯方式进行验证,有运行则亮灯;没有运行,不亮灯。但是这种效率比较低,毕竟只有 一个bit变量,要么0,要么1

      2.同样是预留一个IO口,但是这个IO可以输出PWM波形,用PWM的占空比多少,表示程序的运行状态,OK,这个方法感觉好一点了,可以有8bit/10bit的状态输出

      3.还是预留一个IO口,把这个IO口变成uart口打印输出,但是很多otp单片机,不带串口控制器,需要用IO口去模拟串口,这样就可以输出更多的状态。但是因为时钟不匹配的关系,串口的波特率输出不能太高,导致串口打印毕竟耗时,当串口打印数据多了,会影响流程。串口打印数据还必须串口连接PC,在PC上开个串口调试助手,查看数据。

     除了上面3种方法,还有没有其他方法呢。

下面就介绍第4种方法,这是在第3种方法上去做扩展

    1.调高通信速率,使用高速串口,比如1M,2M这种,或是使用红外编码,单总线编码方式,大幅度提高通信速率,减少打印耗时,减少对程序流程影响

    2.把串口助手显示换成OLED屏显示。

    3.控制显示数据量,减少对正常运行流程影响。

   下面是我做的一个打印调试样品,

   

1.串口命令格式共有6个字节 分别为 头(1byte) 命令(1byte)  数据1( 2byte)数据2(2byte)

2.只显示2通道数据,每个通道为16bit数据,分别为CH1和CH2

3.通道数据10进制数和16进制数同时显示。

4.波形显示,由于屏幕比较小,波形显示不能做到很精细,只做参考。

用法:<目标单片机》======   地线 和一个IO ====== <调试工具>,目标单片机高速发送数据,调试工具端把对应数据显示出来。

基本是这样了,欢迎提出意见和建议!


http://www.kler.cn/a/579559.html

相关文章:

  • 【计算机网络】深入解析 HTTP 协议的概念、工作原理和通过 Fiddler 抓包查看 HTTP 请求/响应的协议格式
  • Android15使用FFmpeg解码并播放MP4视频完整示例
  • MySQL基本建表操作
  • 8.1linux竞争与并发知识讲解(尽可能详细)_csdn
  • Virtual Sparse Convolution for Multimodal 3D Object Detection 论文阅读
  • Redis 缓存穿透、击穿、雪崩的 出现场景 与 解决方案
  • 数据库基础以及基本建库建表的简单操作
  • Linux下安装elasticsearch(Elasticsearch 7.17.23)
  • 基于Python的电商销售数据分析与可视化系统实
  • 开发环境搭建-06.后端环境搭建-前后端联调-Nginx反向代理和负载均衡概念
  • 升级到Android Studio 2024.2.2 版本遇到的坑
  • Linux安装升级docker
  • Mybatis操作数据库----小白基础入门
  • 【开源免费】基于SpringBoot+Vue.JS青年公寓服务平台(JAVA毕业设计)
  • [项目]基于FreeRTOS的STM32四轴飞行器: 五.Motor驱动
  • 关于Springboot 应配置外移和Maven个性化打包一些做法
  • 使用 QML 和 QtSql 实现 SQLite 数据库操作
  • NebulaGraph学习笔记-SessionPool之getSession
  • 【数据结构与算法】Java描述:第二节:LinkedList 链表
  • 【YOLOv12改进trick】三重注意力TripletAttention引入YOLOv12中,实现遮挡目标检测涨点,含创新点Python代码,方便发论文