| .. _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_robokit1_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/ |