[以下是正文内容]

当禁用 cookies 时,商店将无法正常工作。

2023-01-01: 这个项目已经进行了一段时间了……现在是时候发布一些信息,看看会发生什么。我有一些废旧的 Milwaukee M18 电池。年代略有不同。我原以为反向工程一个电池会很“有趣”,只是想看看它是如何工作的……直到我打开第一个电池,看到了所有的 0402 电阻和电容。然后这似乎成了一个“有趣又糟糕”的主意。所以这是第一个电池的开始;请享用!(提示 - 点击图片可以获得更大的版本!)

这是我们第一个反向工程的候选者:一个 Milwaukee M18 48-11-1828 18VDC 54Wh / 3 Ah 电池组。(嘿,这是我随便拿的第一个……我原本想找一个 5Ah 的,但不知怎的错过了……直到 PCB 被移除后才仔细看我拿的是什么。)序列号:B41MD 028567。这个特殊的电池似乎无法正常保持电量(充电时指示灯会亮到全满,但放在电钻上旋转一秒钟,指示灯现在显示两格。)但是电池电压看起来是正常的。我真的对电池本身不感兴趣,所以暂时停止了这方面的研究。

移除 4 个防篡改的 Torx 螺丝并弹出电池顶部外壳后,我们看到了一个简单的电路板,它连接到 5 个引脚和 10 个电池(5 组 2 个电芯)。我说简单?(我可能稍后会后悔……)

在移除电路板并焊下连接器后,我将这个 PCB 放在一个不错的相机(Sony A6300 配 FE 2.8/50 Macro 镜头)下。

PCB 的背面……抱歉,我真的不应该在这些上面使用 300W 的 Weller 电烙铁……我的 Hakko 没有适用于宽端子的合适烙铁头……[再次提醒一下,什么时候买这个]。我真的需要把这些板上的涂层去掉。

在溶剂中浸泡并在黄铜刷毛刷的快速擦洗后,我们得到了一个漂亮的清晰电路板。我们有两个芯片,花了相当多的时间才弄清楚它们是什么……[浪费大量时间试图获得激光标记不清的图片并猜测多个数字(这是 B 还是 8?;6、5 还是 8?) - 我的妻子终于找到了 U2 的解决方案 - 为第二意见和出色的阅读/破译技巧欢呼!] U1 是一个 Texas Instruments MSP430G2744 混合信号微控制器 (Datasheet, PDF, 86 pages, 2.15MB). U2 是一个 Texas Instruments BQ76925 3 to 6 Series Cell Li-Ion Battery Monitor IC (Datasheet - PDF, 48 Pages, 6.10MB).

电路板背面……此时我注意到 PCB 右上方那些小小的数字(昏暗的 3 和 4)。然后我不得不翻转电路板并验证顶部确实有 1 和 2…… 哦哦……(这是一个 4 层电路板)我还应该在这里注意到电路板底部的文字“280086026 Rev 7.0 Jan-31-2013”;据我所知,这与正面所说的相同。

经过几个小时非常乏味地焊下组件并尝试测量每一个组件后,我们得到了一块看起来像这样的板;它还需要一些清理,但这很快就会到来……我现在有一个 BOM (PDF, 3 Pages, 29KB),它非常完整,并且电路板仍然基本完好 - 如果你想找一些东西,我总共丢失了一个焊盘并松动了两个焊盘。据我所知,丢失的焊盘没有连接到任何东西。

用 400 目的砂纸快速打磨以去除阻焊层和丝印,使我们能够看到 Layer 1 上的大部分铜。现在我们需要到达中间层。

经过更多的打磨后,我们可以清楚地看到 PCB 上的 Layer 2。我们可以看到电路板右侧的接地/负极平面。

在 PCB 的另一侧进行相同的过程。我们可以很好地看到 Layer 2,但我会警告你,由于 Layer 3 上的接地平面,一些过孔没有很好地突出显示……围绕 U1 的较大铜区域似乎是正极轨道。

我已经尽我所能标记了所有的铜层。你可以在这里下载我正在处理的文档的低分辨率版本。(ZIP-XCF-Gimp, 30.1MB) 我将不得不暂停一下这个项目,但这应该足够你开始追踪连接,而无需进行之前的所有工作。(如果我弄错了任何连接,请告诉我!)。是的,我知道我也没有导出固件……这在我的待办事项清单上!请享用!

2023-01-16:小更新和正在进行中的通知:我附上了一个关于 BQ76925 电池监控连接的小图。这些电池中总让我感到困惑的一个领域是:是否存在电芯平衡?~~这个电池的答案是绝对的 NO!(这让我很困惑……为什么不呢?我的意思除了成本?)~~ 2023.2.1 更正:感谢 Ben C. 指出我的错误; 似乎 BQ76925 确实具有平衡电芯的能力。电流由 R7/R9/R11/R12/R11 控制。但实际的平衡由主机 MSP430 的命令控制。此图像中完全图示了除 BAT+ 和 CT1- 之外的每个电池连接。但我真的很困惑 D20/D21 的用途……[2023.2.1 注:我认为我偶然发现了微处理器的部分电压调节电路。但没有完全图解。我真的应该包含 BQ76925 的框图。我在此处包含它以供参考。] 我仍然对两个图和实际的 Milwaukee 设计之间电容器布局的差异感到困惑。

2023-01-28:小更新:充电控制电路的快速示意图。我需要知道 MSP430 上的哪个引脚控制充电电路。现在你也知道了!4401 P-Channel MOSFET 数据表 (Datasheet, PDF, 8 pages, 181KB). 提醒一下,RT2 未安装,R29 已安装。(不知何故,我在 我的 BOM 上错误地标记了这个电阻,而且我拥有的另一块电路板上没有 RT2 或 R29……我需要解剖更多的电池才能找到类似年代的类似电路板。)现在,我想知道电池是如何知道连接了充电器的……

这是 UI 电路元件。令我惊讶的是,他们使用 Q1 来打开和关闭 LED;为什么要使用额外的 IO 引脚来切断 LED 的电源?是否存在我遗漏的泄漏/电压问题?开关输入在硬件中得到了很好的去抖动,尽管我再次对通过 R27 连接的额外 IO 引脚感到困惑……它似乎有点浪费;典型的电路不会使用 R27 将引脚 33 偏置到 VCC,而是连接到 IO 引脚?从 4 针接头到引脚 5(手册上说“复位或不可屏蔽的中断输入。编程和测试期间的 Spy-Bi-Wire 测试数据输入/输出。”)和引脚 37(手册上说“选择 Port 1 上 JTAG 引脚的测试模式。设备保护熔丝连接到 TEST。编程和测试期间的 Spy-Bi-Wire 测试时钟输入。”)有直接连接。当我想在某个时候检索固件时,我真的不喜欢在引脚描述中看到关于“设备保护熔丝”的直接提及。

[![](https://quagmirerepair.com/files/M18_48111828_B41/28086026 R7.0_UI_sm.webp)](https://quagmirerepair.com/</files/M18_48111828_B41/28086026 R7.0_UI.webp>)

2023-02-03:哦,看!Texas Instruments 提供的关于如何将 BQ76925 与 MSP430G2xx2 一起使用的便捷指南。(PDF, 29 Pages, 941kB) 为什么电路图看起来很眼熟?几乎就像 Milwaukee 使用了 Texas Instruments 的参考设计并进行了调整!

2023-02-04:关于 M18 电池的几个有趣的 google 专利链接:包含电气线束的电池组及其制造方法 (PDF, 11 pages, 770KB).用于给电池组充电的系统和方法 (PDF, 9 pages, 1MB).包含无刷直流电动机的大功率无线手持式电动工具 (PDF, 72 pages, 5.8MB).

我也会将此图添加到页面中,因为 J1/J2 通信似乎是一个流行的请求,而且我认为我终于对它进行了不错的图解。J2 似乎具有双重用途:1) 电池在连接到充电器(也可能是工具?)时会接收到大约 12VDC。这通过 R33 并“唤醒” MSP430(假设它尚未运行)。然后电池似乎降低了 [J1 上的] 电压,这向充电器发出信号,表明已连接电池并允许开始通信。2) 通信似乎通过 D11 -> Q11。MSP430 通信引脚 40 和 31 被电阻 R45 拉高,被 Q11 拉低。3) 我不确定 R48 连接此时的目的是什么。

还有一个图……此图显示了 MSP430 和 BQ76925 之间的各种信号线和通信链路。最后,热敏电阻也适合电路!

有趣的是,Milwaukee 的电池几乎完全复制了 Texas Instruments 的应用报告中的参考图。(PDF, 29 Pages, 941kB) 我唯一能看到的不同之处是 Milwaukee 未使用的警报线……想知道为什么?(我还没有深入研究这个引脚的细节……)我想你不能改进完美设计的东西!

2023-02-06:Milwaukee M18 电池通信:

J1/J2 通信设置:

2000 Baud(是的,真的……不是 1200,也不是 2400 波特率)

数据长度:8 位

奇偶校验:无

停止位:1

空闲级别:高

位顺序:未知

感谢 Mick @ buyitfixit 提醒我,当你测量到 500us 的位持续时间并计算出 2000 的波特率时,无论数据表说什么(或者常见的波特率是什么),你可能都不应该尝试用 1200 或 2400 波特率解码串行流。

每条消息的最后一个字节似乎是一个校验和。即 0x81 + 0x20 + 0x00 + 0x00 = 0xA1(再次感谢 Mick @ buyitfixit)

按下电池测试按钮时,电池似乎没有在 P1/P2 上发送任何数据; Milwaukee M18 电池似乎也不再支持长按自检诊断/LED 闪烁代码。无法让它们出现在 2015 年及以后的任何电池上……[编辑:较新的 M18 FORGE 电池似乎再次内置了该功能]

令人惊讶的是,有很多 M18 工具似乎无法与电池通信……当然,我处理的大多是二手/其他损坏的工具,因此可能存在一些故障。M18 LED 手电筒、传输泵、圆锯等似乎无法通信。

2023-02-11 更新:以下是一些数据供任何人仔细研究。仍然不太确定位顺序 - 示波器设置为 LSB(最低有效位)。第一个电子表格是我在示波器上 7 秒捕获的结果,当电池插入充电器时,通信线路的电压下降会触发捕获。有关电池的各种数据点都包含在电子表格中。奇怪的是,很多数据看起来非常相似,唯一的重大区别是当电池报告自身已充满电时,通信会提前关闭。第一个字节可能是设备 ID。第二个字节可能是命令。最后一个字节是校验和。中间呢?

BatteryPluggedIntoCharger (ZIP - Libreoffice Calc Spreadsheet .ODS, 33KB)

第 2/3 个电子表格:除了观察 P1/P2 数据线之外,我还窃听了 BQ76925 和 R7F0C901B2 MCU 之间的 SDA/SCL 通信线。不幸的是,由于四个通道和 I2C 通信所需的更高分辨率,我的示波器的捕获时间非常有限。这显示了 R7F0C901B2 MCU 请求的数据,但没有显示 BQ76925 提供的实际数据。我在电子表格中包含了几张 BQ76925 上寄存器映射的图片,以帮助解码数据……奇怪的是,至少对我而言,没有请求 VC4_CAL,而且我只看到一个电池单体电压的请求。(如果我错误地解释了数据,请纠正我)

2023-02-10_Charging (ZIP - Libreoffice Calc Spreadsheet .ODS, 147KB) SDA_SCL_Decode (ZIP - Libreoffice Calc Spreadsheet .ODS, 148KB)

2023-09-12:更新:我与 Tool Scientist 没有任何关系,但他比我有时间将反向工程做得更深入……

2023-10-29:Tool Scientist 的新视频解释了“工具到电池的通信”:

绝对很高兴知道我没有发疯或完全愚蠢,因为我没有发现工具和电池之间发生任何通信,尽管我不得不承认我错过了 12V/3V“握手” - 我看到了电压的存在,但从未看到握手或看到它们消失。而且完全错过了电池电流监控,即使我清楚地看到它应该出现在示例设计中。我只是假设 Milwaukee 选择不实现它。Tool Scientist 做得非常出色……现在开始设计一些新的电路!

2024-09-14:更新:没有新信息,但很高兴看到有人提到!(是的,我真的 11 个月都没看到!)

2024-10-5:Tool Scientist 的另一个视频。他比我能更好地解释事情!似乎还差一小步,才有人为这些电池构建第三方外部平衡器。(请,如果有人这样做了,请告诉我!如果需要,我很乐意构建和测试单元!)我已经在 100 多个这些电池上手动进行平衡,使它们再次工作!他正在做什么,以至于他创建了代码来生成一个平衡字节?:) 我想我们将在未来的视频中找到答案!

还意识到我从未链接到此项目的其他部分完成的相关页面。有关快速充电器内部结构的更多信息,点击这里。有关类似的(但不一样)部分完成的 5Ah 电池拆解,点击这里。(上面视频中提到的关于 Renesas R7F0C901B2 微处理器的参考让我检查了链接,但我显然从未将它们放在此页面上。)

(还对此页面进行了一些可读性修复。)

2024-12-28:关于过时的 MSP430 芯片的兔子洞(点击展开)

2024-12-28:在观看了一些最新的 Tool Scientist 视频后,我必须添加一个注释:有没有人考虑过 Texas Instruments BQ76925EVM Evaluation Module? 向下滚动页面一点,到它说 'SLUC581 — bq76925 Example Code' 的地方。在技术文档下,有一个 Datasheet 和一个 User's Guide (SLUU514A). 还有一个 Application Report (SLUA707),它暗示了 TI 的一个预构建的电池管理代码库……但我似乎找不到它……

2025-01-07:仅理论上的;阅读并自行承担风险!

上面的处理器是 40-Pin RHA 封装(来源:MSP430G2744 Datasheet (Datasheet, PDF, 86 pages, 2.15MB)., 第 5 和 8 页)

并且这个部件可以由 MSP-FET430UIF programming tool 编程,同时可能使用 MSP-TS430RGA40A socket. MSP430 Hardware Tools (PDF, 191 pages, 9.75MB). 第 78-80 页给出了电路板的原理图、布局和 BOM。

(还有 MSP430G2xx Family User's Guide (PDF, 703 pages, 9.49MB).,它为你提供了关于处理器的及其所有功能的相当多的信息,包括一个有趣的关于闪存操作的第 7 节。)

相关的利益可能是 MSP430 Programming with the JTAG Interface User's Guide (PDF, 83 pages, 1.68MB).MSP430 Flash Devices Bootloader BSL (PDF, 52 pages, 1.13MB).。每份文档中都有两个警告:1):每个 MSP430F1xx、2xx 和 4xx 闪存设备都包含一个物理熔丝,用于永久禁用通过 JTAG 通信的内存访问。当这个熔丝被编程(或熔断)时,通过 JTAG 访问内存将被永久禁用,并且无法恢复。2) 通过 BSL 访问 MSP430 MCU 内存受到 BSL 密码的保护,以防止滥用。

无论如何,兔子洞……回到 MSP430 Hardware Tools (PDF, 191 pages, 9.75MB). 第 21 和 22 页显示了两个用于编程的连接图。

RST/NMI 是引脚 5 TDO/TDI 是引脚 36 TDI/VPP 是 35? TMS 是引脚 34 TCK 是引脚 33 TEST 是引脚 37

RST/NMI/SBWTDIO 是引脚 5 TEST/SBWTCK 是引脚 37

现在我们需要重新审视一个带有标记为 HD1 的接头的早期电气图 - 我们现在可以清楚地将其识别为 Spy-bi-Wire /2-Wire JTAG 接口。R1 和 C1-C3 [在上面的图中] 位于电池电路板上。

这应该是与 JTAG 和编程相关的 M18 电池 / MSP430 芯片上所有引脚的基本原理图。除了引脚 36 之外,大多数引脚都有一个可以焊接到的测试点,该引脚似乎连接到一个没有进一步连接的过孔……

[![](https://quagmirerepair.com/files/M18_48111828_B41/28086026 R7.0_JTAG_sm.webp)](https://quagmirerepair.com/</files/M18_48111828_B41/28086026 R7.0_JTAG.webp>)

(还修复了 html 页面代码中一个错位的 div 标签……现在段落不会运行到页面的最边缘,并且更具可读性。)

2025-01-11:理论在实践中并不总是奏效……还在等待 MSP-TS430QFN40……我认为有些事情正在发生;一旦我尝试通信,电池就会拒绝响应板上的按钮,并且只能通过连接到充电器再次唤醒。VCC / VSS 上的 3.3VDC 仍然存在

2025-01-15:MSP-TS430QFN40 到了……焊下了 4 个芯片……并尝试将第一个放入插座……它没有卡入到位,而是掉在了触点之间……?芯片尺寸为 5x5mm - RHA40 应该大约为 5.8x5.8mm 或 QFN40 大约为 6x6mm……经过仔细的眯眼后,我可以看到这是一个 32 针 Renesas R5F100BG。我可以看到我移除的其他芯片也以相同的方式标记……这些电池都是 2018 年及更新的版本……我知道有更新的芯片在使用中,但我从未意识到我应该检查我是否有任何带有 MSP430 的旧电池。叹气。是时候侦察了……

2025-04-14:嗯……我真的应该[尝试]跟上其他人。我仍然没有找到任何带有 MSP430 微控制器的旧电池可供使用,其他人已经提前完成了所有工作:

[链接到中国 M18 电池电路板](https://quagmirerepair.com/<https:/quagmirerepair.com/chinese-m1