Stai visualizzando 6 post - dal 1 a 6 (di 6 totali)
  • Autore
    Post
  • #18204
    Just4Fun
    Partecipante

    Dopo avere realizzato alcune schede basate sull’accoppiata retro-CPU + MCU come lo Z80-MBC2, il V20-MBC e il 68k-MBC, ho voluto provare a cambiare completamente l’approccio utilizzando l’accoppiata FPGA + retro-CPU.

    Ovviamente questa scelta si porta dietro il completo abbandono di componentistica THT e una maggiore complessità di realizzazione e di utilizzo (es. necessario conoscere linguaggi HDL come il VHDL o Verilog). Di contro consente un livello di flessibilità molto elevato e una totale riconfigurabilità dello HW.

    La scheda Studio 68 permette di poter giocherellare con una CPU 68000 (68SEC000) onboard con un approccio FPGA-centrico in modo da poter sviluppare ogni logica di controllo o I/O all’interno della FPGA. E’ presente un connettore (GPIO) per poter collegare degli “adattatori” esterni di I/O (es. interfaccia VGA e PS/2).

    Inoltre ho aggiunto anche una MCU (uno STM32F030R8T6) come “utility” per alcune operazioni (ad esempio per la fase di boot) o per poter sperimentare approcci “misti” (parte della logica sviluppata nella FPGA e parte nella MCU).
    E’ anche presente una SDRAM da 16MW (words da 16 bit) gestita dalla FPGA.

    La scheda Studio 68 permette anche di utilizzare un bus per schede di espansione esterne con logica a 5V, avendo onboard i necessari traslatori di livello 3.3V/5V.

    Ponendo il 68000 in 3-state è anche possibile utilizzare delle “Application Board” esterne con altre CPU e configurare la scheda Studio 68 come “slave”. A tal proposito ho già realizzato un prima bozza di “Application Board” per una CPU sovietica “clone” del famoso PDP11.

    Di seguito lo schema a blocchi:

    < Continua nel post successivo…>

    • Questo topic è stato modificato 3 mesi, 1 settimana fa da Just4Fun.
    • Questo topic è stato modificato 3 mesi, 1 settimana fa da Just4Fun.
    • Questo topic è stato modificato 3 mesi, 1 settimana fa da Just4Fun.
    • Questo topic è stato modificato 3 mesi, 1 settimana fa da Just4Fun.
    • Questo topic è stato modificato 3 mesi, 1 settimana fa da Just4Fun.
    #18208
    Just4Fun
    Partecipante

    La scheda richiede un PCB 4-layer e componenti SMD fino alla dimensione 0402 su entrambi i lati del PCB.

    Lo “stack” del PCB è il seguente:

    Layer 1: segnali (preferibilmente segnali “high speed”);
    Layer 2: massa;
    Layer 3: alimentazioni + eventuali segnali (preferibilmente segnali “low speed” e solo se assolutamente necessario);
    Layer 4: segnali (preferibilmente segnali “low speed”).

    Attualmente sono nella fase di primo tentativo di piazzamento dei componenti senza routing, per cercare di ottimizzare al massimo il “ratnest”:

    Di seguito il rendering della scheda allo stato attuale:

    La strada da percorrere è ancora lunga e perigliosa…

    #18870
    Picmicro675
    Moderatore

    Auguri, Ingegnere!!!

    #23067
    Just4Fun
    Partecipante

    Gli auguri di @Picmicro675 hanno funzionato e il routing ora è completo e questo è il risultato finale:

    Ora è il tempo di alcuni check/ottimizzazioni finali prima di mandare il tutto in fabbricazione.

    Uno dei check è quello che chiamo il “controllo gruviera” 🙂 :

    Nell’immagine precedente si vede una porzione del solo layer di massa in cui ho evidenziato in rosso alcuni gruppi di fori che a causa dei necessari margini di “clearance” formano degli “slot” nel piano di massa. Questa situazione è da evitare perché può ostacolare le correnti di ritorno sul layer di massa stesso, per cui occorre distanziare i fori ove possibile per permettere il “flooding” del piano di massa nell’area circostante (come per gli altri fori in figura).

    #23368
    Just4Fun
    Partecipante

    Finalmente mi sono arrivati i PCB:

    Ora inizia la (lunga) fase di assemblaggio e testing…

    #23684
    Just4Fun
    Partecipante

    Ad oggi sono arrivato a montare circa l’80% del PCB:

    Questo include l’alimentatore, la porta USB e relativa circuiteria, la FPGA e relativa circuiteria di programmazione, la MCU STM32 completa di SD (lato inferiore) e relativa circuiteria di programmazione da USB e la DRAM (di tipo SDR). Questa ultima è una delle parti più rognose da testare perché richiede di disporre di un opportuno controller nella FPGA, oltre ad una interfaccia che permetta allo STM32 di poter accedere in lettura ed in scrittura nella SDRAM in maniera asincrona attraverso il bus locale LCB2 (vedi schema a blocchi nel primo post), ed infine un SW da fare girare nello STM32 come RAM tester.
    Per velocizzare ho utilizzato come controller un “core” open source in VHDL che ho trovato “in giro”, mentre necessariamente ho realizzato l’interfaccia di accesso asincrono alla DRAM da parte dello STM32 (in VHDL) ed il relativo SW di testing in quanto specifici di questa scheda.
    La sezione relativa allo STM32 dello scheda Studio 68 è compatibile con la scheda di sviluppo Discovery di ST ed inoltre è presente una opportuna circuiteria che permette di usare il bootloader seriale interno dello STM32 “comandato” da Arduino IDE (dopo avere caricato il “core” ufficiale di ST):

    In questo modo è possibile usare Arduino IDE per realizzare e caricare velocemente dei SW di test (ovviamente ciò non impedisce di usare un qualsiasi sistema di sviluppo per STM32 attraverso la porta di programmazione/debugging SWD che è comunque presente).

    Attualmente sto testando la DRAM e se il risultato sarà positivo potrò passare allo step successivo che sarà l’assemblaggio e test della CPU 68SEC000…

    • Questa risposta è stata modificata 6 giorni, 19 ore fa da Just4Fun.
    • Questa risposta è stata modificata 6 giorni, 19 ore fa da Just4Fun.
Stai visualizzando 6 post - dal 1 a 6 (di 6 totali)
  • Devi essere connesso per rispondere a questo topic.