Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Top

トップモジュール (Tang Nano 9K)

UART エコー + テキストコンソール (LCD) + PSRAM サブシステム

  • TF カードテキスト表示デモ + LED 表示の統合.
flowchart LR
     PC["PC (COMポート)"] -- uart_rx --> RX["Uart RX"]
     RX -- "echo" --> ARB["TX arbiter<br>(memtest &gt; TF &gt; echo)"]
     MT["PsramMemtest"] -- "結果1行" --> ARB
     DEMO["TfImageDemo"] -- "報告行" --> ARB
     FAT["Fat32Reader"] --> DEMO
     TFC["TfCtrl"] --> FAT
     ARB --> TX["Uart TX"] -- uart_tx --> PC
     ARB -. "傍受" .-> CON["TextConsole"] --> LCD["5inch LCD"]
     MT -- AXI4-Lite --> ARB2["PsramAxiArb2 x2"] --> PS["PsramSubsystem<br>(rPLL + bridge + ctrl + phy)"]
     PS <--> RAM["内蔵 PSRAM ch0"]
     DEMO -- "AXI4-Lite W" --> ARB2
     SC["ImageScanout"] -- "AXI4-Lite R" --> ARB2
     SC -- RGB565 --> LCD
     TFC <--> TF["TF カード (SPI)"]

PSRAM サブシステム (phy/ctrl) は clk_mem (rPLL 54 MHz) ドメインで動作し, AXI 側 (memtest) とはブリッジ内 CdcHandshake で交差する. phy は SDR fallback (IOLOGIC 不使用.apicula ODDR の実挙動により DDR phy は 保留中.docs/psram.md「apicula ODDR 実挙動の調査」参照).

TX アービタは memtest > TF デモ > エコーの固定優先度とし,行の混在を避けるため TF デモは memtest の報告が完了してから起動する (下記 psram_msg_done). TF カードのブリングアップ時は TfSpikeInit (Top 非接続の spike) を 本デモ一式と差し替えて使う (docs/tfcard.md「spike の構成」).

LED 割当は docs/rtl.md,PSRAM サブシステムは docs/psram.md, TF カードサブシステムは docs/tfcard.md を参照.

Parameters


OscFreq u32 オシレータ周波数 [Hz]
NumLeds u32 LED 数

Ports


i_clk input clock 27 MHz オシレータ
i_rst input reset S1 ボタン (active-low)
leds output logic LED (active-low,割当は rtl.md)
uart_tx output logic UART TX
uart_rx input logic UART RX
lcd_clk output logic LCD ピクセルクロック (反転出力)
lcd_de output logic LCD データイネーブル
lcd_hsync output logic LCD 水平同期 (負極性)
lcd_vsync output logic LCD 垂直同期 (負極性)
lcd_r output logic<5> LCD R (RGB565)
lcd_g output logic<6> LCD G (RGB565)
lcd_b output logic<5> LCD B (RGB565)
tf_sclk output logic TF SCK
tf_mosi output logic TF MOSI (CMD)
tf_cs_n output logic TF CS# (DAT3)
tf_miso input logic TF MISO (DAT0)
O_psram_ck output logic<2> PSRAM CK (ch1:ch0)
O_psram_ck_n output logic<2> PSRAM CK# (差動)
O_psram_cs_n output logic<2> PSRAM CS#
O_psram_reset_n output logic<2> PSRAM RESET#
IO_psram_dq inout trilogic<16> PSRAM DQ (ch0=下位8bit)
IO_psram_rwds inout trilogic<2> PSRAM RWDS (ch0=bit0)