I prodotti elettronici reali stanno diventando gradualmente più intelligenti, sia per l'implementazione di un'applicazione embedded sia per le connessioni con una piattaforma cloud o un'applicazione. I team di sviluppo embedded devono lavorare insieme per creare queste nuove generazioni di prodotti. Un'area in cui l'ingegnere di layout PCB, lo sviluppatore embedded e persino l'ingegnere MCAD possono subire ritardi nel completamento di un progetto è nella selezione degli I/O. Questo accade ogni volta che si hanno connettori, periferiche e un processore host.
Quindi, per mantenere le cose semplici per entrambe le parti, voglio condividere alcune delle mie esperienze lavorative con gli sviluppatori embedded per ottimizzare la selezione degli I/O e il processo complessivo per completare il layout del PCB. Con un po' di collaborazione iniziale, è possibile rendere il routing del PCB e lo sviluppo embedded più semplici nella fase finale.
Ritengo che ogni membro del team di sviluppo dovrebbe capire ciò di cui gli altri membri del team hanno bisogno per avere successo. Si tratta anche di un uso efficiente delle risorse, evitando impasse ingegneristiche che richiedono giorni per essere risolte e arrivando rapidamente sul mercato.
|
|
|
|
|
|
|
|
|
|
|
|
Ho messo un asterisco (*) sugli elementi della lista dei pin perché il processo esatto per assegnare gli I/O dipende dal componente specifico utilizzato per eseguire l'applicazione embedded. Si tratta di un semplice MCU, dove gli I/O disponibili sono fissati in posizioni specifiche, o è un FPGA che può avere un pinout personalizzato in certe banche? L'altro aspetto riguarda i connettori: il pinout è standardizzato, è impostato da un'altra scheda nell'assemblaggio, o può essere personalizzato?
Qui possiamo iniziare a vedere la sfida coinvolta in un progettista di PCB e uno sviluppatore embedded che lavorano insieme sulla selezione degli I/O. Come possono le due parti venire insieme e definire i pinout, la selezione degli I/O e, in ultima analisi, il layout del PCB?
A mio parere, questo funziona meglio quando il pinout sul processore principale è flessibile, cioè, l'applicazione sarà istanziata in un FPGA. In questo caso, gli I/O possono essere impostati dallo sviluppatore nella logica del dispositivo, e il risultato è che il progettista del PCB dovrà lavorare con le assegnazioni dei pin che gli vengono date.
Il problema è questo: se le assegnazioni dei pin sono date su base individuale, potresti non ottenere un routing ottimale, risultando in un groviglio di connessioni che si incrociano l'una con l'altra per raggiungere i componenti. Invece, se lo sviluppatore embedded fornisce semplicemente assegnazioni di banchi al progettista PCB, allora il progettista PCB può scegliere i pin all'interno di un banco per realizzare connessioni ottimali.
Assegnando banchi su un FPGA invece di un pinout specifico, il progettista può utilizzare uno strumento come lo scambio di pin per spostare le assegnazioni I/O all'interno di un banco di pin. Se lo scambio di pin è desiderabile, allora potrebbe essere richiesto un simbolo schematico personalizzato per separare correttamente i pin nei rispettivi banchi. Utilizzare un simbolo personalizzato consente un raggruppamento molto più rapido dei pin per le operazioni di scambio di pin durante il routing del PCB.
A mio parere, questo funziona meglio quando il pinout sul processore principale è fisso, ovvero un MCU e i suoi periferici. In un MCU, le posizioni I/O sono sostanzialmente fisse. Si può avere una certa flessibilità in termini di come ogni I/O viene utilizzato, ad esempio quando si usa un gruppo di GPIO. Tuttavia, l'assegnazione di pin o funzioni per interfacce standard può essere fissa (ad esempio, pin SPI, pin ADC, pin PWM, I2C, ecc.).
In questo caso, penso che sia meglio se il progettista PCB seleziona i pin che userà per abbinarli a diversi componenti. Il progettista PCB deve scegliere all'interno di un pinout fisso, quindi dovrà capire come posizionare i componenti in modo tale che il layout del PCB sia risolvibile. Una volta posizionati e tracciati, è compito del progettista PCB comunicare allo sviluppatore embedded quali pin vengono utilizzati per determinate funzioni.
Quando il pinout del tuo connettore è standardizzato, allora è un po' una variabile impazzita. Dico questo perché "standardizzato" può significare due cose diverse:
Se nessuno di questi casi si applica, allora il tuo pinout è personalizzabile. Nei progetti in cui ho avuto a che fare con altre schede in un assemblaggio più grande, spesso abbiamo avuto la libertà di impostare un pinout, solitamente perché stavamo costruendo entrambe le schede. In ogni caso, le due parti devono lavorare insieme per capire quale sia il pinout "migliore" in modo oggettivo per il connettore e come questo si allinea con il processore.
I team che hanno bisogno di collaborare su prodotti complessi possono accedere a un set completo di funzionalità di progettazione collaborativa utilizzando Altium Designer®. Tutti gli stakeholder coinvolti nella progettazione del prodotto possono accedere a un set completo di strumenti per la progettazione di PCB che possono supportare compiti di sviluppo embedded, così come funzionalità di progettazione di cavi e cablaggi. Quando hai terminato il tuo progetto e vuoi rilasciare i file al tuo produttore, la piattaforma Altium 365™ rende facile collaborare e condividere i tuoi progetti.
Abbiamo solo sfiorato la superficie di ciò che è possibile con Altium Designer su Altium 365. Inizia oggi la tua prova gratuita di Altium Designer + Altium 365.