Doku: FM Transceiver index.md vollständig überarbeitet (2m + 70cm; USB-Bridge erklärt)#14
Merged
Conversation
Adds: - 1-sentence description front-matter (band-agnostic — 2 m or 70 cm) - Übersicht clarifying USB-only CM4 communication via STM32U575 Composite Device (UAC2 + CDC ACM + DFU) - Mermaid block diagram of the signal flow STM32 ↔ SA818 ↔ antenna - Band-variant table (SA818V + LFCN-160 for 2 m; SA818U + LFCN-180+490 for 70 cm) with warning about chip/filter pairing - Steckverbinder table (J101 SMA, J201 SWD, J202 bus, JP201 solder-pad) - Bus pinout J202 (FM slot's local view — mirrored vs BusBoard slot) - SWD header pinout (J201) + TBD note linking to issue #13 for pin-1 silkscreen marking - STM32 ↔ SA818 signal mapping table (PTT GPIO1→PB2, PWR_DOWN GPIO2→ PB10, H/L GPIO3→PB11, SQUELCH GPIO4→PB1) - Firmware role section (UAC2 + CDC + DFU breakdown, all over USB) - Components table extracted from netlist (SA818, STM32U575, TLV73333 automotive LDO, USBLC6, CAT24C32 EEPROM, LMR51430 buck, LFCN filters, pin drivers) - EEPROM section — note it's currently empty, intended for module config; JP201 solder-pad as write-protect bridge - Versorgung table - Bestückung notes incl. variant pairing + antenna safety warning - Bringup checklist - Cross-links to BusBoard, PowerBoard, CM4 Carrier, FW-RemoteStation
There was a problem hiding this comment.
Pull request overview
This PR rewrites the FM Transceiver module documentation to describe band variants, USB-based CM4 communication, STM32 firmware roles, connector/power details, and bring-up steps.
Changes:
- Replaces the brief module description with a full architecture overview and Mermaid block diagram.
- Adds connector, SWD, GPIO, firmware, EEPROM, power, assembly, and bring-up documentation.
- Clarifies intended 2 m / 70 cm variants and related module dependencies.
Comments suppressed due to low confidence (2)
doc/index.md:168
- This power note is inaccurate: the bus
+5Vrail feeds the 3.3 V LDO input, and U204 (USBLC6-2SC6) is tied to+3V3, while the SA818 rail is the separate local buck output+5V_HF. Saying the bus+5Vpowers the USBLC6 obscures which rail users should probe and debug.
Hinweis: das Modul nutzt sowohl die +12V- *als auch* die +5V-Schiene vom Bus — die +5V vom Bus speist die USB-Interface-Schaltung (USBLC6), während die SA818-Versorgung lokal aus den +12V gezogen wird (saubere Trennung von Audio/Digital und HF/Switching-Noise).
doc/index.md:180
- This bring-up check tells users to measure the bus connector
+5Vpin as the LMR51430 output, but the bus connector pins are on the bus+5Vnet; the buck output in the board files is the separate+5V_HFrail. This test could pass even if the local SA818 supply is not working.
1. **Power-Sanity:** Modul in Slot stecken, +12 V anlegen, am Bus-Stecker `+5V`-Pin gegen GND messen → 5.00 ± 0.05 V (LMR51430-Output). `+3V3` (z.B. am SWD-Header J201 Pin 1 vs Pin 3) muss 3.30 ± 0.05 V zeigen.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+61
to
+62
| | **2 m / VHF** | `SA818V` | `LFCN-160` | 144 – 174 MHz | | ||
| | **70 cm / UHF** | `SA818U` | `LFCN-180` + `LFCN-490` | 400 – 480 MHz | |
| | Bezeichner | Typ | Funktion | | ||
| | ---------- | --- | -------- | | ||
| | **J101** | Board-Edge SMA | Antennenanschluss (50 Ω) | | ||
| | **J201** | 10-Pin 1.27 mm SWD (Cortex Debug) | STM32-Programming- und Debug-Header | |
| | ---------- | --- | -------- | | ||
| | **J101** | Board-Edge SMA | Antennenanschluss (50 Ω) | | ||
| | **J201** | 10-Pin 1.27 mm SWD (Cortex Debug) | STM32-Programming- und Debug-Header | | ||
| | **J202** | 20-Pin (Hirose PCN10-20P-2.54DSA) | Bus-Stecker zum [BusBoard](../HW-Module-BusBoard/) | |
Comment on lines
+112
to
+117
| | Funktion | STM32 GPIO-Label | SA818-Pin | Richtung | | ||
| | -------- | ---------------- | --------- | -------- | | ||
| | **PTT** (Push-to-Talk) | `GPIO1` | `PB2` | STM32 → SA818 | | ||
| | **POWER_DOWN** (Modul ein/aus) | `GPIO2` | `PB10` | STM32 → SA818 | | ||
| | **H_L_Power** (Sendeleistung high/low) | `GPIO3` | `PB11` | STM32 → SA818 | | ||
| | **SQUELCH** (Squelch-Open-Indikator) | `GPIO4` | `PB1` | SA818 → STM32 | |
|
|
||
| Zwischen SA818 und CM4 sitzt ein **STM32U575** Mikrocontroller. Er stellt sich am USB als **Composite Device** vor und sieht für das CM4-Linux aus wie: | ||
|
|
||
| - **UAC2** (USB Audio Class 2) — TX-Audio strömt vom CM4 als Audio-Sink in den STM32-DAC und von dort als analoges Signal zum SA818-Mic-Input. RX-Audio läuft umgekehrt: SA818-AF_OUT → STM32-ADC → über UAC2 als Audio-Source zurück an's CM4. |
| Nach Bestückung (mit Bus + CM4 verbunden): | ||
|
|
||
| 1. **Power-Sanity:** Modul in Slot stecken, +12 V anlegen, am Bus-Stecker `+5V`-Pin gegen GND messen → 5.00 ± 0.05 V (LMR51430-Output). `+3V3` (z.B. am SWD-Header J201 Pin 1 vs Pin 3) muss 3.30 ± 0.05 V zeigen. | ||
| 2. **STM32-Boot:** kurze Latenz nach Power-Up sollte am USB ein Composite Device erscheinen (`lsusb` am CM4). Drei Endpoints: UAC2 (Audio), CDC ACM (Serial), DFU. |
| | **CDC ACM** | Kontroll-Pfad | `/dev/ttyACM*` — ASCII-Kommandos für PTT, Squelch-Read, Frequenz, Power-Level. | | ||
| | **DFU** | Firmware-Update | `dfu-util` kann die STM32-FW über USB neu schreiben — **kein BOOT0-Pin-Eingriff nötig**, die laufende Firmware switcht über CDC-Kommando in den DFU-Mode. | | ||
|
|
||
| Audio läuft vollständig analog zwischen SA818 und STM32 (DAC/ADC im STM32) — keine Echtzeitkritik am CM4 nötig, Audio wird als USB-Audio-Stream behandelt. |
… LFCN-180 for 2m / LFCN-490 for 70cm User correction: - 2m needs LFCN-180 (not LFCN-160 as I had — LFCN-160 doesn't even exist) - 70cm needs LFCN-490 - Only ONE filter footprint on the board (FL101, FV1206) — not two The 'LFCN-160' value string I'd seen in the schematic only appears as a stale Value-property on the SA818 lib_symbol entry (copy-paste leftover in the symbol library), not on an actually-placed component. The real placed filter (FL101) has Value 'LFCN-180/490' on the FV1206 footprint and is alternately populated with LFCN-180 or LFCN-490 depending on band.
7 issues from Copilot's review on PR #14, all valid after schematic + PCB verification: 1. J201 (SWD-Header): 2.54 mm 2x5 horizontal pin header per PCB footprint Connector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_Horizontal, NOT 1.27 mm ARM-Cortex-Debug. Need 2.54 mm SWD adapter or per-pin jumper wires. 2. J202 (Bus-Stecker): PRJ:PCN10C-20S-2.54DS per PCB — the female socket variant. Mates with the male PCN10-20P-2.54DSA pin header that's on the BusBoard. My doc had copy-pasted the BusBoard's male part number, which was wrong for the FM consumer side. 3. STM32 ↔ SA818 GPIO mapping: user's quick-quoted PB values were wrong. Verified against connector_cpu.kicad_sch — STM32U575CITx LQFP-48 pins 18-21 are PB0/PB1/PB2/PB10: PTT GPIO1 ↔ STM32 PB2 (pin 20) ↔ SA818 ~PTT (pin 5) POWER_DN GPIO2 ↔ STM32 PB1 (pin 19) ↔ SA818 ~PD (pin 6) H_L_PWR GPIO3 ↔ STM32 PB10 (pin 21) ↔ SA818 H/L (pin 7) SQUELCH GPIO4 ↔ STM32 PB0 (pin 18) ↔ SA818 ~SQ (pin 1) 4. LFCN filters: already corrected in 4cdeb05 (Copilot reviewed an earlier commit). Single FL101 footprint, LFCN-180 for 2m or LFCN-490 for 70cm. 5. Wording: "Drei Endpoints" → "Drei USB-Interfaces"; UAC2 + CDC ACM each use multiple endpoints, DFU-Runtime usually has no dedicated data endpoint. Calling all three "Endpoints" was technically wrong. 6. Wording: "Echtzeitkritik" (literally "real-time criticism") → "Echtzeit-Anforderungen". 7. Spelling: "an's CM4" → "ans CM4" (correct German contraction).
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 1 out of 1 changed files in this pull request and generated 5 comments.
Comments suppressed due to low confidence (3)
doc/index.md:182
- The bring-up check points users at the Bus connector
+5Vpin but calls it the LMR51430 output. In the PCB netlist J202 a4/a5/b4/b5 are on the+5Vbus rail, while the buck output is the separate+5V_HFnet, so this step can pass even if the local buck powering the SA818 is not working.
1. **Power-Sanity:** Modul in Slot stecken, +12 V anlegen, am Bus-Stecker `+5V`-Pin gegen GND messen → 5.00 ± 0.05 V (LMR51430-Output). `+3V3` (z.B. am SWD-Header J201 Pin 1 vs Pin 3) muss 3.30 ± 0.05 V zeigen.
doc/index.md:119
- The PR description lists a different STM32 GPIO mapping (GPIO2→PB10, GPIO3→PB11, GPIO4→PB1) than this table (GPIO2→PB1, GPIO3→PB10, GPIO4→PB0). The schematic/PCB netlist matches the table, so the PR description should be corrected to avoid reviewers/users relying on the wrong pins.
| **POWER_DOWN** (Modul ein/aus) | `GPIO2` | `PB1` (Pin 19) | `~PD` (Pin 6) | STM32 → SA818 |
| **H_L_Power** (Sendeleistung high/low) | `GPIO3` | `PB10` (Pin 21) | `H/L` (Pin 7) | STM32 → SA818 |
| **SQUELCH** (Squelch-Open-Indikator) | `GPIO4` | `PB0` (Pin 18) | `~SQ` (Pin 1) | SA818 → STM32 |
doc/index.md:61
- The PR description says the 2 m variant uses
LFCN-160, but this table and the schematic/PCB useLFCN-180/490for FL101. Please align the PR description with the documented hardware variant so the filter choice is unambiguous.
| **2 m / VHF** | `SA818V` | `LFCN-180` | 144 – 174 MHz |
Comment on lines
+59
to
+62
| | Variante | SA818-Chip | LPF-Bestückung (FL101) | Band | | ||
| | -------- | ---------- | ---------------------- | ---- | | ||
| | **2 m / VHF** | `SA818V` | `LFCN-180` | 144 – 174 MHz | | ||
| | **70 cm / UHF** | `SA818U` | `LFCN-490` | 400 – 480 MHz | |
| | **offen** (Default ab JLCPCB) | EEPROM beschreibbar — STM32 kann CAT24C32 lesen UND schreiben. | | ||
| | **gebrückt** (Lötzinn-Brücke) | EEPROM schreibgeschützt (CAT24C32 Pin 7 / WP = high). Nur Lesen möglich. | | ||
|
|
||
| In der Endmontage (Produktivbetrieb) ist es empfehlenswert die Brücke zu setzen, damit kein Firmware-Bug versehentlich Kalibrierdaten überschreibt. |
|
|
||
| ## Firmware-Rolle (STM32U575) | ||
|
|
||
| Die STM32-Firmware (Quelle: [`FW-RemoteStation`](https://github.com/OE5XRX/FW-RemoteStation)) macht aus dem FM-Modul ein selbst beschreibendes USB-Gerät am CM4: |
| | **J101** | Board-Edge SMA | Antennenanschluss (50 Ω) | | ||
| | **J201** | 10-Pin 2.54 mm Stiftleiste 2×5 horizontal (right-angle) | STM32-Programming- und Debug-Header (SWD-Pin-Belegung) | | ||
| | **J202** | 20-Pin (Hirose **PCN10C-20S-2.54DS** — weibliche Buchse, paart mit dem PCN10-20P-Stift-Header auf dem BusBoard) | Bus-Stecker zum [BusBoard](../HW-Module-BusBoard/) | | ||
| | **JP201** | 2× Lötpad | EEPROM-Write-Protect-Brücke (siehe „EEPROM" unten) | |
|
|
||
| 1. **Power-Sanity:** Modul in Slot stecken, +12 V anlegen, am Bus-Stecker `+5V`-Pin gegen GND messen → 5.00 ± 0.05 V (LMR51430-Output). `+3V3` (z.B. am SWD-Header J201 Pin 1 vs Pin 3) muss 3.30 ± 0.05 V zeigen. | ||
| 2. **STM32-Boot:** kurze Latenz nach Power-Up sollte am USB ein Composite Device erscheinen (`lsusb -v` am CM4). Drei USB-Interfaces sind erwartet: UAC2 (Audio), CDC ACM (Serial), DFU-Runtime. | ||
| 3. **Soundkarten-Check:** `aplay -L` / `arecord -L` am CM4 → die FM-Module-UAC2-Soundkarte muss in der Liste sein. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Vollwertige Überarbeitung der FM-Transceiver-Doku im selben Stil wie PowerBoard #6 / BusBoard #5 / CM4Carrier #4.
Wichtigste Änderungen:
Issue created
#13 — STM32 SWD-Header (J201): Pin-1-Lage im Silkscreen markieren
Test plan