S300 Master - Renesas Synergy

This document shows the documentation for the Rhomb.io Renesas Synergy Master Module. Preliminary version, use only for data updating or corrections.

Overview

The Rhomb.io Renesas Synergy Master Module is a certified Rhomb.io module that includes a Renesas Synergy S7G2 microcontroller. Having the largest on-chip Flash memory size in the industry for general purpose microcontrollers at 4 MB, S7 Series MCUs have ample space for complex application code or for complete memory redundancy to enable fail-safe in-field updates of the firmware. This module can work both as master or as slave.

The next figures show a 3D view for the Renesas Synergy Master Module.

RSM top-ed.pngRSM bot-ed.png

Applications:

  • Industrial automation
  • Internet of Things
  • Human Interface Device

Module specification

Key features

As stated above, this module sports a Renesas S7G2 microcontroller, the controller at the high end of the Synergy Series.

This module can be powered by either a 3V3 supply or by a 2V8 one in order to improve power performance. It's able to control any class 2 or 3 Rhomb.io motherboard with up to 3 module sockets, plus it has networking, memory and video capabilities.

In order to manage all GPIOs in Rhomb.io sockets, this module includes a GPIO Expander IC driven by the main controller via I2C interface. This adds 8 GPIO signals that are used to manage sockets 2 and 3 of the Rhomb.io standard.

It has two built-in 4-channel analog switches that allow the user to switch between a SDIO interface or a QSPI one, which adds a lot of flexibility for potential projects.

Interface I2C SDIO QSPI USB OTG SPI IrDa CAN RGB RMII I2S UART
Nº of buses 2 11 11 12 12 1 1 1 1 1 1 2

1User can switch between SDIO or QSPI I/F by setting the level of a GPIO.
2User can choose where the USB I/F is connected in the module, either to the USB pins of the module connectors, or the OTG pins by setting the level of a GPIO.


...The following figure identifies the main Integrated Circuits (IC) onboard. ICs doc.png

The next figure shows the Block Diagram for the Renesas Synergy Master Module. BD.png

Renesas Synergy Series Master Module features
Microcontroller S7G2
CPU ARM Cortex-M4
Operating voltage 2.8-3.3V
Digital I/O pins 24
Crystal Resonator 32.768kHz
External Clock 24MHz
Interrupt Pins 7*
PWM Outputs 1*
SDIO I/F 4-bit
ADC pins 8
DAC pins 2
Comparators 1 (2 pins)
USB USBHS 2.0

User interfaces

The user can choose wether this master module is supplied by a 3.3V or a 2.8V source simply by closing or opening the solder jumpers at the top-right corner of the module. 2.8V supply is recommended for applications requiring a lower power consumption.

There is a LED controlled by a PWM output pin of the controller for whatever the user might need, debugging, visual validation...

GPIO Expander

A GPIO Expander IC is used in this module so that all GPIO needed for Rhomb.io standard can be fullfilled. This IC is managed by the Renesas Synergy S7G2 through I2C1 I/F.

SDIO/QSPI Switching

Users can choose between SDIO or QSPI interfaces being active simply by setting P711 signal from the controller HIGH or LOW.

USB/OTG Switching

Users can choose between having the USB connected to the OTG or USB0 pins simply by setting P407 signal from the controller HIGH or LOW.

Connections

GPIO

The following table summarizes the GPIOs used on the Renesas Synergy master module.

Rhomb.io pinout Port Device
IO0 P801 Renesas MCU
IO1 P800 Renesas MCU
IO2 P604 Renesas MCU
IO3 P603 Renesas MCU
IO4 P605 Renesas MCU
IO5 P614 Renesas MCU
IO6 P612 Renesas MCU
IO7 P712 Renesas MCU
IO8 P0_7 I/O Expander
IO9 P0_6 I/O Expander
IO10 P0_5 I/O Expander
IO11 P0_4 I/O Expander
IO12 P0_3 I/O Expander
IO13 P0_2 I/O Expander
IO14 P0_1 I/O Expander
IO15 P0_0 I/O Expander
IO16 P1_0 I/O Expander
IO17 P1_1 I/O Expander
IO18 P1_2 I/O Expander
IO19 P1_3 I/O Expander
IO20 P1_4 I/O Expander
IO21 P1_5 I/O Expander
IO22 P1_6 I/O Expander
IO23 P1_7 I/O Expander

I/O signals managed by the I/O Expander can be controlled by the Renesas MCU through the I2C1 bus. I/O Expander P/N is PCAL6416AHF.

ANALOG

The following table summarizes the analog ports used on the Renesas Synergy master module.

Rhomb.io pinout Signal (module) Port
ADC
AD0 AN003 (ADC12) P008
AD1 AN101 (ADC12) P005
AD2 AN100 (ADC12) P004
AD3 AN102 (ADC12) P006
AD4 AN000 (ADC12) P000
AD5 AN002 (ADC12) P002
AD6 AN004 (ADC12) P009
AD9 AN001 (ADC12) P001
DAC
DAC0 DA0/IVREF3 (DAC12) P014
DAC1 DA1/IVCMP1 (DAC12) P015
COMP0
COMP0+ PGAVSS100 (ADC12) P007
COMP0- PGAVSS000 (ADC12) P003

PWM

The following table summarizes the PWM signals used on the Renesas Synergy master module.

Rhomb.io pinout Signal (module) Port MUXED
PWM0 GTIOC2A_B (GPT) P713 No
PWM11 GTIOC4B_A (GPT) P301 Yes
PWM21 GTIOC7B_A (GPT) P303 Yes
PWM31 GTIOC7A_A (GPT) P304 Yes
IO72 GTIOC2A_B (GPT) P712 Yes

1PWM[1..3] are muxed, with LCD_G5, LCD_G7 and LCD_R0 respectively. In order to have them available, R9, R10 and R21 must be assembled. Special care must be taken when operating the board with this configuration.
2IO7 is routed and used as a standard GPIO, but it can actually be used as a PWM output.

INTERRUPTS

The following table summarizes the INTERRUPTS used on the Renesas Synergy master module. Please note that interrupts used in this module are not hardware interrupts, as all ports capable of being used hardware interrupt are in use under several different capabilities and interfaces.

Rhomb.io pinout Port
INT0 P710
INT1_MOD1 P312
INT2_MOD2 P611
INT3_MOD3 P613
INT4 P6131
INT5 P6131
INT6 P6131

1INT4, INT5 and INT6 are connected to INT3_MOD3 through independent 100k resistors due to not having enough IO ports available for interrupt use.

Serial interfaces

The following table indicates the available serial interfaces on the Rhomb.io standard and which of them are in use. The table also shows the nomenclature used on the Rhomb.io standard and its corresponding on the schematic.

Signal (Rhomb.io) Signal (module) Port Signal (Rhomb.io) Signal (module) Port
I2C0 SPI0
I2C0_SDA SDA3_A (SCI3) P409 SPI0_MISO MISOA_B (SPI) P410
I2C0_SCL SCL3_A (SCI3) P408 SPI0_MOSI MOSIA_B (SPI) P411
I2C1 SPI0_SCK RSPCKA_B (SPI) P412
I2C1_SDA SDA2 (I2C) P511 SPI0_CS SSLA0_B (SPI) P413
I2C1_SCL SCL2 (I2C) P512 SPI0_CS1 SSLA1_B (SPI) P414
UART0 SPI0_CS2 SSLA2_B (SPI) P415
UART0_RXD RXD7_A (SCI7) P402 USB01
UART0_TXD TXD7_A (SCI7) P401 USB0_N USB_DM (Through switch) USB_DM
UART1 USB0_P USB_DP (Through switch) USB_DP
UART1_RXD RXD9_A (SCI9) P202 OTG1
UART1_TXD TXD9_A (SCI9) P203 OTG_N USB_DM (Through switch) USB_DM
QSPI2 OTG_P USB_DP (Through switch) USB_DP
QSPI0_IO0 QIO0 (QSPI) P502 CAN0
QSPI0_IO1 QIO1 (QSPI) P503 CAN0_RX CRX1_A (CAN) P110
QSPI0_IO2 QIO2 (QSPI) P504 CAN0_TX CTX1_A (CAN) P109
QSPI0_IO3 QIO3 (QSPI) P505 IrDa
QSPI0_CLK QSPCLK (QSPI) P500 IrDa_RX RXD1_B (SCI1) P708
QSPI0_CS0 QSSL (QSPI) P501 IrDa_TX TXD1_B (SCI1) P709
I2S0
I2S0_SDI SSIDATA1_A3 (SSI) P206 I2S0_SDO SSIDATA1_A3 (SSI) P206
I2S0_SCLK SSISCK_A (SSI) P204 I2S0_LRCK SSIWS1_A (SSI) P205
I2S0_CDCLK AUDIO_CLK (SSI) P400

1USB can be connected to the OTG or USB0 pins simply by setting P407 signal from the controller HIGH for OTG or LOW for USB0. Default: LOW
2QSPI can be alternated with SDIO by changing the state of P711 signal that actuates the analog switches splitting them to their respective connector's pins. LOW state for SDIO, HIGH for QSPI. Default: LOW.
3SSIDATA1_A can be routed to either SDI or SDO depending on the assembly of R11 and R12. Default: SDO

The I2C pull-ups resistors should be mounted on the bus, otherwise, the I2C bus will not work. For more details, look at the module specifications for the Rhomb.io standard.

SDIO

The next table shows the nomenclature used on the schematic and its corresponding on the rhomb standard for the Secure Digital Input Output (SDIO) interface.

SDIO01
Signal (Rhomb.io) Signal (module) Port
SDIO0_CMD SD1CMD (SDHI) P501
SDIO0_CDn SD1CD (SDHI) P506
SDIO0_CLK SD1CLK (SDHI) P500
SDIO0_DATA0 SD1DAT0 (SDHI) P502
SDIO0_DATA1 SD1DAT1 (SDHI) P503
SDIO0_DATA2 SD1DAT2 (SDHI) P504
SDIO0_DATA3 SD1DAT3 (SDHI) P505

1SDIO can be alternated with QSPI by changing the state of P711 signal that actuates the analog switches splitting them to their respective connector's pins. LOW state for SDIO, HIGH for QSPI. Default: LOW.

For more details, look at the module specifications for the Rhomb.io standard.

VIDEO

The next table shows the nomenclature used on the schematic and its corresponding on the rhomb standard for the video interface.

LCD
Signal (Rhomb.io) Signal (module) Port Signal (Rhomb.io) Signal (module) Port
Control signals 15-8 bit / Green data
LCD_HSYNC/HST/8bE LCD_TCON1_A (GLCDC) P103 LCD_G0 LCD_DATA08_A (GLCDC) P115
LCD_CLK/VCK LCD_CLK_A (GLCDC) P101 LCD_G1 LCD_DATA09_A (GLCDC) P114
LCD_VSYNC/VST/8bRS LCD_TCON3_A (GLCDC) P105 LCD_G2 LCD_DATA10_A (GLCDC) P113
LCD_DEN/8bRW LCD_TCON0_A (GLCDC) P102 LCD_G3 LCD_DATA11_A (GLCDC) P112
LCD_EXTCLK LCD_EXTCLK_A (GLCDC) P100 LCD_G4 LCD_DATA12_A (GLCDC) P111
LCD_G5 LCD_DATA13_A (GLCDC) P301
LCD_G6 LCD_DATA14_A (GLCDC) P302
LCD_G7 LCD_DATA15_A (GLCDC) P303
23-16 bit / Red data 7-0 bit / Blue data
LCD_R0 LCD_DATA16_A (GLCDC) P304 LCD_B0 LCD_DATA00_A (GLCDC) P106
LCD_R1 LCD_DATA17_A (GLCDC) P305 LCD_B1 LCD_DATA01_A (GLCDC) P107
LCD_R2 LCD_DATA18_A (GLCDC) P306 LCD_B2 LCD_DATA02_A (GLCDC) P600
LCD_R3 LCD_DATA19_A (GLCDC) P307 LCD_B3 LCD_DATA03_A (GLCDC) P601
LCD_R4 LCD_DATA20_A (GLCDC) P308 LCD_B4 LCD_DATA04_A (GLCDC) P602
LCD_R5 LCD_DATA21_A (GLCDC) P309 LCD_B5 LCD_DATA05_A (GLCDC) P610
LCD_R6 LCD_DATA22_A (GLCDC) P310 LCD_B6 LCD_DATA06_A (GLCDC) P609
LCD_R7 LCD_DATA23_A (GLCDC) P311 LCD_B7 LCD_DATA07_A (GLCDC) P608

Networking

The Rhomb.io Renesas Synergy master module has a 50MHz RMII interface available, which very interesting for potential projects that make use of networks, such as IoT applications.

The next table shows the nomenclature used on the schematic and its corresponding on the rhomb standard for the video interface.

RMII
Signal (Rhomb.io) Signal (module) Port
RMII_MDC ET1_MDC (RMII) P403
RMII_MDIO ET1_MDIO (RMII) P404
RMII_TXD1 RMII1_TXD1 (RMII) P406
RMII_TXD0 RMII1_TXD0 (RMII) P700
RMII_RX_CLK REF50CK1 (RMII) P701
RMII_RXD0 RMII1_RXD0 (RMII) P702
RMII_RXD1 RMII1_RXD1 (RMII) P703
RMII_TX_EN RMII1_TXD_EN (RMII) P405
RMII_RX_DV RMII1_CRS_DV (RMII) P705
RMII_RX_ER RMII1_RX_ER (RMII) P704

Debug

Debugging is to be done by using the SWD interface, with the signals SWDIO and SWDCLK.

Rhomb.io pinout Signal (module) Port
JTAG.TMS/SWDIO SWDIO P108
JTAG.TCK/SWCLK SWCLK P300

Power

As per the supply lines used on the board, there is a summary on the next table.

Signal (Rhomb.io) Signal (module) Voltage (V)
Buck8 2V8 2.8
Buck9 3V3 3.3
VDD VDD1 2.8 / 3.3
VIO_OUT VIO_OUT2 2.8 / 3.3
AREF0 VREFH03 External
AREF1 VREFH3 External

1VDD voltage level can be selected through the solder jumpers on the board, 2.8V and 3.3V can be selected. It is the voltage at which the whole module is powered. 2.8V level recommenden for power efficient applications.
2VIO_OUT is a power output pin that sets the voltage level for slave modules to this master module. VIO_OUT level is the same as VDD.
3AREF0 and AREF1 are external power inputs that set the high voltage reference level of the analog converters.

For more details, look at the module specifications for the Rhomb.io standard.

Other signals

On the following table it is shown the remaining signals from the Rhomb.io module connectors standard,and other module-specific signals.

Signal (Rhomb.io) Signal (module) Port
CLK_32KHz XCIN1 XCIN
RESET_OUT Reset Output2 P311
NMI MD/NMI3 P200/P201
RESET_IN Reset Input RES
1-WIRE/SWP 1-Wire Eeprom4 Non-MCU
USB_SW USB Analog switch selector5 P407
AS_1 SDIO/QSPI Analog switch selector6 P711
IOEXP_RST I/O Expander Reset signal7 P207
IOEXP_INT I/O Expander Interrupt8 P313

1This external 32.768kHz can be used on the module if instead of C1,C2 and Y1, R30 is assembled.
2GPIO assigned to output reset signal to any slave modules interfaced to this master module.
3Non-maskable interrupt request and mode setting pin. Pulled up by default for normal use, should be pulled down for SCI/USB boot mode.
41-Wire interface in order to read information from the on-module Eeprom memory.
5Setting USB_SW HIGH directs the USB bus to the OTG module pins, setting it LOW directs it to the USB0 module pins.
6Set AS_1 LOW state for SDIO interface, HIGH for QSPI interface. Software must be adapted so that the analog switch position matches the interface in use..
7GPIO assigned to output reset signal to I/O Expander IC interfaced to the Renesas MCU via I2C1 bus.
8GPIO assigned to read interrupt signal from the I/O Expander IC.


For more details, look at the module specifications for the Rhomb.io standard.

Getting started

Renesas, through its Synergy Gallery web platform (https://synergygallery.renesas.com), offers a wide variety of utilities, IDEs, documentation and everything you need to get started. You must create a (free) user account to access Synergy Gallery.

In this guide we will use the e2 Studio of Renesas, an Eclipse-based IDE, to make a basic example of blink (hello, world!). We will use a Helios board with a Renesas Synergy S7 module. You will also need a JTAG cable like the Segger J-Link or compatible.

Required hardware & software
  • 1x Helios board (or any other Rhomb.io Class II/III board) (buy here)
  • 1x Rhomb.io Synergy S7 Master Renesas Module (buy here)
  • 1x JTAG cable type J-link by Segger
  • 4x Jumper Wires (with Helios: 2x male-female and 2x male-male)
  • Windows OS (tested with W8 and W10)
  • e2 Studio >= 6.2
  • SSP Framework (Synergy Software Package) >= 1.3.0
  • JTAG drivers for windows

At the time of writing this tutorial, the Synergy platform does not offer official support for development from Linux/Mac systems or other editors than e2 Studio. In our case we have used Virtualbox on Debian 8 without major problems.

We will not use any USB cable to power the board, we will get the 5v power directly from the JTAG.
Caution! Do not attempt to USB-power a Rhomb.io board from Standard I with the Renesas modules, which meet Standard II. You can seriously damage the microcontroller.
Software Setup

Log in to renesas.com and create a free user account to download all the software (e2 Studio and SSP Framework) and generate a license file.

Renesas offers a PDF document called Basics of Renesas Synergy Platform that includes detailed information about the e2 Studio installation process, as well as lots of other information about the Synergy platform. It's almost essential that you read it to understand the entire Renesas Synergy ecosystem.

After installation e2 Studio may has selected an incorrect version of the GNU Tools ARM Embedded. e2 Studio needs the 4.9 X and by default you may have the 5.4 X. Use the preferences (Window menu -> Preferences) to enable v4.9.
e2 Studio GNU Tools settings

Clean the project every time you change the preferences (menu Project -> Clean).

Hardware Setup

To upload the code into the Synergy S7 we have used a Segger J-link with an ARM 20-PIN JTAG type connector (during this tutorial we will refer to this specific JTAG). Beware, not all JTAGs use the same connector with the same pin configuration. Make sure your JTAG uses the same combination of pins as shown below, or else find the equivalencies.

Jtag-20pin-arm.gif

Look at this image to see the JTAG connection with the Helios Board.

Connections-for-jtag-helios.png
The above image corresponds to the end of the JTAG cable connected to the J-Link. The pin configuration will be reversed at the other end of the JTAG, where we will connect the cables to the Helios board.

It will not be necessary to connect the USB cable of the board, the voltage is given by the JTAG. Remember, Renesas modules use Rhomb.io Standar II and should not be connected to PCBs with Standar I.

Create a new e2 Studio project

Open e2 Studio and create a new project of type Synergy C. The following window will appear:

E2-studio-create-project.png

We must select the specific model of our Synergy by Rhomb.io module. You can see the model number written on the silicon itself (with magnifying glass), probably corresponding to one of the following:

  • Synergy S7 -> R7FS7627H2
  • Synergy S5 -> R7FS5D97E2
  • Synergy S3 -> R7FS3A77C2

The siliciums that mount the rhomb.io modules are 145 pins

E2-studio-project-config.png

In the next screen we are asked to select the initial configuration of the project, we will use the BSP to create a blank project.

E2-studio-project-configuration.png

Our project has been created and to continue you must select the Synergy perspective, if you have not done so when creating the project (a dialog asks you) you can do it by clicking the following button in the upper right corner of e2 Studio.

E2-studio-select-perspective.png

The Threads Configuration window of the Synergy perspective corresponds to the configuration.xml file in the project's file explorer.

The module with the Rhomb.io Synergy S7 includes a led on pin 713 (port 7, pin 13). By default almost all pins are disabled, this means that if we try to give a HIGH/LOW pulse we will not get any results, for this we first have to configure that pin. In our case we want the 713 to be active as output (it doesn't matter if HIGH or LOW). To do this we look for the PIN713 in the package window, double click on it and in the Pins tab we configure it as Output.

E2-studio-enable-pin.png

Before you continue, look for the "Generate Project Content" button inside the Threads Configuration window of the configuration.xml file to apply the changes we have made to pin 713.

Happy Coding!

Let's add the code part that will make our blink. In the file explorer search for the src/hal_entry.c file, this file represents the main Thread of our application, called HAL/Common. We will add the following code:

#include "hal_data.h"
void hal_entry (void) {
    bool enable = true;
    while (1) {
        // Pin 713 = IOPORT_PORT_07_PIN_13.
        // On C++, pinWrite doesn't allow a boolean param as sencod
        // argument (requires a data type ioport_level_t).
        // g_ioport is available here because our thread has that
        // component (r_ioport) added by default. See components tab in
        // the configuration.xml file.
        g_ioport.p_api->pinWrite(IOPORT_PORT_07_PIN_13, enable);
        isOn =! isOn;
        for (int i = 0; i < 1E6; i++) { }
    }
}

The above example has been simplified, but obviously this code would work better with a timer. Alternatively you can also use `tx_thread_sleep(1000);` to insert a delay instead of the for loop.

We can add more threads to our application from the configuration.xml file, and each thread will have its input file. Threads, thanks to the synergy RTOS model, are tasks that run in parallel, this means, roughly speaking, that your single core microcontroller will be able to do 2 or more things at a time (at human-eye sight).

Compile the code with the hammer button Compile-button.png. Once done, use the debug Button-debug.png button to load the code into the microcontroller. This will give us a debug view of Eclipse. Once it is loaded you will see that the microcontroller does nothing, press the button Button-play.png a couple of times in this same perspective to finish the loading process. Once done, the LED should flash. To exit debug view, press the Button-desconectar.png button and then press the button Button-perspective.png to switch to Synergy perspective.

Conclusions

The Synergy platform works with Logic Express's RTOS ThreadX operating system as well as his own libraries (SSP). The possibilities of ThreadX along with the Renesas libraries are enormous and could fill hundreds of books.

Renesas, with its e2 Studio, includes the ThreadX system through a graphical interface inside the Eclipse (e2 Studio). This same GUI also generates the necessary code for our application depending on what we want to do. There are probably people who don't like the idea that a graphical interface generates the source code, we included, but in our tests we have been able to verify that the GUI of e2 Studio is really useful and very stable, and of course you can always work writting code instead of using the GUI.

Schematics

The schematics are available here.

Bill of materials

The BOM is available here.

Fabrication files

The fabrication files are available here.

Part number package marking

Mechanical specifications

Board


RSM dimensions.png

Connector

[Under construction]

Warranty

  • Precaution against Electrostatic Discharge. When handling Rhomb.io products, ensure that the environment is protected against static electricity. Follow the next recommendations:
  1. The users should wear anti-static clothing and use earth band when manipulating the device.
  2. All objects that come in direct contact with devices should be made of materials that do not produce static electricity that would cause damage.
  3. Equipment and work table must be earthed.
  4. Ionizer is recommended to remove electron charge.
  • Contamination. Be sure to use semiconductor products in the environment that may not be exposed to dust or dirt adhesion.
  • Temperature/Humidity. Semiconductor devices are sensitive to environment temperature and humidity. High temperature or humidity may deteriorate semiconductor devices characteristics. Therefore avoid storage or usage in such conditions.
  • Mechanical Shock. Care should be exercised not to apply excessive mechanical shock or force on the connectors and semiconductors devices.
  • Chemical. Do not expose semiconductor device to chemical because reaction to chemical may cause deterioration of device characteristics.
  • Light Protection. In case of non-EMC (Epoxy Molding Compound) package, do not expose semiconductor IC to strong light. It may cause devices malfunction. Some special products which utilize the light or have security function are excepted from this specification.
  • Radioactive, Cosmic and X-ray. Semiconductor devices can be influenced by radioactive, cosmic ray or X-ray. Radioactive, cosmic and X-ray may cause soft error during device operation. Therefore semiconductor devices must be shielded under environment that may be exposed to radioactive, cosmic ray or X-ray.
  • EMS (Electromagnetic Susceptibility). Note that semiconductor devices characteristics may be affected by strong electromagnetic waves or magnetic field during operation.

Disclaimer

Rhomb.io reserves the right to make corrections, enhancements, improvements and other changes to its products and services, and to discontinue any product or service. Buyers should obtain the latest relevant information before placing orders and should verify that such information is current and complete. All the hardware products are sold subject to the Rhomb.io terms and conditions of sale supplied at the time of order acknowledgment.

All brand names, trademarks and registered trademarks belong to their respective owners.

We are constantly striving to improve the quality of our technical notes. If you find an error or omission please let us know.

Email us at: info@rhomb.io