SAM4S Xplained

Overview

The SAM4S Xplained evaluation kit is a development platform to evaluate the Atmel SAM4S series microcontrollers.

SAM4S Xplained

Hardware

  • ATSAM4S16C ARM Cortex-M4 Processor
  • 12 MHz crystal oscillator
  • internal 32.768 kHz crystal oscillator
  • IS66WV51216DALL 8 Mb SRAM
  • Micro-AB USB device
  • Micro-AB USB debug interface supporting SEGGER OB and Virtual COM Port and Data
  • One reset and one user pushbutton
  • 2 yellow user LEDs
  • IC pads for external flash chip

Supported Features

The sam4s_xplained board configuration supports the following hardware features:

Interface Controller Driver/Component
NVIC on-chip nested vector interrupt controller
SYSTICK on-chip systick
UART on-chip serial port
I2C on-chip i2c

Other hardware features are not currently supported by Zephyr.

The default configuration can be found in the Kconfig boards/arm/sam4s_xplained/sam4s_xplained_defconfig.

Connections and IOs

The SAM4S Xplained Online User Guide [1] has detailed information about board connections. Download the SAM4S Xplained Schematic [3] for more detail.

System Clock

The SAM4S MCU is configured to use the 12 MHz internal oscillator on the board with the on-chip PLL to generate an 84 MHz system clock.

Serial Port

The ATSAM4S16C MCU has 2 UARTs and 2 USARTs. One of the UARTs (UART0) is connected to the Segger J-Link OB chip (the AT91SAM3U4 is programmed to be Segger J-Link OB). Segger J-Link OB brings the UART out as a virtual COM port.

Programming and Debugging

The SAM4S Xplained board comes with Segger J-Link OB. This provides a debug interface to the SAM4S16C chip. You can use Ozone or JLink to communicate with the SAM4S16C.

Flashing

  1. Build the Zephyr kernel and the Hello World sample application:

    # On Linux/macOS
    cd $ZEPHYR_BASE/samples/hello_world
    mkdir build && cd build
    
    # On Windows
    cd %ZEPHYR_BASE%\samples\hello_world
    mkdir build & cd build
    
    # Use cmake to configure a Ninja-based build system:
    cmake -GNinja -DBOARD=sam4s_xplained ..
    
    # Now run ninja on the generated build system:
    ninja
    
  2. Connect the SAM4S Xplained board to your host computer using the USB debug port.

  3. Run your favorite terminal program to listen for output. Under Linux the terminal should be /dev/ttyACM0. For example:

    $ minicom -D /dev/ttyACM0 -o
    

    The -o option tells minicom not to send the modem initialization string. Connection should be configured as follows:

    • Speed: 115200
    • Data: 8 bits
    • Parity: None
    • Stop bits: 1
  4. Download JLink from the Segger JLink Downloads Page [2]. Go to the section “J-Link Software and Documentation Pack” and install the “J-Link Software and Documentation pack for Linux”.

  5. To flash an image open JLink and enter the following:

    JLink> device at91sam4s16c
    // Hit enter to accept JTAG as the default and the other default JTAG settings
    JLink> connect
    .
    .
    .
    Device "ATSAM4S16C" selected.
    
    
    TotalIRLen = 4, IRPrint = 0x01
    AP-IDR: 0x24770011, Type: AHB-AP
    Found Cortex-M4 r0p1, Little endian.
    FPUnit: 6 code (BP) slots and 2 literal slots
    CoreSight components:
    ROMTbl 0 @ E00FF000
    ROMTbl 0 [0]: FFF0F000, CID: B105E00D, PID: 000BB000 SCS
    ROMTbl 0 [1]: FFF02000, CID: B105E00D, PID: 003BB002 DWT
    ROMTbl 0 [2]: FFF03000, CID: B105E00D, PID: 002BB003 FPB
    ROMTbl 0 [3]: FFF01000, CID: B105E00D, PID: 003BB001 ITM
    ROMTbl 0 [4]: FFF41000, CID: B105900D, PID: 000BB9A1 TPIU
    Found 1 JTAG device, Total IRLen = 4:
    #0 Id: 0x4BA00477, IRLen: 04, IRPrint: 0x1, CoreSight JTAG-DP (ARM)
    Cortex-M4 identified.
    
    JLink> loadbin <zephyr.bin>, 0x400000
    Downloading file [/home/justin/Zephyr/zephyr/samples/hello_world/outdir/zephyr.bin]...
    Comparing flash   [100%] Done.
    Erasing flash     [100%] Done.
    Programming flash [100%] Done.
    Verifying flash   [100%] Done.
    J-Link: Flash download: Flash programming performed for 2 ranges (21504 bytes)
    J-Link: Flash download: Total time needed: 0.549s (Prepare: 0.200s, Compare: 0.150s, Erase: 0.020s, Program: 0.094s, Verify: 0.001s, Restore: 0.081s)
    O.K.
    JLink> r
    JLink> go
    

    You should see “Hello World! arm” in your terminal.