BUILD LOG 20 JUILLET 2026

Jour 2 — Le Câblage RK3328 BGA-395, PMIC, bus mémoire 32-bit, connectivité haute vitesse

Aujourd'hui : connecter tous les sous-systèmes du RK3328 dans KiCad. Alimentations, horloges, RAM, USB, HDMI — chaque signal a reçu son Global Label.

Jour 1, c'était la théorie — choix du SoC, architecture du backplane, le MUX TS3V340. Jour 2, c'est la pratique. PROJECT MUTANT a commencé à exister pour de vrai, avec des symboles, des bus et des labels dans KiCad.

Un RK3328 en BGA-395, c'est 395 boules à connecter une par une. Alimentation, horloge, mémoire, USB, HDMI, Ethernet, debug — chaque bloc a été câblé. Voilà comment ça s'est passé.

🔌 Périphériques embarqués 08:30 — 09:00

Avant de plonger dans le BGA, j'ai ajouté quelques composants qui ne compliquent pas trop le routage.

🎧 Jack Audio 3.5 mm Sortie audio analogique via le DAC du RK3328. L, R, masse — trois broches suffisent.
💡 RGB LED (WS2812B) Une seule GPIO pour indiquer boot, erreur ou activité réseau. Protocole One-Wire, simple.
🧠 EEPROM I²C (M24C32) 32 Ko de mémoire sur I2C2. Stocke le numéro de série et la config d'usine — sert de carte d'identité pour le rack.
🔄 Bouton Recovery GPIO + GND. Maintien au boot pour forcer le mode Mask ROM — utile si la MicroSD est corrompue.

L'EEPROM I²C, c'est le même principe que sur les Raspberry Pi Compute Module : la carte hôte peut lire la version et les capacités de la lame avant même que le CPU ait booté. Pas besoin de jumpers.

Le bouton Recovery, c'est la bouée de sauvetage. Le RK3328 a un mode Mask ROM qui s'active sur une broche au reset. Indispensable pour flasher des prototypes.

⚡ Power Management & Horloges 09:00 — 12:30

L'alimentation d'abord. Sans rails propres, rien ne marche. Et un BGA avec USB 3.0, HDMI et DDR3 ne pardonne pas.

Le RK3328 bosse avec le PMIC RK805. Ce circuit gère tout le séquençage des tensions au démarrage. Le SoC communique avec le PMIC via I2C1 — on peut configurer les tensions et les seuils par logiciel.

VDD_ARM Cœur ARM Cortex-A53 — ~1.1V
VDD_LOG Logique numérique du SoC — ~0.9V
VCC_DDR Alimentation mémoire — 1.2V/1.35V
VCC_1V8 / VCC_3V3 Rails génériques — I/O et PLL
VDD_10 Tension dédiée PHY USB 3.0 — 1.0V
VDDA_* Alimentations analogiques (HDMI PLL, etc.)

Chaque rail a reçu un Global Label dans KiCad — comme ça, le routage PCB sera plus simple. Les PHYs haute vitesse (USB, HDMI) ont leurs alimentations dédiées, avec des capas de découplage au plus près des broches.

Le PMIC RK805 est câblé sur sa propre feuille (Feuille 01). Chaque régulateur et seuil de tension est connecté au bus I2C1.

Le quartz 24 MHz est câblé avec ses capas de charge (18 pF), ainsi que la ligne de Reset globale. Les résistances de calibration des PHYs sont en place, prêtes pour le tuning d'impédance.

MÉTHODE Je nomme tous les rails avec des Global Labels explicites — pas de noms automatiques. Chaque tension se retrouve dans tout le projet.

🎴 Interface de Boot & Stockage 13:00 — 14:30

Comme décidé au Jour 1 : pas d'eMMC. Boot et stockage sur MicroSD seulement. Plus simple, plus réparable.

Le bus SDMMC0 du RK3328 est câblé vers un connecteur MicroSD push-push. Les signaux :

SignalFonctionNotes
SDMMC0_CLKHorlogeJusqu'à 50 MHz en SDR104
SDMMC0_CMDLigne de commandeBidirectionnelle, pull-up
SDMMC0_D0–D3Bus données 4-bitParallèle, jusqu'à 200 Mbps
SDMMC0_DETDétection de carteInterrupteur mécanique

Le connecteur push-push, c'est le classique "clique pour insérer, clique pour éjecter". Pas besoin d'outil pour changer de carte. La ligne SD_DET est sur une GPIO — détection de carte et événement noyau, pratique pour du headless.

Les lignes données ont des résistances série de 22 Ω pour limiter les réflexions. Au routage, il faudra garder D0–D3 à longueur égale pour éviter le skew.

🧠 Bus Mémoire RAM 32-bit DDR3 14:30 — 18:00

Le morceau le plus chaud de la journée. Le RK3328 a un contrôleur mémoire 32-bit qui gère DDR3 ou DDR3L. J'ai tout cartographié sur le schéma.

Le bus données est divisé en 4 byte-lanes de 8 bits, DQ0 à DQ31. Chaque lane a son masque (DM0–DM3) et son strobe différentiel (DQS0_P/N–DQS3_P/N). Les strobes sont critiques — ils cadrent l'échantillonnage en haute fréquence.

DQ0–DQ31 Bus de données 32-bit principal
DM0–DM3 Masques de données par byte-lane
DQS0_P/N–DQS3_P/N Strobes différentiels — 4 paires
A0–A14 Bus d'adresses — 15 lignes
BA0–BA2 Sélection de banque mémoire
RAS / CAS / WE Commandes de la matrice mémoire

Les signaux de contrôle sont câblés : CS_L (chip select), CKE (clock enable), ODT (on-die termination), RST_L (reset), et l'horloge différentielle CLK_P/N.

Prêts à connecter à la puce RAM physique — étape prévue au Jour 3. Les noms de nets suivent tous la convention DRAM_* pour éviter la confusion au routage.

STATUT Bus RAM 32-bit câblé jusqu'au SoC. Manque plus que la puce DDR3 et les terminateurs.

La DDR3 tourne à 1.5V et se trouve encore facilement d'occasion. Le RK3328 supporte aussi la DDR3L (1.35V) pour économiser un peu d'énergie.

🔌 Connectivité & Haute Vitesse 18:00 — 21:00

Dernier bloc : les interfaces. USB, HDMI, Ethernet — tout ce qui relie la carte au monde.

Le RK3328 a un port USB 2.0 OTG + un port Host, plus les paires SuperSpeed USB 3.0 (jusqu'à 5 Gbps). L'OTG fait double job : alimentation en mode Pi, données en mode Rack via le MUX.

Côté vidéo, le HDMI 2.0 est câblé : trois canaux TMDS, l'horloge, le DDC via I2C3, le CEC et le Hot Plug Detect.

Pour le réseau, le FEPHY intégré sort via ETH_TX_P/N et ETH_RX_P/N. Direction le magnétique et le RJ45.

Enfin, la console debug UART2 est câblée (DEBUG_TX/DEBUG_RX). Les logs U-Boot et noyau passeront par là — indispensable pour les premiers tests.

USB_OTG / USB_HOST USB 2.0 + SuperSpeed 5 Gbps
HDMI_TX0/1/2 + CLK TMDS — vidéo 4K@30Hz
ETH_TX / ETH_RX Paires différentielles 1000BASE-T
DEBUG_TX / DEBUG_RX Console UART — 115200 bauds

📋 Statut du projet — Fin du J2 21:00

TâcheStatut
RK3328 BGA entièrement câblé (alim + I/O)✅ Fait
MicroSD câblée✅ Fait
Bus RAM 32-bit étiqueté✅ Fait
Schéma PMIC terminé (Feuille 01)✅ Fait
Accueil Jour 1