Colorlight – skener slouží k fyzickému zjištění přiřazení kontaktů SO-DIMM konektoru k pinům FPGA na SO-DIMM modulech Colorlight i5, i5+ a i9. Sleduje všech 194 (200 na i9) dostupných uživatelských I/O pinů pouzdra CABGA381, které nepotřebuje pro vlastní běh.
Skener jsem vytvořil pro ověření správnosti elektrického propojení SO-DIMM modulu s konektorem na PCB vlastní aplikace a pro kontrolu správného přiřazení jednotlivých signálů I/O.
Skener lze použít také k fyzickému ověření přiřazení vývodů součástek k pinům FPGA přímo na modulu. Některé piny FPGA však mohou být prostřednictvím připojených součástek již pevně drženy na určitém potenciálu. Pokud je takový pin trvale stažen na úroveň LOW, skener jej bude indikovat jako aktivní a jeho přiřazení proto nelze tímto způsobem jednoznačně určit.
FPGA SO-DIMM moduly Colorlight


Obrázky jsou použité z https://github.com/wuxx/Colorlight-FPGA-Projects
Vyloučené FPGA piny
| Funkce | FPGA pin | Režim |
|---|---|---|
| Hodiny | P3 | vstup 25 MHz |
| UART | J17 | jediný aktivní datový výstup, 115200 Bd, 8N1 |
| Zelená LED | U16 (L2)* | diagnostika průchodu úvodního banneru |
* U16 – i5 i5+, L2 – i9
Skenované FPGA piny
| Funkce | FPGA pin | Režim |
|---|---|---|
scan_i[193:0] |
zbývajících 194 PIO pinů | pouze vstup, interní weak pull-up |
Piny bank 3 a 8 jsou v projektu deklarované jako LVCMOS25. Banky 0, 1, 2, 6 a 7 jsou deklarované jako LVCMOS33. Deklarace I/O standardu napětí banky nevytváří ani nemění: interní pull-up se fyzicky vytahuje k reálnému VCCIO dané banky. Napětí proto ověř multimetrem na Ext-Boardu.
Sestavení
Spusť:
project\VYTVORIT_A_BUILD_I5.bat
project\VYTVORIT_A_BUILD_I9.bat
Očekávaný bitstream:
project\output\i5_v7\i5_pin_scanner_i5_v7.bit
project\output\i5_v7\i9_pin_scanner_i9_v7_2.bit
Programuj pouze volatilní SRAM přes HW-USBN-2A. Neprogramuj externí SPI Flash.
Terminál a start
Nastav USB COM Ext-Boardu na 115200 Bd, 8 datových bitů, bez parity, 1 stop bit a bez flow control. FPGA začne vypisovat ihned po synchronním uvolnění PLL resetu:
COLORLIGHT I5 FPGA INPUT SCANNER R10
UART 115200 8N1 TX=J17
MONITORED FPGA IOS: 194
EXCLUDED: P3 J17 U16
READY
Před každým bannerem je jedna sekvence CR+LF, aby se banner nepřipojil za poslední detekci. Za READY jsou dvě sekvence CR+LF, tedy jeden prázdný řádek. Pro diagnostiku se celý banner opakuje přibližně každých 2,68 s nečinnosti. Po dokončení prvního banneru skener sejme klidový stav všech vstupů a zůstane aktivní i při opakování.
Projekt skeneru používá pro výpisy na terminál service_uart.v a knihovní uart_tx.v. Plánovač a formátovač zpráv jsou oddělené. data_valid zůstává aktivní a znak se nemění, dokud jej UART nepotvrdí signálem data_ready.
Zelená LED rozlišuje tři stavy:
- pomalá perioda asi 0,67 s: konzole se po resetu vůbec nespustila,
- střední perioda asi 0,34 s: konzole běží, ale vyslání první banneru nebyl dokončeno,
- rychlá perioda asi 0,17 s: všech 120 bajtů prvního banneru bylo vysláno UARTem.
Měření SO-DIMM
- Připoj jeden konec měřicího vodiče ke GND desky.
- Do hrotu zapoj sériový rezistor 1 kΩ. 470 Ω je také možné minimum.
- Počkej na
READY. Při startu nedrž žádný kontakt v nule. - Dotkni se hrotem jednoho signálového kontaktu SO-DIMM a drž jej alespoň 200 ms.
- Terminál žlutě vypíše například
LOW BALL= A6 BANK=0. Detekční řádek je obalen standardními ANSI sekvencemiESC[33maESC[0m. - Po odpojení hrotu obvykle následuje
HIGH BALL= A6 BANK=0.
Změna musí být shodná ve všech 64 vzorcích jednoho 64ms okna. Protože dotyk může začít uprostřed okna, drž hrot přibližně 200 ms. To potlačuje zákmit i rychlé hodinové/datové signály osazených obvodů. Piny, které byly v nule už při READY, nevyvolají počáteční hlášení; hlásí se až jejich pozdější stabilní změna.
Podle specifikace i5 jsou cílové signálové kontakty 41, 42, 44, 46, 48–52, 54, 57–104 a 109–156. Nedotýkej se napájecích, zemních ani Ethernet kontaktů. SO-DIMM 41/U16 a SO-DIMM 84/J17 jsou již známé servisní výjimky a skener je nesleduje; J17 je aktivní výstup UART TX.
H18 / SO-DIMM 86
Pokud je SO-DIMM modul vložen ve vývojové desce Ext-Board, běžící MCU STM32 drží svůj UART TX na H18 v logické jedničce. Sériový rezistor 1 kΩ na hrotu pak pouze omezí proud a nestáhne vodič pod vstupní práh logické nuly FPGA a pin H18 nebude detekován.
Projekt
Kompletní sestavený projekt, včetně vygenerovaného bitstreamu, je distribuován jako jediný ZIP soubor.