Raspberry Pi Compute Module 4 vs Compute Module 3
Raspberry Pi ha lanciato il Compute Module 4, come successore del Compute Module 3B+. Il Compute Module 4 (CM4) è un cosiddetto System on Module (SoM), che contiene le parti fondamentali che compongono un Raspberry Pi 4, per esempio, e in aggiunta a ciò eMMC Flash in diverse dimensioni (che vanno da nessuna per la versione Lite del modulo a 32 GB).
Il CM4 permette ai progettisti di integrare una potente soluzione di calcolo nei loro prodotti embedded, senza dover firmare NDA con Broadcom, impegnarsi in alti volumi di acquisto di SoC. Essi beneficiano anche dell'esperienza di progettazione del team di progettazione hardware e software Raspberry Pi, e naturalmente della comunità Raspberry Pi e della vasta gamma di supporto software per la piattaforma Raspberry Pi.
Le principali differenze nella nuova generazione di moduli Compute
nuovo fattore di forma
Invece di essere meccanicamente compatibile con DDR2-SODIMM, come tutti i precedenti moduli di calcolo (1, 3, 3+), il nuovo CM4 si collega alla scheda carrier del modulo di calcolo utilizzando due connettori Hirose ad alta densità a 100 pin.
Questo permette di avere un ingombro minore (55 mm x 40 mm x 4,7 mm, con 4 fori di montaggio M2,5), e di fornire nuove interfacce ad alta velocità. (Raspberry Pi avrebbe altrimenti esaurito i pin con l'approccio DDR2-SODIMM!)
nuove capacità e interfacce
Il nuovo CM4 ha delle interfacce aggiuntive:
- una porta HDMI aggiuntiva; entrambe le porte HDMI sono capaci di uscita 4K e supportano HDMI 2.0
- Interfaccia PCI Express (Gen 2 x1 = corsia singola)
- Interfaccia Ethernet GBit (Broadcom BCM54210PE PHY è incluso a bordo del modulo di calcolo) - tutto quello che dovete aggiungere nel vostro progetto è un MagJack!
- supporto WLAN a bordo (nelle versioni WiFi), con antenna tracciata sul PCB e antenna esterna opzionale!
design dell'alimentazione significativamente semplificato
Sarete scioccati da quanto sia semplice progettare per il nuovo modulo di calcolo Raspberry Pi: una singola alimentazione +5V è tutto ciò che serve, e fornirà anche fino a 600 mA a 3,3V e 1,8V alle periferiche per voi.
Non è più necessario aggiungere diversi binari di alimentazione e metterli in sequenza con cura - questo semplificherà enormemente la progettazione della vostra scheda portante.
Differenze di pinout tra il modulo di calcolo 4 e il modulo di calcolo 3
Ci sono diversi gruppi di pin sui moduli Compute, guarderemo ognuno di loro e le loro differenze tra le versioni a turno.
Differenze di pin GPIO tra i moduli di calcolo
Nella tabella qui sotto, ho elencato i pin GPIO disponibili sul modulo di calcolo 4 (CM4), sul modulo di calcolo 3 (cm3) e sul Raspberry Pi 4, con i loro rispettivi numeri di pin.
I pin GPIO sono divisi per banchi GPIO, sul Raspberry Pi SoC, i pin GPIO0 - GPIO27 sono in GPIO Bank 1, mentre i pin da GPIO28 a GPIO45 sono su GPIO Bank 2. I banchi GPIO, su CM3, possono essere pilotati con tensioni indipendenti (GPIO0-27_VREF e GPIO28-45_VREF).
Su CM4 e Pi 4 solo il primo banco GPIO (GPIO0 - GPIO27) sono esposti. Inoltre, la CM4 espone GPIO44 e GPIO45, che di solito sono usati per pilotare la fotocamera ufficiale del Raspberry Pi e il display da 7". Alla CM4 mancano quindi 16 pin GPIO rispetto alla CM3!
GPIO ID BCM | CM4 Pin# | CM3 Pin# | Pi 4 Pin# | Nota |
GPIO0 | 36 (ID_SD) | 3 | 27 | ID_SD = SDA0 |
GPIO1 | 35 (ID_SC) | 5 | 28 | ID_SC = SCL0 |
GPIO2 | 58 | 9 | 3 | SDA1 |
GPIO3 | 56 | 11 | 5 | SCL1 |
GPIO4 | 54 | 15 | 7 | GPCLK0 |
GPIO5 | 34 | 17 | 29 | GPCLK1 |
GPIO6 | 30 | 21 | 31 | GPCLK2 |
GPIO7 | 37 | 23 | 26 | SPI0_CE1_N |
GPIO8 | 39 | 27 | 24 | SPI0_CE0_N |
GPIO9 | 40 | 29 | 21 | SPI0_MISO |
GPIO10 | 44 | 33 | 19 | SPI0_MOSI |
GPIO11 | 38 | 35 | 23 | SPI0_SCLK |
GPIO12 | 31 | 45 | 32 | PWM0 |
GPIO13 | 28 | 47 | 33 | PWM1 |
GPIO14 | 55 | 51 | 8 | TXD0 / TXD1 |
GPIO15 | 51 | 53 | 10 | RXD0 / RXD1 |
GPIO16 | 29 | 57 | 36 | |
GPIO17 | 50 | 59 | 11 | |
GPIO18 | 49 | 63 | 12 | PCM_CLK |
GPIO19 | 26 | 65 | 35 | PCM_FS |
GPIO20 | 27 | 69 | 38 | PCM_DIN |
GPIO21 | 25 | 71 | 40 | PCM_DOUT |
GPIO22 | 46 | 75 | 15 | |
GPIO23 | 47 | 77 | 16 | |
GPIO24 | 45 | 81 | 18 | |
GPIO25 | 41 | 83 | 22 | |
GPIO26 | 24 | 87 | 37 | |
GPIO27 | 48 | 89 | 13 | |
GPIO28 | 28 | SDA0 | ||
GPIO29 | 30 | SCL0 | ||
GPIO30 | 34 | |||
GPIO31 | 36 | |||
GPIO32 | 46 | GPCLK0 TXD0 / TXD1 | ||
GPIO33 | 48 | RXD0 / RXD1 | ||
GPIO34 | 52 | GPCLK0 | ||
GPIO35 | 54 | SPI0_CE1_N | ||
GPIO36 | 58 | SPI0_CE0_N TXD0 | ||
GPIO37 | 60 | SPI0_MISO RXD0 | ||
GPIO38 | 64 | SPI0_MOSI | ||
GPIO39 | 66 | SPI0_SCLK | ||
GPIO40 | 70 | PWM0 / TXD1 SPI2_MISO | ||
GPIO41 | 72 | PWM1 / RXD1 SPI2_MOSI | ||
GPIO42 | 76 | GPCLK1 SPI2_SCLK | ||
GPIO43 | 78 | GPCLK2 SPI2_CE0_N | ||
GPIO44 | 82 (SDA0) | 82 | cam / disp SDA0 / SDA1 GPCLK1 SPI2_CE1_N | |
GPIO45 | 80 (SCL0) | 84 | cam / disp SCL0 / SCL1 SPI2_CE2_N |
Ci sono due bus I2C speciali - uno su GPIO0 e GPIO1, che è usato per le EEPROM HAT (ID_SD / ID_SC), e uno su GPIO44 e GPIO45, che è tipicamente usato per collegare la fotocamera e il display.
Si noti inoltre che sulla CM4 si ha la possibilità di impostare la tensione di uscita GPIO, utilizzando GPIO_VREF - questo può essere collegato a +1.8V o +3.3V per la segnalazione di 1.8V o 3.3V rispettivamente. Dal datasheet, non è chiaro, tuttavia, come questo influenzerà GPIO44 e GPIO45, dato che sono nel GPIO Bank 1!
Su CM4, GPIO2 e GPIO3 (usati per I2C) hanno resistenze di pull up da 1.8K.
Il Compute Module 3+ permette l'accesso al bus SPI2, che non è esposto da nessun'altra parte - su CM4, avrete accesso solo a SPI0 e SPI1.
CM4 sarà non permettono l'accesso simultaneo alla UART0 (TXD0, RXD0) e alla miniUART, UART1 (TXD1, RXD1). Qui entrambi sono esposti su GPIO14 e GPIO15 come alternative.
CM4, tuttavia, come il Raspberry Pi 4, include UART aggiuntive (fino a 6 UART in totale), porte SPI (fino a 6 porte SPI in totale, cinque delle quali sono esposte su Pi 4 e CM4) e porte I2C (fino a 6 x I2C). Queste sono disponibili come opzioni pin mux aggiuntive sul GPIO Bank 0.