Available as a complete pre-populated module as well as a bare unpopulated PCB

New 4 choices of CPU frequency

Overview

This application board allows the construction of projects based on the ATmega328PB microcontroller which include a digital isolator on the SPI or I²C peripherals. Typically this arrangement is useful when parts of the circuit must be at a different ground potential to the main part containing the microcontroller. Many items of test equipment for example, will often put parts of the analog frontend and a DAC or ADC in such a sub-circuit, separated from the rest of the unit. Such separation is often performed by special-purpose "digital isolator" chips. This board provides a handy central piece to such an application, containing the MCU and isolator hardware in one place.

ATmega328PB

The ATmega328PB at the heart of this board is an expanded version of the popular ATmega328P, familiar to many as the chip on many Arduino boards. This new PB variant of it adds an additional SPI, TWI and USART module, bringing the chip to a total of two each. Because the chip has two independent SPI and TWI modules, this makes it ideal for isolator applications on this board. One of each module (SPI1 and TWI1) are linked to the isolators for communicating with the isolated part of the circuit, and the other (SPI0 and TWI0) are left available to connect to the non-isolated hardware - typically things like front panel displays or controls, or communications interfaces to other equipment.

Isolators

The board has two SOIC16-W sized footprints, which can contain any of a variety of similar isolator chips. The upper chip (U2) is pre-configured to the SPI1 peripheral, isolating the MISO1, MOSI1, SCK1 and SS1# lines onto the remote side. The lower chip (U3) is pre-configured to the TWI1 peripheral, isolating the SDA1 and SCL1 lines to the remote side. Both isolators share a common remote-side power supply, provided by a DC isolator module (in industry-standard 1W SIL footprint).

Each isolator slot also has two extra pins available, to make use of spare channels available on some of the choices of isolator chips bringing out extra GPIO lines to the remote side. Each chip allows a choice of PD4 or PD5 to be sent out to the remote device (on a pin labeled "AUX"), and PD2 or PD3 (commonly used for the INT0 and INT1 inputs) to be received from the remote device. Each isolator may be independently wired to either choice of pin, or left unconnected. This choice is made by a series of solder jumper pads which can be (re)configured arbitrarily.

Note: beware of drive contention if both isolator slots are used, not to have them both driving the same INT line. If both slots are used and both are providing inputs, they must be wired to different interrupt lines.

Also note that there is no hi-Z feature provided on the SPI isolator, to release the MISO line on the MCU side when the (isolated) slave is not selected. If using the isolated SPI bus, make sure not to also place other devices on the non-isolated side of it. Use the separate SPI0 peripheral for this instead.

The I²C isolator is not affected by similar concerns. Due to the way I²C buses work, it is fine to mix devices on either side of the bus.

Other Features

Besides the isolator section and the main ATmega328PB, this board also features breakout pins for all the IO pins of the chip, split by port grouping and labelled with the Atmel standard names for them. The pins relating to UART0, SPI0, TWI0 and TWI1 are also labelled with reference icons as a handy reminder of their functions.

Three more headers are provided, one giving ground, power, reset and the ADC reference (AREF), one giving another copy of just ground and power, and the final being the 6-pin AVR ISP header used for programming the MCU.

Bills of Materials

If ordered as a bare board, you will have to populate it. Exactly which isolators you choose to install will depend on the kind of project you are working on, and which communication lines you need on the isolated side. If ordered pre-populated, the board will include the parts suggested below.

Base Components

The following parts are required regardless:

Reference

Value

U1

Atmel ATmega328PB-A (TQFP32)

C1

MLCC 10µF (1206)

C2,6,7

MLCC 100nF (0603)

X1

Murata ceramic resonator CSTCE or CSTNE series (e.g. CSTNE16M0)

DC1

Murata NKE0505SC, NME0505SC, or similar equivalent

Isolated SPI

If using the isolated SPI port (or simply getting more GPIO lines along with the second I²C one), the following will be needed:

Reference

Value

C3,4

MLCC 100nF (0603)

In addition, the actual isolator itself can be one of the following

Part

Notes

Analog Devices ADuM1401

Basic SPI only - requires the additional VCC and GND jumpers to be bridged

Maxim MAX14935 (SOIC16-W)

clone of ADuM1401; see above

Silicon Labs Si8641 (SOIC16-W)

clone of ADuM1401; see above

Analog Devices ADM162

Basic SPI + AUX and INT channels

Silicon Labs Si8662 (SOIC16-W)

clone of ADM162; see above (pre-populated boards will use this)

These isolator chips all come with various channel direction configurations. The above part numbers are chosen for 3 out + 1 in for basic SPI, and an additional 1 out + 1 in for the AUX and INT channels. If you are using this slot for some signals other than SPI, you may need to pick a different channel configuration to suit the directions required.

Isolated I²C

If using the isolated I²C port (or simply getting more GPIO lines along with the first SPI one), the following will be needed:

Reference

Value

C5,6

MLCC 100nF (0603)

R1,2,3,4

Resistor 4k7 (0603)

U3

Silicon Labs Si8605 (SOIC16-W)

Non-isolated I²C

If using the non-isolated I²C port on PC4/PC5, the following will be needed

Reference

Value

R5,6

Resistor 4k7 (0603)

CPU Frequencies

The CPU speed is set by the ceramic resonator. A choice of the following four frequencies is available:

What is a Tindarian?

We recognize our top users by making them a Tindarian. Tindarians have access to secret & unreleased features.

How does one become a Tindarian?

We look for the most active & best members of the Tindie community, and invite them to join. There isn't a selection process or form to fill out. The only way to become a Tindarian is by being a nice & active member of the Tindie community!