Power's Wiki -

BeagleBone 系列 - 基本参数与环境配置

硬件资源 USB Type-A:作为 USB 从机(Host)模式使用 USB Micro:为板子供电并且作为从机 LEDs D2:在启动时以心跳灯闪烁 D3:读写 SD 卡数据时亮起 D4:当 CPU 活动时亮起 D5:当 eMMC 读写时亮起 Boot/User 按钮:不管按不按,如果有 SD 卡都会默认从 SD 卡启动(殊途同归),当启动后就作为一个普通按钮,连接到 GPIO_72 I2C Grove 接口:连接到 I2C2 Uart Grove 接口:连接到 UART2 Serial Debug:连接到 UART0,靠近 USB 的引脚为 pin1,从 pin1-pin6 分别为:GND, NC, NC, RX, TX, NC 环境配置 驱动安装问题 在 Windows 10 及以上版本系统,默认采用驱动程序强制签名,这可能是驱动安装失败的原因。 解决方法: 按住 shift,点击重启电脑 进入 疑难解答 - 高级选项 - 启动设置,点击 重启 重启后,按页面提示,按键盘 7,即可禁用驱动程序强制签名 开机后,即可正常安装 BeagleBone 的驱动程序 镜像下载烧录 官网镜像下载地址:https://beagleboard.org/latest-images 烧录工具:https://sourceforge.net/projects/win32diskimager/files/latest/download 将镜像烧录进 SD 卡,断电插入 BeagleBone,下次上电就会从 SD 卡启动系统 使用命令行工具访问 使用串口访问 使用 USB 转串口连接板载的串行端子,在电脑端打开串口工具(如 WindTerm)进行连接。(初始用户名和密码均为 root) 波特率是 115200! 使用以太网访问 在串口连接内使用命令 ifconfig 找到以太网地址,通过地址连接。用户名为 debian,密码为 temppwd。 通过 USB 访问 usb0:192.168.7.2 usb1:192.168.6.2 使用 SSH 方式访问,用户名为 debian,密码为 temppwd。 启用 ssh 的 root 帐户 shell vi /etc/ssh/sshd_config 将 #PermitRootLogin prohibit-password 修改为 PermitRootLogin yes 即可。 驱动 Seeed OLED(SSD1306,I2C,12864) 使用 pip3 下载 smbus2 包: py sudo apt-get install python3-pip pip3 install smbus2 程序参考 Grove - OLED Display 0.96 inch。 参考与致谢 Beaglebone black 4G 调试中的问题 项目 Upgrade the software on your Beagle 测试固件

AI生成摘要 BeagleBone系列的基本参数和环境配置。介绍了硬件资源和环境配置的方法,包括驱动安装问题的解决方法,镜像下载烧录,使用命令行工具访问的方法,以及启用SSH的root账户和驱动Seeed OLED的使用方法。

相关推荐 去reddit讨论

Power's Wiki -

Homelab - 卡片辅助记忆软件 Anki

Anki 一款开源的记忆卡片应用程序,可帮助用户轻松高效地记忆各种知识点,一般常用于背单词。它的特点在于采用记忆遗忘曲线,根据学习情况生成适当的复习计划,帮助用户充分利用大脑的记忆规律,达到最佳的记忆效果。Anki 具有极高的定制性,你可以制作自己的学习卡片,包括文字、图片甚至音频和视频。Anki 也支持多平台使用。 由于同步服务器在国外,有时候可能会无法正常同步,我们可以使用 anki-sync-server 自己搭建同步服务。以下教程使用的是 johngong/anki-sync-server 镜像,可正常使用,其他版本未经测试。 部署(Docker Compose) 首先创建 compose.yaml 文件,并粘贴以下内容: yaml title="compose.yaml" version: "3" services: anki-sync-server: container_name: ${STACK_NAME}_app image: johngong/anki-sync-server:${APP_VERSION} ports: - "${APP_PORT}:27701" volumes: - ${STACK_DIR}:/config environment: - ANKI_SYNC_SERVER_USER=${APP_USERNAME} - ANKI_SYNC_SERVER_PASSWORD=${APP_PASSWORD} - UID=1000 - GID=1000 restart: unless-stopped (可选)推荐在 compose.yaml 同级目录下创建 .env 文件,并自定义你的环境变量。如果不想使用环境变量的方式,也可以直接在 compose.yaml 内自定义你的参数(比如把 ${STACK_NAME} 替换为 anki-sync-server)。 ```dotenv title=".env" STACK_NAME=anki-sync-server STACK_DIR=/DATA/AppData/anki-sync-server # 自定义项目储存路径,例如 ./anki-sync-server anki-sync-server APP_VERSION=latest APP_PORT=xxxx # 自定义访问端口,选择不被占用的即可 APP_USERNAME=xxx@xx.com # 自定义账户名,需要邮箱格式 APP_PASSWORD=xxxxxx # 自定义密码 ``` 最后,在 compose.yaml 同级目录下执行 docker compose up -d 命令即可启动编排的容器。 配置说明 Windows Windows 端我使用的是 Anki 2.1.28(测试过 2.1.65 无法同步)。 安装完成后,依次点击顶栏的 工具 - 附加组件,然后点击 获取插件,输入插件代码 358444159 后点击 OK,随后点击 设置,将地址改为你部署 anki-sync-server 的服务器的地址与端口,最后重启软件。 重启后,在主界面点击同步,输入 docker 部署时填写的邮箱和密码,即可进行同步。 如果仍然无法同步,请参考 Setting up Anki。 Android Android 端使用的是 AnkiDroid,不用安装插件即可自定义服务器地址,但是需要使用 https 登录。推荐通过反向代理使用(反向代理服务器的搭建可参考文章 Homelab - 反代证书管理面板 Nginx Proxy Manager。 可使用 https 登录后,在主界面选择 Advanced - Custom sync server 可配置自定义服务器。注意,在 Media sync url 一栏中,需要在原地址后加上 /msync,才可正常进行同步。 参考与致谢 官网 文档 GitHub repo Docker Hub 原文地址:https://wiki-power.com/ 本篇文章受 CC BY-NC-SA 4.0 协议保护,转载请注明出处。

AI生成摘要 Anki is an open-source flashcard application that helps users memorize various knowledge points. It uses a memory forgetting curve to generate appropriate review plans and supports customization of study cards with text, images, audio, and video. Anki can be used on multiple platforms. To set up a synchronization server, a Docker Compose file is created with the necessary configurations. For Windows, Anki version 2.1.28 is recommended, and the server address and port should be set in the software settings. For Android, AnkiDroid can be used with a custom sync server configured in the Advanced settings, with the media sync URL requiring the addition of "/msync" at the end.

相关推荐 去reddit讨论

Power's Wiki -

AD 基本操作 - 基础知识

—— Altium Designer 系列教程 背景 配置完软件运行环境,在开始画板子之前,我们务必先熟悉一些 Altium Designer 及电路设计的基本知识。 库文件安装 库相当于把每个分立元件(如电阻、电容等)的原理图 / PCB 封装起来,方便直接调用。不一定每个元器件的原理图库 / 封装库都必须自己画,但 整理自己的库是必须的。假想你的项目内每个元器件用的都是别人的(且不同的库有自己的规则),那么越往后你将越受制于人。拥有自己的库,这不仅方便迁移、提高效率,也有利于知识的体系化。适合自己的规则与体系,从时间轴上看,知识将呈指数型增长。刚开始曲线增长虽然缓慢,但到了后期,将不会有重复性的工作,那时候你需要做的,只是学习新知识,并将其归纳到体系中了。 温馨提示:自己的项目所需的所有元器件,尽量全部从自己整理的原理图库 / 封装库中提取。 可参考的库 Power_Lib_Altium:我自己整理的库。封装库齐全,原理图库仅包含我的项目所需要的元器件型号。不断更新中。 AltiumDesigner_PcbLibrary:一个较为齐全的库。 My_PCB_Library_Github:挺齐全的一个库,还包含一些单片机方案板。 JLCSMT_LIB:嘉立创提供的标准集成库,包含嘉立创可以 SMT 贴片的所有元件,直接用这个集成库,打板 / SMT 的时候兼容性会比较好。 Hare_Library:彬哥整理的原理图库 / 封装库,涵盖队内硬件所需的大部分元器件。 如何安装库文件:参考 Altium Designer 安装库文件 不常见的元器件 以上提供的库,已经涵盖市面上 95% 以上的元器件型号了。如果真的找不到所需元器件,可以尝试以下方法: AD 插件: Altium Library Loader:这个用起来真的超级方便 搜索引擎:原理图与封装下载 · Power's NAV 快捷键 于 Altium Designer 而言,熟练掌握常用的快捷键,可以很大程度提高效率。Altium Designer 的系统快捷键都是根据菜单下命令中有下划线的字母组合而成,例如 Place-Line 的快捷键为 P-L (先按 P 再按 L) 原理图 显示 Library 面板:PP 绘制导线:Ctrl + W 绘制网络标签:PN 复制元件并自动更新位号:按住 Shift + 拖动 给图纸编号:TAT 元件自动编号:TAA Reset All:复位所有元件标号,使其变成 " 字母 + ? " 的格式 Update Change List:对元件列表进行标号变更 Accept Changes(Create ECO):表示接受编号变更,实现原理图的变更 生成 BOM 表:RI 更新 PCB:DU 左对齐(右):AL(AR) PCB 把原理图的变更导入 PCB:DI 把 PCB 的变更覆盖回原理图:DU 切换单位(英寸/毫米):Q 旋转元器件(任意角度):EMO 把元件放置在底层:拖动同时按 L 自动布局:框选 + TOL 设置坐标原点:EOS 设置栅格:G 自动布线:UAA 清除布线:UUA 高亮接线:按住 Shift + 光标移至线 高亮节点所对应连线:按住 Ctrl + 左键单击 水平翻转:Ctrl + F 测量:Ctrl + M 切换视图(二维 / 三维):2 / 3 三维视图中旋转:按住 Shift + 拖动 清除过滤器:Shift + C 切换单层/多层显示:Shift + S 过孔盖油(可略,打板时可直接选择) 单击某一过孔 右键 - 查找相似对象 选择大小属性为 Same,确定以激活选择所有过孔 在属性中的 Solder Mask Expansion 中把顶层和底层都勾选上 设置布线规则 UAA 新建策略并编辑规则 一般修改 Routing 中的规则(新建规则) Width:设置线的粗细 Routing Via Style :设置过孔规则 铺铜:? 原理图库 待补充…… 封装库 测量距离:Ctrl + N 切换单位(英寸/毫米):Q 流程及规范 一块电路板从无到有设计出来,基本流程如下: 初始化 新建项目 在项目内创建原理图和 PCB 文件 绘制原理图 完成后确保编译通过 绘制 PCB 从原理图导入变更 隐藏元件 Designator 标识 打开右侧 Properties 面板 点击 Designator 旁边的 眼睛 标志,即可关闭 绘制板形 切换 90°/45° 走线(Shift+Space) 以所画形状定义板子(DSD) 设置板框属性为机械层 1 固定孔 M3 螺孔:内 3.1 mm、外 4 mm 排布元件 跳转文章 PCB 元件布局规范 布线 设置布线规则 参考 PCB 布线规范 不要开启自动布线! 开启泪滴功能 字体标识(引脚标识 / 版权 / 迷惑性文字) 放置于丝印层(顶层 / 底层) 放底层要先镜像 敷铜(PG) 参考 PCB 布线规范 打板 保存项目 将 .pcb 文件压缩(这样做似乎不太对,可以的话导出 Gerber) 上传至 嘉立创下单助手 (可选 SMT) 其他知识 元件属性 Designator:元件位号,是元件的唯一标识,用来标识原理图中的不同的元件 R:电阻 RN:排阻 C:电容 J:接口/跳线 X:晶振 D:二极管 Q 或 T:三极管 FB:磁珠 U:芯片 TP:测试点 Comment:元件大小参数,如电阻的阻值、电容的容值、IC 芯片型号等 Description:用于填写元件的功能描述 Logo 添加 跳转文章 Logo 添加 。 使用 Git 管理项目 详见 AD 使用 Git 的注意事项 总结 以上是 Altium Designer 及电路设计的基本知识。 下一章,我们将着手开始原理图的设计。 参考与致谢 Altium 公司 Altium Designer 专栏 嘉立创 SMT 贴片 可贴列表 PADS 集成库 \(正式版) Altium Designer 使用 Git 构想 Using Version Control 原文地址:https://wiki-power.com/ 本篇文章受 CC BY-NC-SA 4.0 协议保护,转载请注明出处。

AI生成摘要 本文介绍了Altium Designer软件的基本操作和基础知识,包括库文件安装、不常见元器件的获取方法以及常用快捷键。同时还介绍了在原理图和PCB设计中的一些操作技巧和流程规范。最后提到了元件属性和Logo添加的相关知识,以及使用Git管理项目的注意事项。

相关推荐 去reddit讨论

Power's Wiki -

Homelab - 网站状态监控工具 Uptime Kuma

Uptime Kuma 是一个支持多种网络协议的状态监控工具,可监控多个自定义网站的实时可用状态、响应时长、证书有效期等,并提供了多种通知推送方式。 部署(Docker Compose) 首先创建 compose.yaml 文件,并粘贴以下内容: yaml title="compose.yaml" version: "3" services: uptime-kuma: container_name: ${STACK_NAME}_app image: louislam/uptime-kuma:${APP_VERSION} ports: - ${APP_PORT}:3001 volumes: - ${STACK_DIR}:/app/data restart: always (可选)推荐在 compose.yaml 同级目录下创建 .env 文件,并自定义你的环境变量。如果不想使用环境变量的方式,也可以直接在 compose.yaml 内自定义你的参数(比如把 ${STACK_NAME} 替换为 uptime-kuma)。 ```dotenv title=".env" STACK_NAME=uptime-kuma STACK_DIR=xxx # 自定义项目储存路径,例如 ./uptime-kuma uptime-kuma APP_VERSION=latest APP_PORT=xxxx # 自定义访问端口,选择不被占用的即可 ``` 最后,在 compose.yaml 同级目录下执行 docker compose up -d 命令即可启动编排的容器。 配置说明 注:如使用反向代理,请开启 Websockets Support 功能。 参考与致谢 官网 文档 GitHub repo Docker Hub 原文地址:https://wiki-power.com/ 本篇文章受 CC BY-NC-SA 4.0 协议保护,转载请注明出处。

AI生成摘要 Uptime Kuma是一个支持多种网络协议的状态监控工具,可以监控多个自定义网站的实时可用状态、响应时长和证书有效期,并提供多种通知推送方式。部署时需要创建compose.yaml文件,并在其中粘贴相关内容。可以选择创建.env文件来自定义环境变量,也可以直接在compose.yaml文件中自定义参数。最后,执行docker compose up -d命令启动容器。

相关推荐 去reddit讨论

Power's Wiki -

3D 打印:ABS 与 PLA 的区别

3D 打印中,该如何合理选择 ABS 和 PLA 材料? ABS 材料 ABS(丙烯腈 - 丁二烯 - 苯乙烯共聚物),是相对传统的 3D 打印用料。 打印温度 使用 ABS 打印时,一般将打印机喷头温度设置为 210~240℃,热床温度为 80℃ 以上。另外,ABS 的软化温度为 105℃。 打印性能 ABS 打印时很顺滑,但遇冷收缩,可能会造成翘边脱落等问题。 强度 ABS 强度高,且因为弹性佳,即使承受压力也只会弯曲,一般不会折断。 气味 ABS 在打印时会产生异味。最好使用封闭式打印机,或是保持室内通风,避免过量吸入气体。 使用场景 相对来说,ABS 适用于经常碰撞、需要韧度、相对高温的场景。 缺点是,没有热床的打印机不能使用 ABS 进行打印,因为打印时可能会翘边脱落;通风不好的房间尽量也别用。 PLA 材料 PLA(通常指聚乳酸)为生物分解性塑料,部分甚至可达到食用级别标准。 打印温度 使用 PLA 打印时,一般将打印机喷头温度设置为 180~200℃,热床非必须但建议使用,温度设为 60℃。另外,PLA 的软化温度为 60℃。 打印性能 相较于 ABS,PLA 在打印时很容易堵喷头(因为 PLA 熔化后容易附着和延展),但不会产生翘边脱落的情况。 强度 PLA 弹性和强度都会差一些,不过打印时可以通过设置填充和壁厚来解决。 使用场景 PLA 相对环保(因为其可降解),相对便宜,不易翘边,打印时不会产生异味。 PLA 不适用的场景是高温和碰撞。60℃ 以上的高温和磕碰会让打印成品变形或折断。 参考与致谢 3D 打印入门必读:ABS 与 PLA,用哪个好?

AI生成摘要 3D打印中,ABS和PLA是常用的材料。ABS适用于经常碰撞、需要韧度、相对高温的场景,但打印时可能会翘边脱落,产生异味。PLA相对环保、便宜,不易翘边,打印时不会产生异味,但不适用于高温和碰撞场景。

相关推荐 去reddit讨论

Power's Wiki -

HAL 库开发笔记 - 环境配置

注:本教程基于反客的 STM32F429IGT6 板子。 软件安装 Keil MDK 详见文章 Keil MDK 配置指南 Java Runtime Environment 这是 STM32CubeMX 所需要的 Java 环境,从 官网链接 下载安装即可。 STM32CubeMX 从 官网链接 下载并安装 STM32CubeMX。 项目的配置 初始化 新建项目,选择芯片后先保存。 配置 SYS Pinout & Configurations - System Core - SYS 将 Debug 选项改为 Serial Wire(原因详见文章 CubeMX 与 CubeIDE 避坑) 配置 RCC Pinout & Configurations - System Core - RCC 按照板子的情况设置就行了。 举个例子,参照板子原理图: 将 HSE 和 LSE 的选项都设置为外部晶振就可以了: 配置时钟树 在 Clock Configuration 界面进行配置。 根据上图的步骤如下: 根据板载外部晶振的参数,填入最左侧两个频率的值 勾选 HSE ,因为外部晶振频率和精度都比内部的高 勾选 PLLCLK ,使用 PLL 锁相环倍频得到高频率 填入 HCKL 的值,一般根据下方提示的最大频率填写,填写后按回车,便可自动计算分频倍频数 配置项目管理选项 HAL 库与标准库的区别 为了增加可移植性,HAL 库相比标准库多了 句柄、MSP 函数、Callback 函数 这三个功能,具体可参见文末引用链接中的内容。 参考与致谢 【STM32】系统时钟 RCC 详解 板子初始化,RCC 时钟树完整配置的方式和详细过程 STM32 HAL 的超全知识总结 清晰了,STM32 HAL 的超全知识总结 原文地址:https://wiki-power.com/ 本篇文章受 CC BY-NC-SA 4.0 协议保护,转载请注明出处。

AI生成摘要 本文是HAL库开发笔记系列的一部分,主要介绍了环境配置的步骤。首先是软件安装,包括Keil MDK和Java Runtime Environment。然后是STM32CubeMX的下载和安装。接下来是项目的配置,包括初始化、配置SYS和配置RCC。最后是配置时钟树和项目管理选项。此外,文章还提到了HAL库与标准库的区别。

相关推荐 去reddit讨论

Power's Wiki -

ADC - Static Parameters

Analog to Digital Converter (ADC) is a device to converts analog signals into a sequence of digital data. Though ADC's ideal transfer function should be a straight line, but actually is a uniform staircase, that the number of steps corresponds to the number of digital output codes. Since analog is continuous and digital is discrete, quantization error will be introduced in the procedure. Static Parameters ADC's static parameters mainly contain: LSB Size Full Scale Range (FSR) Offset Error Gain Error Differential Non-Linearity Error (DNE or DNL) Integral Non-Linearity Error (INE or INL) LSB Size The width of one step is defined as 1 Least Significant Bit (LSB). The resolution of an ADC is normally expressed as number of bits (digital output code). An ADC with an n-bit resolution has $2^n$ possible digital codes ($2^n$ step levels). $$ LSB=\frac{V_{FST}-V_{ZST}}{2^{bits}-2} $$ For an ideal ADC, LSB represents all of the each code's width. Full Scale Range (FSR) For example, for a 3 bit converter, there are: 8 horizontal steps 7 transitions 6 steps between 7 transitions Zero Scale Range Transition Voltage ($V_{ZST}$): Voltage of the analog input signal when the first transition is recorded. Full Scale Range Transition Voltage ($V_{FST}$): Voltage of the analog input signal when the last transition is recorded. Full Scale Range (FSR): Maximum extreme of the analog input signal supplied to the ADC. $FSR = (V_{FST}-V_{ZST}) + 2 LSB$, $V_{FSR(refer to VZS)} = (V_{FST}-0.5LSB)-(V_{ZST}-0.5LSB) + 2 LSB$ Offset Error Offset Error (Zero-Scale Error) is the difference between ideal and actual offset (initial) points. It is measured from the midpoint of the zero step (ideal to actual) for the ADC. Where $$ V_{ZS}=V_{ZST}-0.5LSB $$ Gain Error Gain Error is the difference between ideal and actual gain points on the transfer function (after the offset error has been corrected to zero). It is measured from the midpoint of the full step for the ADC. Where $$ V_{FS}=V_{FST}-0.5LSB+2LSB $$ Differential Non-Linearity Error (DNL) Differential Non-Linearity Error (DNL) is the difference between an actual step width and an ideal step width (1 LSB). It's a measure of "small-signal" linearity error, and is measured from the difference in the analog input voltage between 2 adjacent transitions and the device's average LSB. Equations to describe DNL: $$ DNL[n]=CodeWidth_n-LSB_{average} $$ $$ DNL=(V_{in2}-V_{in1})-LSB_{average} $$ another image to decribe DNL: If DNL exceeds is too large, one or more codes will be missing and never receive an output. Integral Non-Linearity Error (INL) Integral Non-Linearity Error (INL) is the cumulative effect at any given input of all differential non-linearity values. It is a measure of "large-signal" linearity error. INL at any point along the curve is the deviation of the ideal linearity line. The deviations are measured at the transition points from one step to the next for the ADC. INL is the deviation of the values of the actual step function to the ideal straight line function. Equations to describe INL: $$ INL[n]=INL_{n-1}+{\frac{DNL_{n-1}+DNL_{n}}{2}} $$ $$ INL=[(\frac{BinaryCode}{2^{bits}-1})(V_{FS}-V_{ZS})+V_{offset}]-CodeCentor $$ How to Test Static Parameters Test System Setup Test system setup for ADC static parameter tests: Since the ADC voltage-to-code transfer curve is a many-to-one mapping function: We use linear ramp histogram method (code width measurement) practically. The input ramp is slow enough to give a statistically relevant "number of hits per code". Block diagram of signal setup: Tests Concept Procedure of testing the static parameters of an ADC DUT is listed below. 1. Make a ramp wave segment for AC SRC The input ramps goes above and below ±Fs to assure that all codes are covered: 2. Take data between the start (min+1, e.g. 0…01) and the end (max-1, e.g. 1…10) of the ramp. That gives $2^n – 2$ codes' worth of data Voltage applied must be wider than the full-scale range to cover all transitions. 16 steps in-between each code transition is shown below: for the ideal ADC DUT, 16 output codes are appear in the same times: However, a real device will have a count more than 16 times for wider codes, and less than 16 times for narrower ones (But sum of the total occurrence should be still $2^{bits}$ times of 16): 3. Calculate for DNL for each step $$ DNL[i]=\frac{Hits[i]-\frac{\sum Hits[i]}{2^n-2}}{\frac{\sum Hits[i]}{2^n-2}} $$ Where $Hits[i]$ represents the Actual Output Code Count, and $\frac{\sum Hits[i]}{2^n-2}$ represents the Ideal Output Code Count. For an example historam graph as shown below: for DNL1, Actual Output Code Count = 14 Idea Output Code Count = (14 +18 +15 + 17+ 17 + 15) / (8 -2 ) = 16. Therefore DNL[1] (Code 001) = (14-16)/16 * LSB => -0.125 * LSB. 4. Get the max and min DNL 5. Calculate for INL for each step INL is the cumulative value of the first DNL to the DNL[i] (except zero and full scale DNL): $$ INL[i]=DNL[i]+DNL[i-1]+...+DNL[2]+DNL[1] $$ Note that $DNL[0]$ is not used, $$ INL[0]=INL[FullScale]=0 $$ For an example graph below, $$ INL[1] = DNL[1] = -0.125 * LSB $$ $$ INL[2] = DNL[2] + DNL[1] = 0 * LSB $$ $$ INL[3] = DNL[3] + DNL[2] + DNL[1] \ INL[3]= 0.0625 * LSB $$ 6. Get the max and min INL References & Acknowledgements Fundamentals of Testing Using ATE The-Fundamentals-of-Mixed-Signal-Testing_Brian-Lowe Original: https://wiki-power.com/ This post is protected by CC BY-NC-SA 4.0 agreement, should be reproduced with attribution.

AI生成摘要 ADC是将模拟信号转换为数字数据的设备。ADC的理想传输函数应该是一条直线,但实际上是一个均匀的阶梯,阶数对应于数字输出代码的数量。ADC的静态参数主要包括LSB大小、满量程范围、偏移误差、增益误差、差分非线性误差和积分非线性误差。LSB大小是一个步长的宽度,ADC的分辨率通常以位数(数字输出代码)表示。满量程范围是供给ADC的模拟输入信号的最大极限。偏移误差是理想和实际偏移点之间的差异。增益误差是在偏移误差被校正为零后理想和实际增益点之间的差异。差分非线性误差是实际步宽和理想步宽(1 LSB)之间的差异。积分非线性误差是在任何给定输入点上所有差分非线性值的累积效应。测试ADC的静态参数可以使用线性斜坡直方图方法。测试过程包括制作斜坡波段、计算每个步骤的DNL和INL,并获取最大和最小值。

相关推荐 去reddit讨论

Power's Wiki -

HTML 学习笔记

基本框架 ```markup 标题 ``` 可打开 .html 文件,直接输入 html:5 调出 语句 一些规范: 标签使用小写,元素必须闭合 空元素要加斜杠以闭合 eg. <br /> 不使用语义化,所有样式都存放于 CSS 中,内容与样式分离 ```markup 标题 一级标题 二级标题 段落 第一项 第二项 第一项 第二项 链接显示的文本 回到顶部 顶部 跳转到站外页面的某个位置 周六 周日 数量 120 135 收益 500 ``` 参考与致谢 HTML 教程 | 菜鸟教程 HTML 30 分钟入门教程 HTML - head 头部浅析 原文地址:https://wiki-power.com/ 本篇文章受 CC BY-NC-SA 4.0 协议保护,转载请注明出处。

AI生成摘要 本文介绍了如何打开.html文件,并使用html:5命令调出一些规范。

相关推荐 去reddit讨论

Power's Wiki -

CubeMX 与 CubeIDE 避坑

项目名称路径不能是中文 如题,新建项目的名称与路径,都必须是英文的,不然可能会出现奇奇怪怪的错误。 默认关闭调试端口 问题描述: 检测到 ST-Link,却检测不到板子,提示 No target connected 首次能成功下载,第二次及以后就不行了 原因: CubeMX 把调试端口给关了 解决方法(本次): 用 STM32 ST-LINK Utility 工具,刷出厂程序救回来 或者用 这篇文章 提供的方法(通过 Keil) 解决方法(长远): 在 CubeMX 的 SYS 设置中,将 Debug 选项更改为 Serial Wire(SW) STM32CubeIDE 中文注释乱码 如果代码是从 Keil 导入的,需要先确保原本的编码是 GB2312。 依次点击菜单栏 - Window - Preferences - General - Apperance - Colors and Fonts - C/C++ - Editor - C/C++ Editor Text Font,点击右侧的 Edit,确认字体支持中文(如微软雅黑),并确认脚本为 中文 GB2312。 如果还是没有解决,那么可以在左侧文件树中,右键项目名称,点击最后的属性 Properties,将 Resource 面板中的字体编码改为 GBK(如果没得选,直接输入即可),保存即可解决。 STM32CubeIDE 汉化 打开链接 http://mirrors.ustc.edu.cn/eclipse/technology/babel/update-site/ ,点选到最新的数据目录下(比如我可选的是 mirrors.ustc.edu.cn/eclipse/technology/babel/update-site/),复制此地址链接。 在 STM32CubeIDE 菜单栏选择 Help - Install New Software,点击 Add,在 Name 栏填入 language;Location 栏填入刚刚复制的链接,然后点击添加,在弹出来的界面选择简体中文语言包,安装后按提示重启软件即可。 参考与致谢 STM32 调试器配置异常导致的问题与解决方法(一) STM32cubeIDE 环境配置安装-汉化-主题设置 原文地址:https://wiki-power.com/ 本篇文章受 CC BY-NC-SA 4.0 协议保护,转载请注明出处。

AI生成摘要 本文介绍了使用CubeMX和CubeIDE时可能遇到的问题以及解决方法。首先,项目名称和路径必须是英文的,否则可能会出现错误。其次,如果检测到ST-Link但无法检测到板子,可能是因为CubeMX关闭了调试端口,可以使用STM32 ST-LINK Utility工具刷出厂程序来解决。另外,如果在CubeIDE中出现中文注释乱码的问题,可以通过修改字体支持中文和编码为GB2312来解决。最后,如果想要汉化STM32CubeIDE,可以通过安装简体中文语言包来实现。

相关推荐 去reddit讨论

Power's Wiki -

SWD 与 JTAG 的区别与联系

众所周知,SWD 和 JTAG 是单片机下载程序与调试的常用接口。其共同之处: 供电电压范围: 1.2 V - 5.5 V 时钟速率: 可配置高达 10 MHz SWO 跟踪捕获: 数据速率高达 50 Mbit/s(UART/NRZ 模式) 隔离电压: 1 kV 热插拔:支持 JTAG JTAG,全名为 Joint Test Action Group(联合测试行动小组)。截至本文最新的标准为 IEEE Standard 1149.1-1990. 其拓扑图(菊花链)如下: JTAG 一般使用 5 个引脚: TDI(Test Data In):串行输入引脚 TDO(Test Data Out):串行输出引脚 TCK(Test Clock):时钟引脚,一般附加 100k 下拉电阻 TMS(Test Mode Select):模式选择(控制信号)引脚 TRST(Test Reset):复位引脚 JTAG 的优势: 不限于 ARM 系列芯片 具有更多用于编程,调试和生产测试的用途 SWD 全称为 Serial Wire Debug(串行线调试),是 ARM 专门设计的协议,仅支持 ARM(所以在 ARM 系列单片机中性能表现较佳)。 SWD 一般使用 2 个引脚: SWDIO(Serial Wire Data Input Output):串行数据输入输出引脚 SWCLK(Serial Wire Clock):串行线时钟引脚 SWD 的优势: 使用引脚更少,只需 SWDIO 和 SWCLK 两个引脚 SWD 具有特殊功能,例如打印调试信息 与 JTAG 相比,SWD 在速度上具有更好的整体性能 JTAG 与 SWD 的兼容性 一般来说,单片机板子上会有以下这些烧录座,可同时兼容 JTAG 与 SWD: TCK 兼容 SWCLK TMS 兼容 SWDIO (TDO 兼容 SWO) 选用 SWD 而非 JTAG 的理由: 电路原理图设计需要足够简单,且可以在没有 JTAG 功能的情况下进行测试 PCB 在尺寸方面有限制,SWD 可以节省空间 MCU 已经没有多余的引脚给 JTAG 用了 参考与致谢 下载调试接口 SWD 和 JTAG 的区别 Cortex JTAG,SWD Debug Port Sharing JTAG/SWD Interface JTAG 原文地址:https://wiki-power.com/ 本篇文章受 CC BY-NC-SA 4.0 协议保护,转载请注明出处。

AI生成摘要 SWD和JTAG是单片机下载程序和调试的常用接口。它们的共同之处包括供电电压范围、时钟速率、SWO跟踪捕获、隔离电压和热插拔支持。JTAG是联合测试行动小组的全称,使用5个引脚,具有更多用途。SWD是ARM专门设计的协议,使用2个引脚,具有特殊功能和更好的整体性能。JTAG和SWD在兼容性方面有重叠。选择SWD而不是JTAG的理由包括电路设计简单、节省空间和没有多余引脚。

相关推荐 去reddit讨论