You've already forked CMB18_CellMonitoringApplication
44 lines
2.9 KiB
Markdown
44 lines
2.9 KiB
Markdown
# ⚡ TLE9018 Master BMS - Production-Grade Dual Scope Control
|
||
|
||
An advanced multi-node desktop monitoring, cell balancing, and telemetry control interface built in Python for the **Infineon TLE9018DQK** 18-channel Li-ion Battery Monitoring and Balancing IC.
|
||
|
||
The software connects to daisy-chained Cell Supervision Circuits (CSCs) via high-speed isoUART (2 MBaud) through a **TLE9015DQU** transceiver bridge. It features an interactive CLI setup stage for dynamic COM port selection and NTC thermistor profiling, real-time 18-cell PCVM voltage acquisition, individual cell balancing control, and live 5-channel temperature tracking using a PyQt5/PyQtGraph dashboard.
|
||
|
||
---
|
||
|
||
## 📸 Interface Preview & Key Features
|
||
|
||
* **Dynamic COM Port Detection:** Automatically scans available system serial ports during CLI startup, eliminating hardcoded port dependencies (`COM9`, etc.).
|
||
* **Multi-Node Auto-Enumeration:** Supports daisy-chained setups of 1 to 8 TLE9018 sensing ICs with automated `IF_CFG` (`0xC0`) final-node (`FN`) assignment.
|
||
* **Dynamic NTC Hardware Footprint Configuration:** Interactive terminal setup allowing on-the-fly bias current mapping (`INTC`) for mixed 10 kΩ and 100 kΩ thermistor channels.
|
||
* **Synchronous 18-Cell PCVM Monitoring:** 16-bit high-resolution cell voltage scanning using official partition masks (`PART_CFG_0`/`1`).
|
||
* **Interactive Passive Balancing Engine:** Instant bitmask translation for registers `BAL_CTRL_0` (`0xE6`) and `BAL_CTRL_1` (`0xE7`) across individual board targets.
|
||
* **Hardware-Calculated NTC Telemetry:** Direct decoding of `EXT_TEMP_0..4` (`0x5E`–`0x62`) combining 10-bit ADC codes with 3-bit exponential current scaling indices (`INTC`).
|
||
* **Non-Blocking Multi-Threaded GUI:** Asynchronous serial I/O running in an independent background worker thread using queues (`_PLOT_QUEUE`, `_COMMAND_QUEUE`) to prevent PyQt UI freezes.
|
||
|
||
---
|
||
|
||
## 📐 System Hardware & Electrical Specifications
|
||
|
||
| Parameter | Value / Configuration |
|
||
| :--- | :--- |
|
||
| **Sensing Transceiver** | Infineon TLE9015DQU (UART to isoUART Bridge) |
|
||
| **Sensing IC** | Infineon TLE9018DQK |
|
||
| **Communication Interface** | Serial Port |
|
||
| **Supported Daisy-Chain Nodes** | 1 to 8 Stacked Boards |
|
||
| **NTC Channel 0** | Fixed 100 kΩ NTC in 10 µA Bias Mode |
|
||
| **NTC Channels 1–4** | User-selected: 10 kΩ or 100 kΩ |
|
||
| **Series Reference Resistor ($R_{\text{TMP}}$)** | $100\ \Omega$ |
|
||
| **Full-Scale ADC Range ($FSR_{\text{TMP}}$)** | $2.0\text{ V}$ |
|
||
|
||
---
|
||
|
||
## 📁 Project Structure
|
||
|
||
```text
|
||
.
|
||
├── tle9018dqk/ # Official Infineon Driver Package
|
||
│ ├── control.py # Low-level UART frame builder & J1850 CRC calculation
|
||
│ └── registers.py # Complete TLE9018 register address mapping dictionary
|
||
├── monitoring_CMBs.py # Master Application (CLI Setup + Threaded PyQt5 GUI)
|
||
└── README.md # System Documentation |