- 博客(124)
- 资源 (12)
- 收藏
- 关注

原创 红外遥控协议
概述红外遥控协议有比较多的标准,笔者只简单介绍一下自己遇到过的NEC协议和RC5协议。RC5载波频率为36KHz。数据包示例上图乃笔者用逻辑分析仪抓取的数据包。逻辑分析仪中自带了RC5解码。上图一目了然,分析清晰明确。编码格式每位固定周期为1.778ms。前半位为高,后半位为低代表1;前半位为高,后半位为高代表0。数据包格式数据包格式有标准格式和拓展...
2018-08-22 15:12:07
7992

原创 SPI总线笔记
参考博客① SPI WIKI模式示意图A timing diagram showing clock polarity and phase.Red lines denote clock leading edgesBlue lines denote clock trailing edges解读 ① CPHA = 0时,leading edge采样;CPHA = 1时,...
2018-07-05 14:04:36
712

转载 CMAKE那些事儿
参考文章CMake简要教程编译环境sudo apt install cmake cmake-curses-gui调试输出变量message (VAR=${VAR})选项定义option (USE_MYMATH "Use tutorial provided math implementation" OFF)选项本质还是变量。设定...
2018-06-07 20:42:55
477

原创 FFT物理意义
① FFT结果的物理意义FFT物理意义FFT是离散傅立叶变换的快速算法,可以将一个信号变换 到频域。从而分析信号的频域特征。常用于频谱分析。时域信号直接通过ADC进行采样获得。采样要点采样频率要大于信号频率的两倍N个采样点,经过FFT之后,就可以得到N个点的FFT结果。为了方便进行FFT运算,通常N取2的整数次方。结果意义采样点数为N。那么FFT之后结果...
2018-03-21 21:15:11
1537

原创 I2C总线笔记
参考文章① I2C总线协议 简述2条双向串行线,一条数据线SDA,一条时钟线SCL。 SDA传输数据是大端传输,每次传输8bit,即一字节。 支持多主控(multimastering),任何时间点只能有一个主控。 总线上每个设备都有自己的一个addr,共7个bit,广播地址全0. 系统中可能有多个同种芯片,为此addr分为固定部分和可编程部份,细节视芯片而定,...
2018-03-13 14:23:34
1554

原创 DSP的一些术语
参考博客术语弧度在数学和物理中,弧度是角的度量单位。它是由国际单位制导出的单位,单位缩写是rad。定义:弧长等于半径的弧,其所对的圆心角为1弧度。(即两条射线从圆心向圆周射出,形成一个夹角和夹角正对的一段弧。当这段弧长正好等于圆的半径时,两条射线的夹角的弧度为1)。 角频率 在国际单位制中,角频率的单位也是弧度/秒(rad/s)。频率是描述物体振动快慢的物理量,所以角频率也是描述物体
2015-08-07 23:29:29
3742

原创 Linux内核Makefile笔记
Linux内核Makefile笔记 周亦行 2014年11月参考文档 ① linux源码Makefile的详细分析 ② if_changed_rule/cc_o_c/any-prereq/arg-check ③ Makefile中的伪目标 ④ Linux kernel 3.18.5 一、Makefile组成 (一)基本组成顶层 Makefile 它是所有Makefile文件的核
2015-03-01 14:37:50
3622
1
原创 HDMI之SBTM
SBTM(Source-Based Tone Mapping)是 HDMI 2.1a 规范中引入的一项新特性,旨在改善 高动态范围(HDR) 内容的显示效果,尤其是确保在不同显示设备上保持一致性和质量。它让源设备(如游戏主机、蓝光播放器、流媒体设备等)能够主动参与 HDR图像的色调映射,而不是完全依赖显示器来处理色调映射。结合技术的发展历史以及重要概念,才能深刻理解上述文字。
2024-11-17 23:43:15
420
原创 数字信号处理--双线性变换法
双线性变换使用双线性映射将 s-平面映射到 z-平面,这样可以避免频率混叠。通常被称为Tustin方法。传递函数的频率相应可以通过将z替换成e^(jwT)来计算。其中,w是角频率,T是采样周期。传递函数H(z)替换之后,变成。
2024-10-27 22:30:59
692
原创 雕虫小技之逻辑分析仪
sigrok-cli是PluseView的命令行工具。对于工程师来说,命令行工具能提供很多自定义的使用技巧。特意记录一下。笔者持有的逻辑分析仪为nanoDLA V1.2(问题不少,不推荐)。
2024-10-12 16:44:30
478
原创 HDMI之VRR与FVA
VRR全称Variable Refresh Rate,可变刷新率。FVA全称Fast Vactive,快速帧传输。近些年,大屏电视普及,PS和XBOX游戏机畅销。HDMI开始发力提升电视机的游戏体验。对于游戏用户,对帧率和Delay是显然是最关注的指标。而VRR和FVA就是其中的重要特性。这两个特性的共同原理都是修改Vfront,所以本文将其放在一起讲解。本文尝试尽量讲解通俗易懂,避免千篇一律的索引或者翻译协议。自然也难免纰漏。
2024-02-01 16:49:17
1120
原创 HDMI之ALLM
ALLM是一个非常简单的特性,Sink(接收端)通过EDID来宣告支持ALLM,Source(发射端)通过数据岛HF-VSIF持续通知Sink进入游戏模式。在传输过程中,HDMI总线不会对视频信号做任何处理。
2024-01-25 12:41:49
904
原创 HDMI之数据岛
第一个字节用于定义包类型,其他两个字节由具体的包类型指定。通过前面AVI InfoFrame和GCP InfoFrame,基本定义了普通视频信号的参数。结合前面计算带宽的公式,希望读者脑海有个形象的传输概念。
2023-12-03 21:51:35
431
原创 HDMI之编码篇
HDMI 2.0b(含)以下版本,采用3个Channel方式输出。传输又分为3三种周期,视频数据,数据岛以及控制周期。视频传输采用8/10编码。数据岛采用4/10编码(TERC4)。控制周期采用2/10。编码都拓展成了10bits。上图中,Pixel component(e.g.B)->D[7:0]表示视频数据周期中,8个bits全使用。数据传输是串行的,只有一根线,D[7:0]表示一个TMDS Character period传输的8个bits,并非有D[7:0]根线。
2023-11-12 17:28:31
825
原创 如何在Windows下创建Ramdisk
笔者最近在捣鼓串口工具LOG时,高频率的使用了fflush。为了提升IO性能以及保护硬盘,研究了一下Windows的Ramdisk。特此记录,希望能帮助有缘人。
2022-07-27 23:48:15
3934
原创 ffmpeg之volumedetect
The human perception of loudness注:代表均方根(RMS),可以理解为有效电压。代表最大值(1代表0db),可以理解为峰值电压。不理解
2022-06-20 19:40:49
517
原创 Flutter开发日志——路由管理
前言知难行易,还是知易行难?笔者以为,答案应该从目标去寻找。目标是学习Flutter,知是一门语言,一个框架只是功夫深铁杆总能磨成针;行是每天下班回来打开电脑。对于这点,笔者以为知易行难。手总是无法抑制的选择了TIMI和TIKTOK。目标是快速掌握Flutter,知是Flutter的路径和方法;行依然是每天下班回来打开电脑。兜兜转转一个多月,依然是蜻蜓点水。知难知难,何时醍醐灌顶?笔者偶得《Flutter实战.pdf》,便依法修炼。路由路由(Route)在移动开发中通常指⻚⾯(Page),这跟web
2022-05-29 00:06:13
308
原创 Flutter开发日志——进度条
源码import 'package:flutter/material.dart';void main() => runApp(const MyApp());class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); static const String _title = 'Flutter Code Sample'; @override Widget build(Buil
2022-05-02 22:08:25
1434
原创 ffmpeg使用笔记
前言Hyper fast Audio and Video encoder安装分享一下如何在Windows平台安装。windows平台可以通过MSYS2安装,也可以下来绿色包安装。MSYS2系统里面的软件包有些features没打开。笔者推荐绿色包安装。下载链接ffmpeg-release-essentialsffmpeg-release-fullffmpeg-release-full-shared解压之后,配置一下环境变量。即可方便使用。用法Hyper fast Audio and Vi
2022-04-29 14:46:11
648
原创 Flutter开发日志——初生牛犊
前言以Flutter自动创建的例程为基础,记录应用的流程。代码import 'package:flutter/material.dart';void main() { runApp(const MyApp());}class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); @override Widget build(BuildContext context) {
2022-04-23 22:44:12
2186
原创 Flutter开发日志——Dart篇
前言终有一天,学习变得很慢,坚持变得很难。希望心底的那团火能让你浴火重生。觉醒吧,不屈的少年!前面星辰大海,前面是诗和远方!环境Dart因Flutter而生,自然也伴随Flutter一路。安装好Flutter环境后,便可开始学习Dart之旅。// ethan@B85MK:~/Flutter/Dart$ cat hello_world.dart var name = 'I am nobody.';void main() { print('Hello,World!'); print(
2022-04-05 11:32:26
3328
原创 Flutter开发日志——部署开发环境
安装SDKGet the Flutter SDK下载之后,需要将SDK路径添加到系统环境变量。以本人的路径为例。创建APPAPP状态
2022-03-14 12:04:08
4046
原创 UART总线笔记
前言UART应该是嵌入式工程师使用最多的总线之一。笔者总是忘记一些细节。特意抓图记录一下。实例设置:115200 8N1时序知识点IDLE时为高电平。LSB对齐8N1代表8个数据位(协议可以是5 ~ 9位)。N代表没有奇偶校验位。1代表1个停止位。由高电平转低电平,表示Start或者下一个bit。图 时序 中,测量0(红色框框,标0的两个测试点)。表示一个bit位宽。bit位宽 = 1 / 115200 = 8.68e-6s = 8.68us。这里的0.05us左右的偏差是逻辑分析
2021-12-06 11:24:18
716
原创 HDMI之EDID入门篇
edid-decode工欲善其事,必先利其器。edid-decode是一个很好的edid分析工具。edid-decodecommit : b00755e34eb12aa92416aaf1bb7b02603131afe0编译Linux环境,直接make。Windows Msys2环境,需要稍作修改。将edid-decode-msys2.patch复制到当前目录。git clone https://git.linuxtv.org/edid-decode.gitcd edid-decodegit
2021-11-24 10:17:56
3848
3
原创 I2S总线笔记
背景调试MS8416T时,发现左右通道数据有相位差。而且,相位差随着Fs增加而增加。经原厂FAE指导,发现是输出I2S格式配置不正确导致。特记录一下。时序注意细节除了AES3 Direct, 其他都是MSB。I2S是左对齐,然后延迟一个bit。I2S是LRCLK低电平对应左通道。I2S是SCLK下降沿改变数据,上升沿锁存数据。...
2021-11-17 16:35:41
737
原创 Excel提取数字技巧
前言微信接龙逐渐流行。这段时间,村里给学校捐款,想快速统计一下总额。百度无效,Google得结果。还是挺感慨中文圈文章严谨性的。往往都是不做验证,不做批注,随手一转。记录一下。参考文章excel-extract-number-from-string代码=SUMPRODUCT(MID(0&A1, LARGE(INDEX(ISNUMBER(--MID(A1, ROW(INDIRECT("1:"&LEN(A1))), 1)) * ROW(INDIRECT("1:"&LEN(A
2021-09-03 10:46:07
564
原创 IAR之Checksum
前言项目需要在IAR生成固件时自动生成校验码。网上的一些笔记不详细,所以总结一些经验分享。参考文章Cyclic_redundancy_checkIELFTOOL ChecksumIAR设置链接脚本/*###ICF### Section handled by ICF editor, don't touch! ****//*-Editor annotation file-*//* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cort
2021-09-01 16:34:07
2046
原创 Visual Studio Code之设置
文章目录全局设置工作空间设置全局设置修改VScode方式有UI和JSON两种方式。可以通过以下菜单路径找到(快捷键Ctrl+,)。JSON方式需要点击右上角小图标。File -> Preferences -> Settings默认Shell "terminal.integrated.automationShell.windows": "C:\\Windows\\System32\\cmd.exe", "terminal.integrated.automationShel
2021-08-05 16:55:26
688
lds规则连接脚本的介绍
2011-11-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人