boringhex.top博客

非典型程序员的小破站

今天分享一个简单强大的时序图绘制工具——WaveDrom。

WaveDrom

Digital Timing Diagram everywhere

WaveDrom draws your Timing Diagram or Waveform from simple textual description.
It comes with description language, rendering engine and the editor.
WaveDrom editor works in the browser or can be installed on your system.
Rendering engine can be embeded into any webpage.

Wavedrom 是一款功能强大且简单易用的文本转图表工具,被广泛应用于生成时序图、波形图等交互式波形。其特点在于使用简单的文本语法,使得开发人员能够以可视化的方式表示数字信号和时间序列数据。Wavedrom 的优势在于其高度灵活性和可扩展性,使用户能够快速绘制复杂的波形和图表,并轻松与其他文档和代码进行整合。

阅读全文 »

CH347读取MPU6050传感器数据和显示

MPU6050 是一款集成了六轴加速度计和陀螺仪的微电子机械系统(MEMS)传感器。它由 InvenSense(现为 TDK) 公司开发,是一种广泛应用于姿态估计、运动追踪和稳定控制等领域的常用传感器。

MPU6050 具有以下主要特点和技术规格:

  1. 6轴测量能力:MPU6050 集成了三轴加速度计和三轴陀螺仪,能够同时测量物体的加速度和角速度,从而获得姿态信息。

  2. 高精度:MPU6050 提供高精度的测量性能,能够在多种环境条件下稳定工作,并具有较低的噪声和漂移。

  3. 低功耗:MPU6050 设计优化了功耗,适用于移动设备和电池供电的应用场景。

  4. 数字输出:MPU6050 输出的数据以数字形式呈现,通过 I2C 接口与微控制器或其他处理器通信,简化了数据获取和处理过程。

  5. 可编程寄存器:MPU6050 提供一些可编程寄存器,允许用户配置传感器的工作模式和测量范围,以满足不同应用需求。

  6. 姿态估计支持:由于同时具备加速度计和陀螺仪,MPU6050 能够用于姿态估计和导航,例如通过融合算法计算物体的俯仰角、滚转角和航向角。

  7. 应用广泛:MPU6050 可广泛应用于各种领域,如智能手机、游戏控制器、无人机、机器人、虚拟现实设备等。

阅读全文 »

前面耽搁了几天,今天终于把CH347 SPI接口调试好了。

CH347动态库中SPI接口函数如下:

阅读全文 »

引言

串行外设接口(Serial Peripheral Interface,简称SPI)是一种常见且广泛应用于电子系统中的通信协议。作为一种高效可靠的串行通信技术,SPI总线在电气工程和计算机系统领域扮演着至关重要的角色。它不仅在微控制器和外设之间实现快速数据传输,还在许多嵌入式系统和通信设备中发挥着重要作用。

本文将深入探讨SPI总线的基本原理和工作机制,介绍其在数据传输中的优势和特点。无论是用于连接存储器芯片、传感器、显示器还是其他外围设备,SPI总线都展现出了其高速、可靠和简单的硬件实现的特点。

无论是对电气工程师、嵌入式系统开发者还是通信技术爱好者,深入理解SPI的工作原理都是非常必要的。

SPI基础知识

SPI是一种全双工、同步的通信协议,常用于微控制器和外设之间快速、可靠的数据传输。SPI总线的灵活性和高效性使得它成为许多嵌入式系统和通信设备的首选通信接口。

阅读全文 »

PyPI

PyPI(Python Package Index)是Python编程语言中最大的第三方软件包仓库,它是Python生态系统的核心组成部分。PyPI提供了一个集中存储和分发Python软件包的平台,为开发者和用户提供了便利的方式来查找、安装和分享各种Python软件包。

在PyPI上,开发者可以发布自己的Python软件包,而其他开发者和用户则可以轻松地通过pip等工具安装这些软件包。PyPI中的软件包涵盖了各种领域,包括Web开发、数据科学、机器学习、人工智能等。无论是初学者还是有经验的开发者,都能从PyPI中找到适合自己需求的软件包。

使用PyPI非常简单,只需在命令行中运行pip install package-name命令,就能安装你需要的软件包。同时,PyPI支持版本控制,使得开发者可以灵活地选择软件包的特定版本进行安装。这为项目开发和维护提供了方便。

阅读全文 »

目前对于遥控双发差速小飞机计划采用如下架构:

遥控小飞机框图

阅读全文 »

1. 简介

结合以前发的文章,我们知道,模拟量输出有两种,一种是共地型,一种是共源型。

今天开源一款rs485隔离的转0-20ma输出模块的设计。

我设计模块的原因是为了测试公司的一款模拟量检测模块的性能,因此需要一个可控的0-20ma输出模拟器,来模拟0-20ma输出。

同时想测试一下GP8212S性能。话不多说,直接上。

RS485转0_20mA输出模块

阅读全文 »

I2C(也常写作$IIC$,$I^2C$),全称为Inter-Integrated Circuit(“互连集成电路”),用于在集成电路之间进行短距离数据传输。它由Philips(现在的NXP半导体)公司于1980年代初开发,并成为一种广泛应用于电子设备之间通信的标准。I2C协议简单、灵活且广泛支持,常用于连接传感器、存储器、显示屏和其他外设到微控制器、微处理器或其他集成电路上。这是一种简单的双向双线总线,非常适合用于微控制器与外设之间,或者多个微控制器之间的高效互连控制。

其名称反映了最初的设计目的:它专为“集成电路”间的通信设计。I2C的两条线包括SDA(串行数据线),用于传输信息;和SCL(串行时钟线),负责同步。I2C的一个优点是它只需要这两根线进行通信,这可以在复杂系统中有效地利用资源。

它也是一种在许多产品中广泛使用的标准,扩展和集成相对简单。

I2C的主要特点包括:

  • 通信方式:I2C采用主从式通信方式。一个主设备(通常是微控制器或处理器)控制总线并发起通信,而一个或多个从设备被动地响应主设备的命令或请求。
  • 总线结构:I2C使用两根线路进行通信:
    • SCL(Serial Clock):时钟线由主设备提供,用于同步通信速度。
    • SDA(Serial Data):数据线用于传输数据和控制信号。
  • 信号电平:I2C使用双向开漏(open-drain)输出,这意味着信号线可以被拉低(逻辑0)但不能被主动拉高,只能通过外部上拉电阻回到高电平(逻辑1)。
  • 地址和帧格式:I2C使用7位或10位的设备地址来唯一标识每个从设备。通信帧包括设备地址、读/写位、数据字节和应答位(ACK)。
  • 速率和模式:I2C支持不同的通信速率,通常有标准模式(100 kbit/s)和快速模式(400 kbit/s)。还有更高速的模式如高速模式(3.4 Mbit/s)和超高速模式(5 Mbit/s)。
  • 启动和停止条件:I2C通信的开始由主设备发送启动信号(SDA从高电平切换到低电平,同时SCL保持高电平)表示。通信结束时,主设备发送停止信号(SDA从低电平切换到高电平,同时SCL保持高电平)表示。
  • 多主设备支持:I2C协议允许多个主设备共享同一条总线,通过仲裁机制来解决总线竞争问题。
  • 应用领域:I2C广泛应用于各种设备和应用领域,例如传感器、存储器(如EEPROM)、显示屏、温度传感器、实时时钟(RTC)、扩展IO芯片等。
阅读全文 »

1. 原理

4-20ma电流输出的目的不用多说,今天就简单聊一下4-20ma电流输出是怎么设计出来的,并介绍一种国产集成芯片解决方案。

一般用分离器件搭建的实现原理都是通过单片机控制一个三极管,使其工作在放大区,因为放大区放大并不是线性的,因此需要在串接一个电阻,通过检测电阻电压,单片机来反馈调节三极管的输入,然后从而实现4-20ma电流输出。

今天我们介绍通过GP8102S芯片来实现4-20ma电流输出设计,还有另外一款芯片GP8212S,两者区别是一个是pwm转4-20ma电流输出,另外一个是I2C转4-20ma电流输出,同时精度略有区别,本文主要讲解GP8102S芯片。

阅读全文 »
0%