Raspberry Pi rekenmodule 4 vs rekenmodule 3
Raspberry Pi heeft Compute Module 4 gelanceerd, als opvolger van Compute Module 3B+. De Compute Module 4 (CM4) is een zogenaamde System on Module (SoM), die kernonderdelen bevat waaruit bijvoorbeeld een Raspberry Pi 4 is opgebouwd, en daarnaast eMMC Flash in verschillende groottes (variërend van geen voor de Lite module versie tot 32 GB).
Met de CM4 kunnen ontwerpers een krachtige rekenoplossing integreren in hun embedded producten, zonder dat ze NDA's met Broadcom hoeven te ondertekenen of zich hoeven vast te leggen op grote SoC-afnamevolumes. Ze profiteren ook van de ontwerpervaring van het Raspberry Pi hardware en software ontwerpteam, en natuurlijk van de Raspberry Pi gemeenschap en het brede scala aan software ondersteuning voor het Raspberry Pi platform.
Belangrijkste verschillen in de nieuwe generatie Compute-modules
nieuwe vormfactor
In plaats van mechanisch compatibel te zijn met DDR2-SODIMM, zoals alle voorgaande Compute Modules (1, 3, 3+), wordt de nieuwe CM4 aangesloten op uw computermodule draagkaart met behulp van twee 100-pins Hirose-connectoren met hoge dichtheid.
Hierdoor is de footprint kleiner (55 mm x 40 mm x 4,7 mm, met 4 x M2,5 montagegaten), en zijn nieuwe hogesnelheidsinterfaces mogelijk. (Raspberry Pi zou anders pinnen tekort zijn gekomen met de DDR2-SODIMM-benadering)!
nieuwe mogelijkheden en interfaces
De nieuwe CM4 heeft extra interfaces:
- een extra HDMI-poort; beide HDMI-poorten zijn geschikt voor 4K-uitvoer, en ondersteunen HDMI 2.0
- PCI Express-interface (Gen 2 x1 = enkelbaans)
- GBit Ethernet-interface (Broadcom BCM54210PE PHY is inbegrepen aan boord van de Compute Module) - het enige wat u in uw ontwerp hoeft toe te voegen is een MagJack!
- on-board WLAN-ondersteuning (in WiFi-versies), met PCB-spoorantenne en optionele externe antenne!
aanzienlijk vereenvoudigd ontwerp van de voeding
U zult versteld staan hoe eenvoudig het is om een ontwerp te maken voor de nieuwe Raspberry Pi rekenmodule: één enkele +5V voeding is alles wat nodig is, en hij zal zelfs tot 600 mA bij 3,3 V en 1,8 V aan randapparatuur voor u leveren.
U hoeft niet langer verschillende stroomrails toe te voegen en ze zorgvuldig te rangschikken - dit zal uw eigen draagkaartontwerp sterk vereenvoudigen.
Pinout verschillen tussen Compute Module 4 en Compute Module 3
Er zijn verschillende groepen pinnen op de Compute modules, we zullen elk van hen en hun verschillen tussen de versies achtereenvolgens bekijken.
GPIO pin verschillen tussen de rekenmodules
In de tabel hieronder staan de beschikbare GPIO pinnen op computermodule 4 (CM4), op computermodule 3 (cm3), en op de Raspberry Pi 4, met hun respectievelijke pinnummers.
GPIO pinnen zijn verdeeld in GPIO banken, op de Raspberry Pi SoC, pinnen GPIO0 - GPIO27 bevinden zich in GPIO Bank 1, terwijl pinnen GPIO28 tot GPIO45 zich op GPIO Bank 2 bevinden. De GPIO banken, op CM3, kunnen worden aangestuurd met onafhankelijke spanningen (GPIO0-27_VREF en GPIO28-45_VREF).
Op CM4 en Pi 4 is alleen de eerste GPIO-bank (GPIO0 - GPIO27) zichtbaar. Bovendien stelt de CM4 GPIO44 en GPIO45 bloot, die gewoonlijk worden gebruikt voor het aansturen van de officiële Raspberry Pi camera('s) en het 7" display. De CM4 mist dus 16 GPIO pinnen in vergelijking met de CM3!
GPIO BCM ID | CM4 Pin# | CM3 Pen# | Pi 4 Pen# | Noot |
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 | nok / disp SDA0 / SDA1 GPCLK1 SPI2_CE1_N | |
GPIO45 | 80 (SCL0) | 84 | nok / disp SCL0 / SCL1 SPI2_CE2_N |
Er zijn twee speciale I2C-bussen - één op GPIO0 en GPIO1, die wordt gebruikt voor HAT EEPROMs (ID_SD / ID_SC), en één op GPIO44 en GPIO45, die gewoonlijk wordt gebruikt om de camera en het display aan te sluiten.
Merk ook op dat je op CM4 de mogelijkheid hebt om de GPIO uitgangsspanning in te stellen, met GPIO_VREF - deze kan worden aangesloten op +1.8V of +3.3V voor respectievelijk 1.8V of 3.3V signalering. Uit de datasheet is echter niet duidelijk op welke wijze dit van invloed is op GPIO44 en GPIO45, aangezien deze zich in de GPIO Bank 1 bevinden!
Op CM4, GPIO2 en GPIO3 (gebruikt voor I2C) hebben 1.8K pull up weerstanden.
Compute Module 3+ geeft toegang tot de SPI2 bus, die nergens anders zichtbaar is - op CM4, heeft u alleen toegang tot SPI0 en SPI1.
CM4 zal niet bieden gelijktijdige toegang tot UART0 (TXD0, RXD0) en de miniUART, UART1 (TXD1, RXD1). Hier worden beide blootgelegd op GPIO14 en GPIO15 als alternatieven.
CM4 bevat echter, net als de Raspberry Pi 4, extra UART's (tot 6 UART's in totaal), SPI-poorten (tot 6 SPI-poorten in totaal, waarvan er vijf zichtbaar zijn op Pi 4 en CM4) en I2C-poorten (tot 6 x I2C). Deze zijn beschikbaar als extra pin mux opties op de GPIO Bank 0.