docs(MA801): 官方手册直证 —— PD132T 捕获时钟 3MHz/10.92ms 全链闭环,间接论证升级为直证

- 用户提供 Megawin MA801/MA802 官方手册(CN vA10 / 2013-04),归档为 models/PD132T/MA801_MA802_Datasheet_A10.pdf
- 三处关键定义均为手册原文:
  · AUXR(0x8EH) b7=T0X12 b6=T1X12(0=SYSCLK/12,1=SYSCLK)⇒ 0xC0 使 T0/T1 按 1 个时钟周期计数(§14)
  · CMOD(0xD9H) CPS1:CPS0 位于 b2:b1,编码 10 = 定时器0溢出(手册示例 CMOD=0x02⇒SYSCLK/2 自校验)
  · 器件 = 1-T 80C51 / 8KB Flash / 256B RAM / max 25MHz
- ⇒ 0xC0(T0 走 SYSCLK)+ TMOD=0x12 & TH0=252(每 4 周期溢出)+ CMOD=0x04(T0 溢出)= PCA 3MHz;T1 5ms 反证 SYSCLK=12MHz
- 文档中「同族手册 MG82F6D17 代理 + T1 侧反证」的间接论证全部改写为官方直证;4 文件同步;表格校验 0 异常
This commit is contained in:
wangfq
2026-09-11 08:47:41 +08:00
parent 01d574c4a9
commit 382a23594c
4 changed files with 12 additions and 6 deletions
+2 -1
View File
@@ -10,6 +10,7 @@
| 型号 | 文件 | 版本 | 说明 |
|------|------|------|------|
| PD132T | `models/PD132T/PD132T.A_Ver2.01-20210609_Logic.pdf` | Ver2.01 (2021-06-09) | 2 页:P1 主控板 / P2 振荡+分频 |
| PD132T**MCU 手册** | `models/PD132T/MA801_MA802_Datasheet_A10.pdf` | A10 (2013-04) | Megawin MA801/MA802 官方手册(**用户 2026-09-11 提供**)——`AUXR`/`CMOD` 位定义直证源 |
| DLD154V4B | `models/DLD154V4B/DLD154V4_Ver3.00-20250903_Logic.pdf` | Ver3.00 (2025-09-03) | 1 页:主控+振荡+电源 |
## 2. 电路链(OCR + 固件交叉确认)
@@ -25,7 +26,7 @@ DLD154V4B:
```
- 固件交叉确认(V4B):`TaskLoop.c` TMR3 ISR 只做捕获(`loop1_Xn = 相邻边沿差`),无驱动输出 → 振荡由硬件有源器件自激;`main.c` 无线圈激励代码(TMR14 PWM 是红灯呼吸灯 PB1,与线圈无关)。
- PD132T 分频比**图纸实测 = ÷32Q5)**:800dpi 逐行游程扫描确认 CD4060 的 10 个 Q 输出中**只有 Q5pin 5)引出**(476px 走线;其余已标注引脚均 99px 空脚桩)→ 网络 **LP** → 页1 MCU **U2 pin9 = CEX1/T1/P3.5**PCA 捕获脚),与固件 `CMOD=0x04; //时钟源为定时器0溢出`(作者原注)+ **Megawin 手册 CPS 表(`CPS[2:0]=010 ⇒ 定时器0溢出`** 互证,且 `REG_MA801.H``sbit CEX1 = P3^5` 亦与图纸 pin9 吻合 ✓。捕获时钟 = SYSCLK/4 = **3MHz**`TH0=TL0=252` 4 分频溢出 + `AUXR=0xC0`T1 `0x15A0`→60000 计数 = 5ms 反证定时器输入 12MHz)。⚠ **Xn 是半周期**`CCAPM1=0x31` 双沿捕获 ⇒ 相邻捕获之差 = 半周期)⇒ Xn 窗 406~2050 对应**线圈 ≈23.4~118kHz**(标称 ≈105kHz,高频档 ✓ 落在代码注释 48~110kHz 内;若按整周读法则为 46.8~236.6kHz,待现场一次量定)。
- PD132T 分频比**图纸实测 = ÷32Q5)**:800dpi 逐行游程扫描确认 CD4060 的 10 个 Q 输出中**只有 Q5pin 5)引出**(476px 走线;其余已标注引脚均 99px 空脚桩)→ 网络 **LP** → 页1 MCU **U2 pin9 = CEX1/T1/P3.5**PCA 捕获脚),与固件 `CMOD=0x04; //时钟源为定时器0溢出`(作者原注)+ **MA801 官方手册 CPS 编码表(`CPS1:CPS0=10 ⇒ 定时器0溢出`** 互证,且 `REG_MA801.H``sbit CEX1 = P3^5` 亦与图纸 pin9 吻合 ✓。捕获时钟 = SYSCLK/4 = **3MHz**`TH0=TL0=252` 4 分频溢出 + `AUXR=0xC0` ⇒ 手册 §14「定时器率为 1 个时钟周期」T1 `0x15A0`→60000 计数 = 5ms ⇒ SYSCLK = 12MHz 晶振 ✓)。⚠ **Xn 是半周期**`CCAPM1=0x31` 双沿捕获 ⇒ 相邻捕获之差 = 半周期)⇒ Xn 窗 406~2050 对应**线圈 ≈23.4~118kHz**(标称 ≈105kHz,高频档 ✓ 落在代码注释 48~110kHz 内;若按整周读法则为 46.8~236.6kHz,待现场一次量定)。
## 3. 元件级对比
@@ -110,7 +110,7 @@ CAPVD = LPCNT × Xn_分频后 = 32768 ← 与 N 无关
| 型号 | 捕获时钟 | 寄存器依据 | 测量窗(32768 tick |
|---|---|---|---|
| PD132T**MA801** | **3MHz** = 12MHz/4 | `CMOD=0x04; //时钟源为定时器0溢出`(作者原注)+ **Megawin 手册 CPS 表:`CMOD[3:1]=010 ⇒ 定时器0溢出`** ✓ 两法互证;`TH0=TL0=252`8bit 自动重载,每 4 个输入时钟溢出 = 注释「时钟/4」)+ `TMOD=0x12` + `AUXR=0xC0`(×12/1T 位);T1 `TH1/TL1=0x15A0`→60000 计数 = **5ms**ISR 注释「定时5ms」/「5*10=50ms」)⇒ 定时器输入 = **12MHz** = SYSCLK ⇒ 1T 生效,T0 同为 12MHz ⇒ PCA = 12M/4 | **10.92 ms** |
| PD132T**MA801** | **3MHz** = 12MHz/4 ✅**全链官方手册直证** | ① `AUXR=0xC0` ⇒ T0X12=T1X12=1 ⇒ 定时器按 **1 个时钟周期**计数(手册 §14:「AUXR.T0X12 和 AUXR.T1X12 用来设置定时器 0/1 的定时器率为 1 个时钟周期」;`0`=SYSCLK/12、`1`=SYSCLK);② `TMOD=0x12` + `TH0=TL0=252` ⇒ T0 8bit 自动重载,每 **4** 个 SYSCLK 溢出= 作者注释「时钟/4」);③ `CMOD=0x04` `CPS1:CPS0=10`**PCA 时钟 = 定时器 0 溢出**(手册编码表;作者原注「时钟源为定时器0溢出」同此);④ T1 `TH1/TL1=0x15A0`→60000 计数 = **5ms**ISR 注释「定时5ms」/「5*10=50ms」)⇒ SYSCLK = **12MHz 晶振** ⇒ PCA 捕获时钟 = 12M/4 | **10.92 ms** |
| PD132L | **1.2MHz** = 12MHz/10 | `TIM1_PSCRL=0x09`(10 分频)+ 外部 12MHz 晶振(`CLK_ECKR`/`CLK_SWR=0xB4``CLK_CKDIVR&=0xF8` 无分频) | 27.3 ms |
| PD136HA | **1.5MHz** = XTH(12MHz)/8 ✅**已确认** | `enCntClkDiv = AdtClkPClk0Div8`PCLK0/8+ `CLK_INIT()``XTH_CR \|= 0x07`(作者注释「**8-16MHZ**,最强驱动」)→ 直取 XTH、**无 PLL / 无 HCLK_PRS·PCLK_PRS 分频** ⇒ PCLK0 = XTH = **12MHz****用户确认 2026-09-11:外部晶振也是 12M**);`Delay_ms` 1330 次/ms 亦印证 ~12MHz | **21.85 ms** |
@@ -125,8 +125,11 @@ CAPVD = LPCNT × Xn_分频后 = 32768 ← 与 N 无关
> 🔧 **MCU 归属更正(2026-09-11,用户口径 + 源码取证)**
>
> - **PD132T = Megawin(笙泉科技)MA801** —— 板上标记 MA801ASSFR 头 `USER/REG_MA801.H` 首行即 `/* for Megawin MA801 */`;其中 `sbit CEX1 = P3^5` ✓ **与图纸 LP→MCU pin9 完全吻合**。此前文档记「STC12C2052」系按寄存器地址相似所致的误判 —— **已更正,且 3MHz/10.92ms 结论不变**。
> - MA801 **专册未取得**(聚合站受限);CPS 表引自 **Megawin 同族手册 `MG82F6D17` v1.02**SFR 映射逐地址一致:CMOD=0xD9 / CCAPM0=0xDA / CCAPM1=0xDB / CL=0xE9 / CH=0xF9 / CCAP0L=0xEA)。**结论对位布局分歧免疫**:无论按经典 PCA 的 2 比特(CPS1:CPS0=10)还是 Megawin 的 3 比特(CPS[2:0]=010)解读,`CMOD=0x04` 都落在 **「Timer0 溢出」** ✓
> - `AUXR=0xC0` 的位定义未获 MA801 手册直接佐证,但由 **T1 侧独立反证**(60000 计数 = 5ms ⇒ 定时器输入 12MHz ⇒ 1T/×12 位确实生效);两定时器共用同一次写入 ⇒ T0 同为 12MHz ✓
> - ✅ **MA801/MA802 官方手册已取得并逐条核对**`models/PD132T/MA801_MA802_Datasheet_A10.pdf`Megawin,版本 A10 / 2013-04**用户 2026-09-11 提供**)。三处关键定义**均为手册原文**:
> 1. `AUXR`0x8EH= `T0X12(b7) T1X12(b6) URM0X6 EADCI ESPI ENLVFI -- --`b7/b6 位定义 `0` = SYSCLK/12、`1` = **SYSCLK** ⇒ `0xC0` 使 T0/T1 均按 **1 个时钟周期**计数(§14 原文:「AUXR.T0X12 和 AUXR.T1X12 用来设置定时器 0/1 的定时器率为 1 个时钟周期」)
> 2. `CMOD`0xD9H)时钟源编码表 = `00: SYSCLK/12 / 01: SYSCLK/2 / **10: 定时器0溢出** / 11: ECI`,且 `CPS1:CPS0` 位于 **b2:b1**2 比特布局;**自校验**:手册示例 `CMOD=0x02 ⇒ 系统时钟/2` ✓)⇒ `0x04` ⇒ **Timer0 溢出** ✓ 与作者原注**逐字一致**
> 3. 器件特性:**1-T 80C51 内核**、**8KB Flash**、**256B RAM**、最大 25MHz、外部晶振 + 内置 IRCO(6MHz);§14.2.5 示例即写「SYSCLK = 12MHz 晶振」✓
> - ⇒ 原先依赖「同族手册 `MG82F6D17` + T1 侧反证」的**间接论证已全部升级为官方直证**,本链条不再有未取证环节 ✓
> - **PD136HA = HC32F003C4**(小华半导体 HDSC,用户确认)。⚠ 工程档位仍是 `HC32F005C6PA`Keil `<Device>`+ startup `hc32f005c6ua` ⇒ **重编译前须改器件档位**;实测固件 `Code=11148 RO=268 RW=88 ZI=608` ⇒ ROM≈11.1KB / RAM≈696BF003(16KB/2KB) 与 F005(32KB/4KB) 都装得下 ✓。Keil 工程 `<Cpu>… CLOCK(12000000) …` 亦**独立佐证 12MHz** ✓
> - ⚠ **双沿捕获的意外发现**PD132T `CCAPM1=0x31` = **CAPP+CAPN 双沿捕获**(旧稿写「下降沿捕获」**有误**),ISR 内 `loop1_Xn = 本次捕获 − 上次捕获` ⇒ **Xn 实为「半周期」**(对 50% 占空方波)。⇒ 线圈绝对频段按半周期重算:PD132T 窗 406~2050 ⇒ **≈23.4~118kHz**PD136HA/PD132L ⇒ **≈11.8~60kHz**(与代码遗留注释 `//高频:48-1100,低频:22-550`(单位存疑)大体相容)。
> - **⚠ 灵敏度/偏差口径不受影响**`CAPVD/32768 = f_旧/f_新` 是**比值**,半/整周期因子同进分子分母相互约掉 —— 与 §2.2「分频比 N 被约掉」同理 ✓
Binary file not shown.
+4 -2
View File
@@ -10,7 +10,7 @@
| 项 | 值 |
|----|-----|
| MCU | **Megawin MA801**(笙泉科技,8051 内核;板上标记 MA801AS。SFR 头 `USER/REG_MA801.H` 首行即 `/* for Megawin MA801 */`;此前文档误记「STC12C2052」,系按寄存器地址相似所致,2026-09-11 用户口径更正) |
| MCU | **Megawin MA801**(笙泉科技,**1-T 80C51 内核**、8KB Flash、256B RAM、max 25MHz;板上标记 MA801AS。官方手册 `MA801_MA802_Datasheet_A10.pdf`A10 / 2013-04。SFR 头 `USER/REG_MA801.H` 首行即 `/* for Megawin MA801 */`;此前文档误记「STC12C2052」,系按寄存器地址相似所致,2026-09-11 用户口径更正) |
| 工具链 | Keil C51`.uvproj`,含 `STARTUP.A51` |
| 时钟 | `AUXR=0xC0`(内部时钟相关);Timer0 8bit 自动重装 252 给 PCA 提供时钟(÷4) |
| 看门狗 | **WDTCR**0x3C → ~1.05s);复位用 `ISPCR=0x20`ISP 软复位) |
@@ -90,12 +90,14 @@
> 系统时钟 **12MHz(已确认,2026-09-11**;公式:测量节拍 = BASE/捕获时钟。
>
> ⚠ **2026-09-11 勘误(捕获时钟 0.75MHz → 3MHz**:旧稿按「T0 走 SYSCLK/4」推算 0.75MHz 无寄存器依据。实配 `TH0=TL0=252`4 分频溢出)+ `AUXR=0xC0`T0x12=1 ⇒ T0 走 SYSCLK/1+ `CMOD=0x04`PCA 时钟取 T0 溢出),作者注释即 `//溢出供PCA时钟,时钟/4`;并由 **T1 `TH1/TL1=0x15A0`60000 计数)⇒ ISR 注释「定时5ms」反证 SYSCLK=12MHz** ✓ ⇒ **PCA 捕获时钟 = SYSCLK/4 = 3MHz,测量节拍 10.92ms**(若晶振为 11.0592MHz 则 11.85ms)。
>
> ✅ **2026-09-11 官方手册直证(Megawin MA801/MA802 手册 A10,用户提供)**:① `AUXR`0x8EHb7=T0X12、b6=T1X12`1` ⇒ **SYSCLK** 作定时器时钟(§14「定时器率为 1 个时钟周期」);② `CMOD`0xD9H`CPS1:CPS0` 位于 **b2:b1**,编码 `10 = 定时器0溢出`(手册示例 `CMOD=0x02 ⇒ SYSCLK/2` 自校验 ✓);③ 器件 = 1-T 80C51 / 8KB Flash / 256B RAM。⇒ 上述推导**不再依赖同族手册代理或反证**,全部官方直证 ✓
> **连带影响**:IIR τ、基线更新周期、进入/离开响应三行同步勘误;**线圈频率窗结论不受影响**(N×f_cap 乘积不变:旧 ÷128×0.75MHz = 新 ÷32×3MHz = 96MHz)。
> 详见 `docs/pd136ha-to-dld154v4b-delivery-alignment.md` §2.3。
| 量 | 公式/值 | 数值 | 对比 PD132L |
|----|---------|------|------------|
| 捕获时钟 | Timer0(252) 溢出/4T0 走 SYSCLK/1`AUXR=0xC0` → T0x12=1)⇒ 12M/4 | **3 MHz**(勘误) | L=1.2MHz |
| 捕获时钟 | Timer0(252) 溢出/4T0 走 SYSCLK`AUXR=0xC0` → T0X12=1**官方手册直证**)⇒ 12M/4 | **3 MHz**(勘误 + 手册直证 | L=1.2MHz |
| **测量节拍**CAPVD 更新) | 32768 / 3MHz | **10.92 ms**(勘误) | L=27.3ms**快 2.5×** |
| **基线更新周期** | 100 窗 × 10.92ms | **1.09 s**(勘误) | L=2.73s(慢 2.5×) |
| IIR 时间常数 τ | 10.92ms × 256/79 | **35.4 ms**(精确 29.6ms | L=88ms |