# 电子器件应用开发2 **Repository Path**: zhiOS/app2 ## Basic Information - **Project Name**: 电子器件应用开发2 - **Description**: 目标:发挥CT9板卡已有成熟功能(被动元件、步骤控制...),定制开发应用功能 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-16 - **Last Updated**: 2026-07-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 程序分区:默认支持24个机种; ### 使用CTx板卡测试过程中,分离和分层是两个重要的设计思想,这些思想不仅提高了代码的可重用性,还简化了测试的开发、调试和维护。 1软件:分离思想 分离思想是将测试算法和测试参数分开。 举个例子,假设我们要测开关板上两点之间的容值,如果不进行分离设计,任意两点都要编写单片机代码,显然这样是不合理的。 通过分离设计,测试点号、上限下限、前延时等参数与容值测试算法不相关的参数只需在测试步骤里设置,然后调用单片机算法代码,即可实现测试; 测试参数和算法之间可以任意组合,提高代码可重用性、降低耦合程度。 2硬件:分层思想 分层思想是将通用硬件功能和专用硬件功能分开。 举个例子,SPI通讯速率很高,接线过长会导致通讯极其不稳定,如果不进行分层设计,测试会很不稳定。 通过硬件模块分层设计,把速率高、时序特殊、电压低等专用功能用专用硬件模块实现,然后通过排线与主控板级联透传,可实现测试; 硬件分层设计提高信号的稳定性、灵活性。 目标1:发挥T9+板卡已有成熟功能(被动元件、步骤控制...),结合MCU单片机(推荐STM32)定制开发功能、上位机软件开发功能,实现电路板电测系统的自定义开发; 输入图片说明 输入图片说明 目标2:用最快速、最直接的方式操作硬件,避免过度的抽象包装、避免使用大型开发软件;电测的特点决定了zhi系统实现对每一层(特别是底层)都可以直接操作(使用不同的模式操作不同的层,) 目标3:把抽象、杂乱、无序的测试问题转变成直观具体、系统、有序并支持现场多种调试手段的方法 -采用“步骤编程”为核心理念,把需要测量的项目(复杂到PDM解码+傅里叶变换)、执行的动作(简单到开关量输出)都看成“步骤”,通过顺序执行一个个“步骤”实现一个复杂项目的电测控。 已实现的成熟模式有: 开短路的测试,最多4096点 电阻、电容、二极管... 被动元件 的测量,最多点数4096,实现类似万用表的功能 GG模式透传,实现UART\RS232的数据直接调试; 更高精度要求可以扩展接入高精度仪器 更多的扩展... ### 一。SPI通讯--1282工程 实现与W25系列FLASH通讯(X5接CS,X6接SCK,X7接MISO,X8接MOSI) 【高点】高8位填命令功能码,【高点】低8位+【低点】16位填地址; 【高点2】选择功能分支 【低点2】选择CS引脚功能,默认选X5 #### lib库里_JT_,_JU_,_JV_,_JW_ 四种模式 对应 SPI依据边沿分为模式 0,1,2,3 具体模式举例 1.写入 ``` 13 w x1111 x7538 0 0 x00 x1234 5 WJW0 100 0 0 0 0 0 地址x1234写入x1111 13 w x1111 x7538 0 0 x020A x1234 5 WJW0 100 0 0 0 0 0 地址xA1234写入x1111 ``` 2.读取 ``` 13 ID0 xEF x7538 0 0 x9F00 x0 5 RJW1 100 0 0 0 1 0 读取ID第1个字节 13 ID1 x2813 x7538 0 0 x9F00 x0 5 RJW1 100 0 0 0 23 0 读取ID第2,第3字节 13 D x11 x7538 0 0 x00 x1234 5 RJW1 100 0 0 0 4 0 读取地址x1234 13 D x11 x7538 0 0 x030A x1234 5 RJW1 100 0 0 0 4 0 读取地址xA1234 ``` ``` 24 - x00 x7DDE 8192 64 x00 x00 5 RJW0 100 0 0 2 72 59000 比较烧录内容 25 - x00 x7DDE 0 0 0 0 5 0YH1 100 0 0 2 x00 x00 判断 26 - x08 x7DDE 0 0 0 0 0 0YH1 100 0 0 2 x00 x00 0 0 - 30005 x7DDE xFFFF x00 0 0 5 0YH1 100 0 0 2 x00 x00 错误字节 0 - 30005 x7DDE xFFFF x00 0 0 5 0YH1 100 0 0 2 x00 x00 标准字节 ``` 3.下位机执行到如下步骤时,上位机可实现擦除、写入、读取 ``` 13 PC x00 x7538 0 0 x00 x00 5 PJW0 100 0 0 0 0 0 单步时上位机与芯片直接通讯 ``` #### 自定义_ET_,_EU_,_EV_,_EW_ 四种模式 对应 SPI依据边沿分为模式 0,1,2,3 具体模式举例 1.写入 ``` 13 w x1111 x7538 0 0 x00 x1234 5 WEW0 100 0 0 0 0 0 地址x1234写入x1111 13 w x1111 x7538 0 0 x020A x1234 5 WEW0 100 0 0 0 0 0 地址xA1234写入x1111 ``` 2.读取 ``` 13 ID0 xEF x7538 0 0 x9F00 x0 5 REW1 100 0 0 0 1 0 读取ID第1个字节 13 ID1 x2813 x7538 0 0 x9F00 x0 5 REW1 100 0 0 0 23 0 读取ID第2,第3字节 13 D x11 x7538 0 0 x00 x1234 5 REW1 100 0 0 0 4 0 读取地址x1234 13 D x11 x7538 0 0 x030A x1234 5 REW1 100 0 0 0 4 0 读取地址xA1234 ``` ``` 41 - 0 30000 8192 64 0 0 5 REW0 100 64 0 0 72 59000 与64*8K地址内容 42 - x00 x00 0 0 0 0 5 0YH1 100 0 0 0 x00 x00 判断 43 - x08 x00 0 0 0 0 0 0YH1 100 0 0 0 x00 x00 0 0 - 30005 x1801 xFFFF x00 0 0 5 0YH1 100 0 0 0 x00 x00 错误字节 0 - 30005 x410B xFFFF x00 0 0 5 0YH1 100 0 0 0 x00 x00 标准字节 ``` ### 二。I2C通讯--1288工程 实现与I2C接口芯片通讯 1.默认:X7接scl,X8接sda 2.用AL30/ALQ0模式,支持A/B/C/G型开关板任意点(高点填VDD,低点填GND,高点2填SDA,低点2填SCL,测量板带3K上拉),适用低工作电压低工作电流(小于1mA) [更多详细说明访问公众号链接](https://mp.weixin.qq.com/s?__biz=MzA4NDY3MTM0NA==&mid=2247485879&idx=1&sn=162c86f0b072dc91e101d571933d9822&chksm=9fe2e7a8a8956ebead4a76234a531c9fd0d0ab2692197b6e961dba9af6fcfaed527c4988264c&scene=178&cur_album_id=2812115933359095813&search_click_id=#rd) 【高点2】选择功能分支 ##### lib库里_JX_早期模式不建议使用 #### lib库里_JY_,_JZ_ 两种种模式 对应 上位机10进制显示、16进制显示; 【高点】【低点】预留 【低点2】填入寄存器地址 具体模式举例 1.搜索从机地址 ``` 13 - x22 x7538 0 0 x00 x00 5 TJZ1 100 0 0 0 0 x00 搜索从机8bit地址 ``` 2.初始化从机地址 ``` 13 - x00 x7538 0 0 x00 x00 5 JJZ0 100 0 0 0 0 x11 从机7bit地址设置位x11 ``` 3.写入 ``` 13 w x11 x7538 0 0 x00 x0 5 CJZ0 100 0 0 0 0 x01 地址x01 13 w x1234 x7538 0 0 x00 x0 5 CJZ0 100 0 0 0 1 x01 地址x01写入两个字节,低在前 13 w x1234 x7538 0 0 x00 x0 5 CJZ0 100 0 0 0 11 x01 地址x01写入两个字节,高在前 ``` 4.读取 ``` 13 ID0 x11 x7538 0 0 x00 x0 5 RJZ1 100 0 0 0 0 0 读取ID第1个字节 13 ID1 x1122 x7538 0 0 x00 x0 5 RJZ1 100 0 0 0 1 0 读取ID两个字节,低字节在前 13 ID2 x2211 x7538 0 0 x00 x0 5 RJZ1 100 0 0 0 2 0 读取ID两个字节,高字节在前 ``` #### app1288自定义 具体模式举例 1.回调函数_CJZ10x写入 【低点2】填入寄存器地址 【备注】填入HEX格式寄存器地址+数据 ``` 13 - x00 x7538 0 0 x00 x0 5 CJZ0 100 0 0 0 100 x22 123456 //从机地址x22写入x123456 ``` 2.回调函数_RJZ10x读取 ``` 13 ID0 x11 x7538 0 0 x00 x0 5 RJZ1 100 0 0 0 100 0 读取ID第1个字节 13 ID1 x1122 x7538 0 0 x00 x0 5 RJZ1 100 0 0 0 101 0 读取ID两个字节,低字节在前 13 ID2 x2211 x7538 0 0 x00 x0 5 RJZ1 100 0 0 0 102 0 读取ID两个字节,高字节在前 ``` ``` 13 - x00 x7538 0 0 x00 x00 5 RJZ0 100 0 0 0 103 0 自定义算法 13 a 11 x7538 0 0 0 10001 5 7XU1 100 0 0 0 0 0 读取第1个计算结果 13 b 22 x7538 0 0 0 10002 5 7XU1 100 0 0 0 0 0 读取第2个计算结果 ```