Appunti sulla CM3 Panel

La CM3-Panel è un Panel PC basato su Raspberry Pi Compute Module 3. In occasione dei lavori di ristrutturazione del II° piano della Acme Systems vorremmo usarla per sostituire tutti i punti luce.

Modifiche da fare sul prototipo

WiFi

  • Togliere l'elettronica di accensione della WiFi

Serigrafie

  • Cambiare "RASPBERRY CM3L" in "Raspberry Pi Compute Module 3"
  • Riportare la versione della scheda in piccolo sotto la scritta "PCB design by GuiOtt"

Barilotti di ancoraggio Wurth

Connessioni USB

  • Pad USB (GND D+ D- 5VDC) sotto il modulo WiFi.
  • Connettore USB verso il basso.

Connettore di alimentazione

Sostituirei l'attuale morsetto a innesto con un morsetto a vite a montaggio SMT

Yarm

Portare i seguenti segnali su EXP3 invece che su EXP1/2

  • Porta seriale
  • Reset

Allocazione GPIO

Sto riallocando i GPIO della CM3L sui connettori EXP1 e 2

PCB del prototipo               PCB di produzione (In via di definizione)

GPIO 0  - LCD PCLK              LCD 
GPIO 1  - LCD DE                LCD
GPIO 2  - LCD VSYNC             LCD 
GPIO 3  - LCD HSYNC             LCD
GPIO 4  - LCD B2                LCD
GPIO 5  - LCD B3                LCD 
GPIO 6  - LCD B4                LCD
GPIO 7  - LCD B5                LCD
GPIO 8  - LCD B6                LCD
GPIO 9  - LCD B7                LCD
GPIO 10 - LCD G2                LCD
GPIO 11 - LCD G3                LCD
GPIO 12 - LCD G4                LCD
GPIO 13 - LCD G5                LCD
GPIO 14 - LCD G6                LCD
GPIO 15 - LCD G7                LCD
GPIO 16 - LCD R2                LCD
GPIO 17 - LCD R3                LCD
GPIO 18 - LCD R4                LCD
GPIO 19 - LCD R5                LCD
GPIO 20 - LCD R6                LCD

GPIO 22 - EXP                   EXP - IO22 e Backlight       (portarlo con R0 a backlight)
GPIO 23 - EXP                   EXP - IO23 e Camera led      (portarlo con R0 a camera led)     
GPIO 24 - EXP                   EXP - IO24 e Camera shutdown (portarlo con R0 a shutdown) 
GPIO 25 - EXP                   EXP - IO25
GPIO 26 - EXP                   EXP - IO26
GPIO 27 - EXP                   EXP - IO27

GPIO 28 - CAMERA SDA0           EXP - IO28 - (PCM_CLK)  (SDA0)
GPIO 29 - CAMERA SCL0           EXP - IO29 - (PCM_FS)   (SCL0)
GPIO 30 - CAMERA SHUTDOWN       EXP - IO30 - (PCM_DIN)
GPIO 31 - CAMERA LED            EXP - IO31 - (PCM_OUT)

GPIO 32 - Debug TXD             EXP - IO32 - (TXD0) (TXD1)
GPIO 33 - Debug RXD             EXP - IO33 - (RXD0) (RXD1)

GPIO 34 - WiFi ON               EXP - IO34

GPIO 35 - SPI0 - CE1            EXP - IO35 - (SPI0_CE1)
GPIO 36 - Yarm TXD              EXP - IO36 - (SPI0_CE0)     (TXD0)
GPIO 37 - Yarm RXD              EXP - IO37 - (SPI0_MISO)    (RXD0)
GPIO 38 - EXP                   EXP - IO38 - (SPI0_MOSI)
GPIO 39 - IR                    EXP - IO39 - (SPI0_SCLK)

GPIO 40 - Backlight             EXP - IO40 - (PWM0) (TXD1)
GPIO 41 - EXP                   EXP - IO41 - (PWM1) (RXD1)

GPIO 42 - Touchscreen INT       EXP - IO42 e Interrupt dal Touch
GPIO 43 - Touchscreen RST       EXP - IO43 e Reset del Touch
GPIO 44 - Touchscreen I2C SDA   EXP - IO44 e Touch + Camera SDA1 (SDA0)  
GPIO 45 - Touchscreen I2C SCL   EXP - IO45 e Touch + Camera SCL1 (SCL0) 

Assorbimenti @ 12 volt

Display WiFi Yarm mA Watt
ON ON ON 324 3.9
OFF ON ON 134 1.6

Appunti vari

Lancio automatico di chromium allo startup

Aggiungere nel file .config/lxsession/LXDE-P/autostart la seguente riga:

chromium-browser --kiosk http://www.tanzolab.it

Screen saver

Per attivare lo screensaver da SSH:

DISPLAY=":0" xset s activate

Per uscire dallo screensaver:

DISPLAY=":0" xset dpms force on

Set dello screensaver dopo 4 secondi

DISPLAY=":0" xset s 4

Legge lo stato

DISPLAY=":0" xset q

Misura della temperature della CPU

vcgencmd measure_temp

Info varie

vcgencmd get_config int

Gestione linee per la Camera

Configurazione dei pin usati su Raspperry Pi 3 e su CM3-Home

GPIO 0  - I2C0 - SDA Mipi Camera
GPIO 1  - I2C0 - SCL Mipi Camera
GPIO 2  - IO1  - Mipi Camera
GPIO 3  - IO0  - Mipi Camera

Codec audio

DAC consigliato dall'autote di Volumio:

  • Texas Instruments (ex Burr Brown) PCM5122.

Questo è lo stesso DAC usato dalla scheda Hifiberry DAC+ Pro. A differenza della Hifiberry DAC + Light questo chip, oltre ad essere di qualità superiore permette la regolazione hardware del volume che migliora ancora la qualità del suono.

Nella versione standard della Hifiberry il clock per il DAC è ottenuto tramite segnali provenienti dalla Raspberry, in questo modo si risparmia il costo di alcuni componenti. Nella versione Pro ci sono invece due oscillatori a basso jitter per le diverse frequenze di campionamento per venire incontro alle esigenze di estrema qualità desiderata da molti audiofili.

Connessioni con il modulo CM3L

| CM3       | CM3 I2S   | PCM5122 PIN   | PCM5122 DESC  |
|-----------|-----------|---------------|---------------|
| GPIO28    | PCM_CLK   |   21          |   BCLK        |
| GPIO29    | PCM_FS    |   23          |   LRCLK       |
| GPIO30    | PCM_DIN   |               |               |
| GPIO31    | PCM_DOUT  |   22          |   DIN         |
| EXT CLK   |           |   20          |   SCK         |
| GPIO45    |           |   12          |   SCL         |
| GPIO44    |           |   11          |   SDA         |

Modulo WiFi/BT AP6212

Questo modulo è usato su molte schede Linux di produzione cinese. Abbiamo un campione in Acme montato su una basetta millefori pronto per fare esperimenti con la CM3L.

Interconnessioni:

| CM3       | FUNCTION      | AP6212        |
|-----------|---------------|---------------|
| GPIO22    | SDO_CLK       |               |
| GPIO23    | SDO_CMD       |               |
| GPIO24    | SDO_DAT0      |               |
| GPIO25    | SDO_DAT1      |               |
| GPIO26    | SDO_DAT2      |               |
| GPIO27    | SDO_DAT3      |               |
|   ?       | BT_RST-N      |               |
| GPIO42    | RTS           |               |
| GPIO40    | TXD           |               |
| GPIO41    | RXD           |               |
| GPIO43    | CTS           |               |
|   ?       | WL_REG_ON     |               |

Touchscreen resistivo

Per connettere alla CM3L uno dei touch resistivi forniti da Joy e in stock in Acme bisogna usare un ADC converter ADS7846. Di questo ADC ne abbiamo un campione montato su una breakout board.

Connessioni tra chip ADS7846 e touch resistivo

| ADS7846 | LCD                 |
|---------|---------------------|
| X+      | XR                  |
| Y+      | YD                  |
| X-      | XL                  |
| Y-      | YU                  |

Connessioni tra chip ASD7846 e CM3L

| ADS7846 | CM3L                |
|---------|---------------------|
| CS      | GPIO36 - SPI0_CE0_N |
| DOUT    | GPIO27 - SPI0_MISO  |
| DIN     | GPIO38 - SPI0_MOSI  |
| DCLK    | GPIO39 - SPI0_SCLK  |
| PENIRQ  | GPIO34              |

Il segnale PENIRQ può essere spostato su qualsiasi GPIO libero

Configurazione /boot/config.txt

#Resistive touch
#dtoverlay=spi-gpio35-39.dtbo
#dtoverlay=ads7846,cs=0,penirq=34,speed=10000, swapxy=0, pmax=255, xohms=60, xmin=200, xmax=3900, ymin=200, ymax=3900

Soluzioni Alternative alla CM3-Panel

Link utili



Le attività del TanzoLab si svolgono ogni mercoledi sera, salvo casi speciali, dalle ore 18:30 presso i locali della Acme Systems srl e consistono in:

  • Talk monotematici a cura di professionisti in vari settori tecnologici
  • Workshop pratici su elettronica embedded, produzione e informatica
  • Progettazione e realizzazione di nuovi prodotti embedded per l'IT

Le attività vengono coordinate tramite questo sito, in cui vengono pubblicati tutti i lavori svolti o in via di sviluppo, e tramite un gruppo Telegram con cui per interagire direttamente via chat con gli altri membri.