blob: 151a6b8f9ae83f499c7f983fa69bf08441034578 [file] [log] [blame]
.. _tdk_robokit1:
TDK RoboKit 1
#############
Overview
********
The TDK RoboKit1 is a development board for use primarily with ROS2 and provides a large
number of small ground robotics useful sensors including chirp sensors for time of flight
(e.g. ultrasonic obstacle detection).
It pairs a 300MHz Cortex-M7 ATSAME70Q21 with an array of TDK sensors and pin headers useful for robotics.
.. image:: img/tdk_robokit1.jpg
:align: center
:alt: TDK RoboKit1
Hardware
********
- ATSAME70Q21 ARM Cortex-M7 Processor
- 12 MHz crystal oscillator (Pres)
- 32.768 kHz crystal oscillator
- Micro-AB USB device
- Micro-AB USB debug (Microchip EDBG) interface supporting CMSIS-DAP, Virtual COM Port and Data
- JTAG interface connector
- One reset pushbutton
- One red user LED
- TDK ICM 42688-P 6-Axis 32KHz IMU
- TDK ICP-10111 Pressure Sensor
- TDK NTC Thermistor for Temperature
- AKM AK09918C Magnetometer
- 2 TDK HVCi-4223 Cortex-M3 Dedicated Motor Controller
- 3 TDK ICS-43434 Stereo Microphones
- Connector for Industrial Dual IMU (TDK IIM-46230)
- TDK CH101 Ultrasonic Range Sensor Array (9 Connectors, comes with 3)
Supported Features
==================
The TDK RoboKit1 board supports the following hardware
features:
.. list-table::
: header-rows: 1
* - Peripheral
- Kconfig option
- Devicetree compatible
* - GPIO
- :kconfig:option:`CONFIG_GPIO_SAM`
- :dtcompatible:`atmel,sam-gpio`
* - USART
- :kconfig:option:`CONFIG_USART_SAM`
- :dtcompatible:`atmel,sam-usart`
* - UART
- :kconfig:option:`CONFIG_UART_SAM`
- :dtcompatible:`atmel,sam-uart`
* - SPI
- :kconfig:option:`CONFIG_SPI_SAM`
- :dtcompatible:`atmel,sam-spi`
* - I2C
- :kconfig:option:`CONFIG_I2C_SAM_TWIHS`
- :dtcompatible:`atmel,sam-i2c-twihs`
* - I2S
- :kconfig:option:`CONFIG_I2S_SAM_SSC`
- :dtcompatible:`atmel,sam-ssc`
* - ADC
- :kconfig:option:`CONFIG_ADC_SAM_AFEC`
- :dtcompatible:`atmel,sam-afec`
* - DAC
- :kconfig:option:`CONFIG_DAC_SAM`
- :dtcompatible:`atmel,sam-dac`
* - PWM
- :kconfig:option:`CONFIG_PWM_SAM`
- :dtcompatible:`atmel,sam-pwm`
* - CAN
- :kconfig:option:`CONFIG_CAN_SAM`
- :dtcompatible:`atmel,sam-can`
* - USB
- :kconfig:option:`CONFIG_USB_DC_SAM_USBHS`
- :dtcompatible:`atmel,sam-usbhs`
* - WATCHDOG
- :kconfig:option:`CONFIG_WDT_SAM`
- :dtcompatible:`atmel,sam-watchdog`
* - NVIC
- N/A
- :dtcompatible:`arm,v7m-nvic`
* - SYSTICK
- N/A
- N/A
* - COUNTER
- :kconfig:option:`CONFIG_COUNTER_SAM_TC`
- :dtcompatible:`atmel,sam-tc`
* - DMA
- :kconfig:option:`CONFIG_DMA_SAM_XDMAC`
- :dtcompatible:`atmel,sam-xdmac`
* - ENTROPY
- :kconfig:option:`CONFIG_ENTROPY_SAM_RNG`
- :dtcompatible:`atmel,sam-trng`
* - HWINFO (reset cause)
- :kconfig:option:`CONFIG_HWINFO_SAM_RSTC`
- :dtcompatible:`atmel,sam-rstc`
* - HWINFO (device id)
- :kconfig:option:`CONFIG_HWINFO_SAM`
- N/A
The default configuration can be found in the Kconfig
:zephyr_file:`boards/arm/tdk_robokit1/tdk_robotkit1_defconfig`.
Connections and IOs
===================
The TDK RoboKit Hardware Guide has detailed information about board connections.
System Clock
============
The SAM E70 MCU is configured to use the 12 MHz external oscillator on the board
with the on-chip PLL to generate a 300 MHz system clock.
Serial Port
===========
The ATSAME70Q21 MCU has five UARTs and three USARTs. One of the UARTs is
configured for the console and is available as a Virtual COM Port via the USB2 connector.
Programming and Debugging
*************************
Flashing the Zephyr project onto SAM E70 MCU requires the `OpenOCD tool`_.
Both west flash and west debug commands should correctly work with both USB0 and USB1
connected and the board powered.
Flashing
========
#. Run your favorite terminal program to listen for output. Under Linux the
terminal should be :code:`/dev/ttyACM0`. For example:
.. code-block:: console
$ minicom -D /dev/ttyUSB0 -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
#. Connect the TDK RoboKit1 board to your host computer using the
USB debug port (USB1), USB2 for a serial console, and remaining micro USB for
power. Then build and flash the :ref:`hello_world` application.
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: tdk_robokit1
:goals: build flash
You should see "Hello World! tdk_robokit1" in your terminal.
Debugging
=========
You can debug an application in the usual way. Here is an example for the
:ref:`hello_world` application.
.. zephyr-app-commands::
:zephyr-app: samples/hello_world
:board: tdk_robokit1
:maybe-skip-config:
:goals: debug
References
**********
TDK RoboKit1 Product Page:
https://invensense.tdk.com/products/robokit1-dk/
.. _OpenOCD tool:
http://openocd.org/