Raspberry Pi Rechenmodul 4 vs. Rechenmodul 3
Raspberry Pi hat das Compute Module 4 als Nachfolger des Compute Module 3B+ vorgestellt. Das Compute Module 4 (CM4) ist ein sogenanntes System on Module (SoM), das die Kernkomponenten enthält, aus denen zum Beispiel ein Raspberry Pi 4 besteht, und zusätzlich eMMC-Flash in verschiedenen Größen (von keinem für die Lite-Modul-Version bis 32 GB).
Der CM4 ermöglicht es Entwicklern, eine leistungsstarke Computerlösung in ihre Embedded-Produkte zu integrieren, ohne NDAs mit Broadcom unterzeichnen oder sich zu hohen SoC-Kaufmengen verpflichten zu müssen. Sie profitieren auch von der Erfahrung des Raspberry Pi Hardware- und Software-Designteams und natürlich von der Raspberry Pi-Community und der breiten Palette an Software-Support für die Raspberry Pi-Plattform.
Die wichtigsten Unterschiede bei der neuen Compute-Modul-Generation
neuer Formfaktor
Anstatt mechanisch DDR2-SODIMM-kompatibel zu sein, wie alle früheren Compute Modules (1, 3, 3+), wird das neue CM4 über zwei 100-polige Hirose-Anschlüsse mit hoher Dichte an die Trägerkarte des Compute Modules angeschlossen.
Dies ermöglicht eine kleinere Grundfläche (55 mm x 40 mm x 4,7 mm, mit 4 x M2,5 Montagelöchern) und bietet neue Hochgeschwindigkeitsschnittstellen. (Bei der DDR2-SODIMM-Methode wären dem Raspberry Pi sonst die Pins ausgegangen!)
neue Funktionen und Schnittstellen
Der neue CM4 verfügt über zusätzliche Schnittstellen:
- ein zusätzlicher HDMI-Anschluss; beide HDMI-Anschlüsse sind für die 4K-Ausgabe geeignet und unterstützen HDMI 2.0
- PCI-Express-Schnittstelle (Gen 2 x1 = einspurig)
- GBit-Ethernet-Schnittstelle (Broadcom BCM54210PE PHY ist auf dem Compute Module enthalten) - alles, was Sie in Ihrem Design hinzufügen müssen, ist ein MagJack!
- On-Board-WLAN-Unterstützung (in WiFi-Versionen), mit PCB-Leiterbahnantenne und optionaler externer Antenne!
Deutlich vereinfachtes Stromversorgungsdesign
Sie werden schockiert sein, wie einfach es ist, ein Design für das neue Raspberry Pi-Rechenmodul zu entwerfen: eine einzige +5V-Versorgung ist alles, was benötigt wird, und es kann sogar bis zu 600 mA bei 3,3 V und 1,8 V an Peripheriegeräte liefern.
Sie müssen nicht mehr verschiedene Stromschienen hinzufügen und diese sorgfältig aufeinander abstimmen - dies wird Ihr eigenes Trägerplatinen-Design erheblich vereinfachen.
Pinout-Unterschiede zwischen Compute Module 4 und Compute Module 3
Es gibt verschiedene Gruppen von Pins an den Compute-Modulen, die wir uns nacheinander ansehen und deren Unterschiede zwischen den Versionen.
GPIO-Pin-Unterschiede zwischen den Compute-Modulen
In der folgenden Tabelle habe ich die verfügbaren GPIO-Pins des Compute Module 4 (CM4), des Compute Module 3 (cm3) und des Raspberry Pi 4 mit ihren jeweiligen Pin-Nummern aufgelistet.
Die GPIO-Pins sind in GPIO-Bänke unterteilt. Auf dem Raspberry Pi SoC befinden sich die Pins GPIO0 - GPIO27 in GPIO-Bank 1, während die Pins GPIO28 bis GPIO45 in GPIO-Bank 2 liegen. Die GPIO-Bänke auf CM3 können mit unabhängigen Spannungen betrieben werden (GPIO0-27_VREF und GPIO28-45_VREF).
Bei CM4 und Pi 4 ist nur die erste GPIO-Bank (GPIO0 - GPIO27) zugänglich. Darüber hinaus legt der CM4 GPIO44 und GPIO45 frei, die normalerweise für die Ansteuerung der offiziellen Raspberry Pi Kamera(s) und des 7" Displays verwendet werden. Dem CM4 fehlen also 16 GPIO-Pins im Vergleich zum CM3!
GPIO BCM-ID | CM4 Stift# | CM3 Stift# | Pi 4 Pin# | Hinweis |
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 | Nocke / Anordnung SDA0 / SDA1 GPCLK1 SPI2_CE1_N | |
GPIO45 | 80 (SCL0) | 84 | Nocke / Anordnung SCL0 / SCL1 SPI2_CE2_N |
Es gibt zwei spezielle I2C-Busse - einen auf GPIO0 und GPIO1, der für HAT-EEPROMs (ID_SD / ID_SC) verwendet wird, und einen auf GPIO44 und GPIO45, der normalerweise für den Anschluss von Kamera und Display verwendet wird.
Beachten Sie auch, dass Sie beim CM4 die Möglichkeit haben, die GPIO-Ausgangsspannung mit GPIO_VREF einzustellen - diese kann mit +1,8 V oder +3,3 V für 1,8 V bzw. 3,3 V Signalisierung verbunden werden. Aus dem Datenblatt geht jedoch nicht hervor, wie sich dies auf GPIO44 und GPIO45 auswirkt, da diese in der GPIO-Bank 1 liegen!
Auf dem CM4 haben GPIO2 und GPIO3 (verwendet für I2C) 1,8K Pull-Up-Widerstände.
Das Compute Module 3+ ermöglicht den Zugriff auf den SPI2-Bus, der nirgendwo sonst verfügbar ist - auf dem CM4 haben Sie nur Zugriff auf SPI0 und SPI1.
CM4 wird nicht ermöglichen den gleichzeitigen Zugriff auf UART0 (TXD0, RXD0) und den miniUART, UART1 (TXD1, RXD1). Hier sind beide alternativ auf GPIO14 und GPIO15 verfügbar.
Der CM4 verfügt jedoch wie der Raspberry Pi 4 über zusätzliche UARTs (insgesamt bis zu 6 UARTs), SPI-Ports (insgesamt bis zu 6 SPI-Ports, von denen fünf beim Pi 4 und CM4 offen liegen) und I2C-Ports (bis zu 6 x I2C). Diese sind als zusätzliche Pin-Mux-Optionen auf der GPIO-Bank 0 verfügbar.