Current version

r1B5

Status

Work in progress

PCB manufactured

Yes (r1B2)

PCB assembled

Yes (r1B2)

BOM

Yes (TME, Mouser, Digikey, Farnell, RS)

File repository

https://github.com/eez-open/modular-psu/tree/master/mcu
(include Eagle, Gerber and BOM files)

License

TAPR v1.0

Contributions

C4.1 (Collective Code Construction Contract)

 

Fig. 1: MCU prototype r1B2

The MCU board provides main processing powers that can be shared between peripheral modules inserted into DIB backplane. Its also in charge for connectivity with PC using USB 2.0 and 10/100 Mbit/s Ethernet. Finally, it provides HMI that include 4.3” TFT LCD with resistive touchscreen, rotary encoder and an user switch with programmable function.

Feature list

  • STM32F769IIT6 32-bit ARM Cortex®-M7 MCU, 216 MHz, 2 MiB Flash, 512 KiB SRAM, LQFP-176 package
  • Digital I/O: 2 x protected inputs, 2 x protected outputs
  • Rotary encoder with switch
  • 1 x user switch
  • 3 x SPI channels (2 x Chip selects per channel), 40-pin IDC connector
  • Battery backup (CR2032 button cell type)
  • USB 2.0 OTG
  • Micro SD card
  • DP83848C Ethernet PHY (10/100 Mbit/s)
  • 32 KiB I2C EEPROM
  • SWG/JTAG connector (optional)
  • 8 MiB SDRAM (e.g. IS42S16400J)
  • TFT LCD 0.5 mm FFC 40-pin connector (e.g. 4.3” RFE43BH-AIW-DNS or RFE430Y-AIW-DNS)
  • TFT backlight brightness control
  • Resistive touch controller
  • Soft-start/stand-by control lines for AUX power supply
  • Audio amplifier with small on-board speaker
  • Input power: +5 V (+12 V pass-thru to peripheral modules)
  • On board +3.3 V LDO
  • Bootloader input and jumper (optional)
  • Dimensions: 139 x 70 mm, 4-layer PCB

Selected STM32F769IIT6 is a high performance 32-bit RISC core MCU operating at up to 216 MHz frequency. The Cortex®-M7 core features a floating point unit (FPU) which supports Arm® double-precision and single-precision data-processing instructions and data types. It also implements a full set of DSP instructions and a memory protection unit (MPU) which enhances the application security. It comes in various size and packages, and LQFP176 package is chosen since it offers enough pins for above listed features and it can be soldered manually on the PCB.

 

Fig. 2: MCU pin assignment (CubeMX)

 

The pin assignment is shown on Fig. 2. generated with CubeMX tool. The latest revision can be found on the GitHub. As it is visible from pin assignment, the MCU directly provides the most of the functionalities mentioned above. The MCU (IC4) wiring is shown on Fig. 3. and only one pin (PI8) and bus for a DSI type of display is left unassigned.

 

Fig. 3: STM32F769IIT6 MCU

On-board LDO (IC5) is deployed to step-down from +5 V to its working voltage of +3.3 V. A bank of decoupling capacitors (C15-C21 and C25-C31) are located as close as possible to VDD input pins. The main clock (HSE) frequency is set with 25 MHz XTAL (Y1). Another 32.768 KHz XTAL (Y2) is required for internal RTC (real time clock) so it can remain functional when power is switched off and backup power (coin batter in B1 holder) is used. The MCU clock settings is shown on Fig. 4. Relatively high main clock frequency of 25 MHz is intentionally selected to drive directly Ethernet PHY (IC16) using the MCLK_25 output (PC9 pin). Frequency prescalers are set to provide max. allowed MCU frequency of 216 MHz.

 

Fig. 4: STM32F769IIT6 Clock settings

Connectors, Digital I/O and rotary encoder

The MCU board uses two connectors (see Fig. 5.) in accordance with DIB v1.0 specification: 40-bit angled 0.1” receptacle (X1) is intended for direct connection with the BP3C backplane, while 16-pin angled IDC (X2) is used for flat cable connection with AUX power supply.

Two protected digital inputs and outputs lines are provided for MCU's communication with external devices. Input lines are protected with resistors (R2+R3, R6+R7) connected in series with digital buffers (IC2), which outputs are additionally dampened with resistors (R4, R8) to reduce possibility of MCU damage. IC2 inputs accept voltages up to 5.5 V. Therefore, it acts as level translator if inputs are driven with TTL levels.

 

Digital outputs are boosted with BTS3408G, a dual channel Low-Side Switch with D-MOS output stages suitable for driving resistive, capacitive and inductive loads (e.g. low-power relays). Output current is limited to 50 mA with polyfuses (F1, F2).

Finally, all inputs and outputs are clamped for additional safety with low capacitance 4-channel ESD-protection device (IC1).

 

On-board rotary encoder (SW2) is equipped with push-button and is supplemented with tactile switch (SW1) which can be assigned to various functions to provide more flexibility in interactions with user.

 

Fig. 5: Connectors, User switch, encoder and digital I/O

On-board storage and SWD interface

The MCU board has three different storage devices (Fig. 6.):

  • SD-RAM (IC7) managed by FMC (Flexible Memory Controller) with 12-bit address bus and 16-bit data bus,
  • EEPROM (IC8) connected to shared I2C bus
  • micro SD card inserted into “push-push” card holder (J1) managed by three lines SDMMC (SD Memory Management Controller). Additional input (SD_DETECT) is used for detecting presence of the micro SD card.

 

Fig. 6: SDRAM, EEPROM, micro SD card and SWD

Optional SWD interface for programming and debugging purposes is provided by ESD protected (IC6) 6-pin 0.1” pin header (X4). Its pinout is compatible with STlink debugger that can be found on evaluation boards and kits such as Nucleo and Discovery.

TFT display, touchscreen, USB and audio

The MCU is capable of driving directly a TFT display with RGB interface generating all required signals and pixel data up to 24-bit format. However, only 18-bit RGB interface is used due to pin limitations of selected package and pin demands by other activated features. First two bits of all color channels can be set to 0 (default) or 1 using PCB jumper (JP7). A standard 40-pin 0.5 mm FFC ZIF connector (LCD1) is used for interfacing TFT display and resistive touchscreen. The MCU board is tested with Raystar RFE43BH-AIW-DNS, a 4.3” 480 x 272 pixel display. TFT LED backlight require high voltage (~30 V) power supply with constant current output. TPS61169 (IC10) WLED driver (boost type) serves this purpose. It comes with built-in protection against open circuits to prevent the output voltage from exceeding the absolute maximum voltage ratings of the device. Optionally, a Zener diode (ZD3) can be mounted to protect TFT LED array, by keeping the output voltage within safe limit. Output current is programmed with R26 and CTRL input is used for brightness control that is connected to PWM output (TFT_BRIGHTNESS).

 

Fig. 7: USB, TFT, Touchscreen, Audio amplifier

Touchscreen functionality is accomplished with TSC2007, a 4-wire controller with I2C interface (IC14) and belongs to one of the few models that comes in package with exposed pads (for simple hand soldering) and is still in production. It includes 12-bit SAR ADC (can be downsized to 8-bit for shorter conversion time) and drivers and the control logic to measure touch pressure. Since TSC2007 has built-in ESD protection, IC13 is not mounted, and marked as optional.

 

The USB interface is also directly provided by MCU that can be programmed to act as USB device or host with OTG capability over 5-pin USB AB mini socket (J2). USB power distribution (max. 500 mA) in host mode is controlled with IC9 and all data lines that is protected against ESD with IC11. Optional LED (VBUS) indicates USB VBUS voltage.

 

A sound generated by DAC (DAC_OUT1) is amplified with low-power audio amplifier (IC12) which drives PCB mounted small 8 Ω loudspeaker (SP1). Audio amplifier power supply can be set with PCB jumper (JP9) to +3.3 V (default) or +5 V.

Ethernet PHY

The MCU provides 10/100 Mbit MAC with dedicated DMA and can work with IEEE 1588v2 hardware. Yet, it does not offer physical layer (PHY) interface, thus an external PHY transceiver, DP83848C (IC16) is incorporated. The DP83848 can be interfaced with both MII and RMII, and MII is chosen because of lower reference clock frequency (25 MHz for 100 Mbit/s, instead of 50 MHz for RMII) despite the higher pin count. It has Auto MDIX capability to select MDI or MDIX automatically and supports Auto-Negotiation for selecting the highest performance mode of operation. Connection with Ethernet network infrastructure is accomplished using RJ-45 socket (X5) with integrated magnetics (i.e. impedance/isolation transformers). Its interface lines can be additionally protected with optional IC15.

 

Fig. 8: Ethernet PHY

PCB layout

The MCU board is assembled on the 139 x 70 mm 4-layer PCB. The PCB is designed in such a way that all connectors and devices wich require interaction with user: i.e. Ethernet, USB, Digital I/O, TFT and MicroSD card socket and rotary encoder and user switch are positioned to the same PCB edge. Therefore, when properly mounted, they can be easily accessed from the EEZ BB3 enclosure’s front panel. Only the TFT display will require additional mounting frame or it can be fixed with the mounting tape.

PCB's top and bottom layers are used for signal routing, while two internal layers are used as ground and voltage planes. A special attention was needed to route SDRAM and Ethernet PHY with MCU. The same is valid for the USB 2.0 data lines that should be routed as differential pair with matched impedance to 90 Ω.

 

Fig. 9: PCB Top (cyan) and bottom (blue) layer

 

Fig. 10: PCB L2 layer (ground plane)

 

 

Fig. 11: PCB L3-layer (voltage plane)