CM3 Panel - RFC

Bozza di specifiche e appunti per la definizione delle caratteristiche tecniche del CM3-PANEL

Il CM3-Panel è un display da 7 pollici con touch capacitivo governato da una scheda Raspberry Pi CM3L o CM3

Il prodotto è pensato come alternativa al Raspberry Pi 7" Touch Screen LCD presentando, rispetto a questo,le seguenti differenze sostanziali:

Plus:

  • Spessore più contenuto (dovremmo rimanere sui 2 cm massimi)
  • Disponibilità su lungo periodo grazie all'uso del modulo industriale Raspberry Pi CM3L
  • Scatola realizzabile sia con stampante 3D che con CNC
  • Disponibilità in diverse versioni pensate per impieghi specifici

Minus:

  • Prodotto non generico dotato delle sole interfacce specializzate per ogni singola applicazione

Ipotesi di modelli

L'idea è quella di realizzare diverse versioni di CM3-PANEL specializzate per diversi campi di applicazione. Di seguito alcune ipotesi:

CM3-PANEL-B

E' il modello entry level pensato principalmente per i seguenti scopi:

  • Base per esperimenti per identificare nuovi modelli CM3-PANEL-x da realizzare
  • Terminale WiFi da muro per Home automation
  • Terminale per banchi di test Acme
  • Gateway per sistema Radio Yarm
  • Sistema autonomo di home automation puramente WiFi
  • Ricevitore IR

Specifiche CM3-PANEL-B

  • Touch capacitio da 7 pollici
  • Socket per Raspberry CM3L o CM3
  • Modulo WiFi WIFI-02 connesso su porta USB interna
  • Alimentazione 12/24 volt DC su morsetto a vite
  • MicroSD card holder tipo hinge
  • Modulo radio Yarm
  • GPIO non usati su doppia fila di pad passo 2.54 mm
  • Ingegnerizzata per poter essere montata su un cestello elettrico 503

CM3-PANEL-M

Modello disegnato per l'applicazione audio Volumio. Le specifiche verranno definite la più resto con l'autore di Volumio.

CM3-PANEL-W

Modello disegnato per applicazioni a muro di tipo wired con interfacce Ethernet, RS485. Le specifiche verranno identificate prossimamente con il gruppo TanzoLab.

Appunti vari

Quelli riportati di seguito sono solo appunti

Specifiche meccaniche di massima

  • Il pannello dovrà avere il minimo spessore possibile. Tra touch panel, display, PCB e CM3 l'ingombro è di 17mm. Tutto dovrà rientrare in questa dimensione.
  • I connettori dovranno essere disponibili in una zona centrale (di circa 80x60mm) corrispondente ad una scatola da incasso 503 in modo da poter essere attaccata al muro con i fili a scomparsa.
  • Esempio di scatola da incasso Elbag
  • I connettori dovranno esser rivolti verso il basso per fare in modo che il pannello sia utilizzabile anche in versione da tavolo.
  • Il pannello sarà integrato in una cornice a filo con il touch panel: 117.60mm X 182.07mm di spessore 15mm.
  • Il connettore I/O e il connettore USB verticale per l'eventuale alimentazione 5V sarà posizionato al centro nella zona da incassare.
  • Il connettore USB A Host sarà messo di lato in modo da essere accessibile anche con il pannello montato a muro

Datasheets

Connessioni tra il connettore del touch capacitivo e la CM3L

| CM3 | TOUCH         |
|-----|---------------|
| 1   | GND           |
| 2   | N.C.          |
| 3   | 3V3           |
| 4   | GPIO29 (SCL0) |
| 5   | GPIO28 (SDA0) |
| 6   | GPIO30 (INT)  |
| 7   | GPIO31 (RES)  |
| 8   | GND           |

Connessioni tra modulo CM3L e display TFT

La modalità colore scelta è la RGB666 (18 bit colore) invece della RGB888 (24 bit colore) in modo da lasciare libere le linee del bus SD1 che dovrebbe essere quello usato dalla eMMC della Raspberry Pi modello CM3

| CM3    | LCD        |
|--------|------------|
| GPIO0  | PCLK       |
| GPIO1  | DE         |
| GPIO2  | LCD_VSYNC  |
| GPIO3  | LCD_HSYNC  |
| GND    | B0         |
| GND    | B1         |
| GPIO4  | B2         |
| GPIO5  | B3         |
| GPIO6  | B4         |
| GPIO7  | B5         |
| GPIO8  | B6         |
| GPIO9  | B7         |
| GND    | G0         |
| GND    | G1         |
| GPIO10 | G2         |
| GPIO11 | G3         |
| GPIO12 | G4         |
| GPIO13 | G5         |
| GPIO14 | G6         |
| GPIO15 | G7         |
| GND    | R0         |
| GND    | R1         |
| GPIO16 | R2         |
| GPIO17 | R3         |
| GPIO18 | R4         |
| GPIO19 | R5         |
| GPIO20 | R6         |
| GPIO21 | R7         |

Connessioni tra modulo CM3L e modulo AP6212

| 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     |               |

Sezione audio

La sezione audio della CM3-Panel sarà realizzata con componenti di buon livello per avere una qualità da audiofilo, in contrapposizione con l'uscita standard della Raspberry PI3 ottenuta con due PWM. Lo schema di riferimento è quello del DAC Texas Instruments (ex Burr Brown) PCM5122. Questo è lo stesso DAC usato dalla scheda Hifiberry DAC+ Pro e consigliato da Volumio per l'utilizzo con il suo player. 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. Anche nella scelta dei connettori hanno scelto di usare dei connettori RCA dorati di buona qualità e lasciare come opzionale l'uscita jack stereo 3.5mm, ancora una volta per soddisfare le richieste di un mondo di audiofili che utilizzano musica liquida.

Una recensione della Hifiberry DAC + Pro su un blog giapponese (si può usare il traduttore di Google per leggerla agevolmente) con molti dettagli.

La scheda Hifiberry DAC + Pro

| 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         |

Software

/boot/config.txt

dtoverlay=i2c0-bcm2708,sda0_pin=28,scl0_pin=29

Comando per vedere gli overlay caricati:

sudo vcdbg log msg

Comando per vedere i dispositivi di input

cat /proc/bus/input/devices

/boot/overlay/goodix-7-acme.dts

// Device tree overlay for I2C connected Goodix gt9271 multiple touch controller
// Acme Systems version for 7 inch DPI display
/dts-v1/;
/plugin/;

/ {
        compatible = "brcm,bcm2708";

        fragment@0 {
                target = <&gpio>;
                __overlay__ {
                        goodix_pins: goodix_pins {
                                brcm,pins = <30 31>; // interrupt and reset
                                brcm,function = <0 0>; // in
                                brcm,pull = <2 2>; // pull-up
                        };
                };
        };

        fragment@1 {
                target = <&i2c0>;
                __overlay__ {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        status = "okay";

                        gt9271: gt9271@5d {
                                compatible = "goodix,gt9271";
                                reg = <0x5D>;
                                pinctrl-names = "default";
                                pinctrl-0 = <&goodix_pins>;
                                interrupt-parent = <&gpio>;
                                interrupts = <30 2>; // high-to-low edge triggered
                                irq-gpios = <&gpio 30 0>; 
                                reset-gpios = <&gpio 31 0>;
                        };
                };
        };
};

Come compilare l'overlay

sudo dtc -@ -I dts -O dtb -o /boot/overlays/goodix-7-acme.dtbo goodix-7-acme.dts 

E poi aggiungere a /boot/config.txt le riga:

#Touch capacitivo
dtoverlay=i2c0-bcm2708,sda0_pin=28,scl0_pin=29
dtoverlay=goodix-7-acme

Soluzioni Alternative

Links

Touchscreen resistivo

Queste informazioni non sono pertinenti al prodotto CM3-Panel ma erano state raccolte in precedenza quando si pensava di iniziare con una versione dotata di touch resistivo

Connessioni tra chip ADS7846 e display TFT

Il segnale PENIRQ può essere spostato su qualsiasi GPIO libero

| ADS7846 | LCD                 |
|---------|---------------------|
| CS      | GPIO36 - SPI0_CE0_N |
| DOUT    | GPIO27 - SPI0_MISO  |
| DIN     | GPIO38 - SPI0_MOSI  |
| DCLK    | GPIO39 - SPI0_SCLK  |
| PENIRQ  | GPIO34              |
| X+      | XR                  |
| Y+      | YD                  |
| X-      | XL                  |
| Y-      | YU                  |

Andrebbe aggiunto anche lo spegnimento della retroilluminazione come fatto su questo schema di un adattatore Watterott. C'e' da decidere su quale GPIO mettere la linea LCD_LED.

Configurazione /boot/config.txt

# Uncomment some or all of these to enable the optional hardware interfaces
dtparam=i2c_arm=off
dtparam=spi=off

dtoverlay=dpi18
overscan_left=0
overscan_right=0
overscan_top=0
overscan_bottom=0
framebuffer_width=800
framebuffer_height=480
enable_dpi_lcd=1
display_default_lcd=1
dpi_group=2
dpi_mode=87
dpi_output_format=0x6f005
hdmi_timings=800 0 40 48 88 480 0 13 3 32 0 0 0 60 0 32000000 6

#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



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.