1.. zephyr:board:: robokit1 2 3Overview 4******** 5 6The TDK RoboKit1 is a development board for use primarily with ROS2 and provides a large 7number of small ground robotics useful sensors including chirp sensors for time of flight 8(e.g. ultrasonic obstacle detection). 9 10It pairs a 300MHz Cortex-M7 ATSAME70Q21 with an array of TDK sensors and pin headers useful for robotics. 11 12Hardware 13******** 14 15- ATSAME70Q21 ARM Cortex-M7 Processor 16- 12 MHz crystal oscillator (Pres) 17- 32.768 kHz crystal oscillator 18- Micro-AB USB device 19- Micro-AB USB debug (Microchip EDBG) interface supporting CMSIS-DAP, Virtual COM Port and Data 20- JTAG interface connector 21- One reset pushbutton 22- One red user LED 23- TDK ICM 42688-P 6-Axis 32KHz IMU 24- TDK ICP-10111 Pressure Sensor 25- TDK NTC Thermistor for Temperature 26- AKM AK09918C Magnetometer 27- 2 TDK HVCi-4223 Cortex-M3 Dedicated Motor Controller 28- 3 TDK ICS-43434 Stereo Microphones 29- Connector for Industrial Dual IMU (TDK IIM-46230) 30- TDK CH101 Ultrasonic Range Sensor Array (9 Connectors, comes with 3) 31 32Supported Features 33================== 34 35The TDK RoboKit1 board supports the following hardware 36features: 37 38.. list-table:: 39 : header-rows: 1 40 41 * - Peripheral 42 - Kconfig option 43 - Devicetree compatible 44 * - GPIO 45 - :kconfig:option:`CONFIG_GPIO_SAM` 46 - :dtcompatible:`atmel,sam-gpio` 47 * - USART 48 - :kconfig:option:`CONFIG_USART_SAM` 49 - :dtcompatible:`atmel,sam-usart` 50 * - UART 51 - :kconfig:option:`CONFIG_UART_SAM` 52 - :dtcompatible:`atmel,sam-uart` 53 * - SPI 54 - :kconfig:option:`CONFIG_SPI_SAM` 55 - :dtcompatible:`atmel,sam-spi` 56 * - I2C 57 - :kconfig:option:`CONFIG_I2C_SAM_TWIHS` 58 - :dtcompatible:`atmel,sam-i2c-twihs` 59 * - I2S 60 - :kconfig:option:`CONFIG_I2S_SAM_SSC` 61 - :dtcompatible:`atmel,sam-ssc` 62 * - ADC 63 - :kconfig:option:`CONFIG_ADC_SAM_AFEC` 64 - :dtcompatible:`atmel,sam-afec` 65 * - DAC 66 - :kconfig:option:`CONFIG_DAC_SAM` 67 - :dtcompatible:`atmel,sam-dac` 68 * - PWM 69 - :kconfig:option:`CONFIG_PWM_SAM` 70 - :dtcompatible:`atmel,sam-pwm` 71 * - CAN 72 - :kconfig:option:`CONFIG_CAN_SAM` 73 - :dtcompatible:`atmel,sam-can` 74 * - USB 75 - :kconfig:option:`CONFIG_USB_DC_SAM_USBHS` 76 - :dtcompatible:`atmel,sam-usbhs` 77 * - WATCHDOG 78 - :kconfig:option:`CONFIG_WDT_SAM` 79 - :dtcompatible:`atmel,sam-watchdog` 80 * - NVIC 81 - N/A 82 - :dtcompatible:`arm,v7m-nvic` 83 * - SYSTICK 84 - N/A 85 - N/A 86 * - COUNTER 87 - :kconfig:option:`CONFIG_COUNTER_SAM_TC` 88 - :dtcompatible:`atmel,sam-tc` 89 * - DMA 90 - :kconfig:option:`CONFIG_DMA_SAM_XDMAC` 91 - :dtcompatible:`atmel,sam-xdmac` 92 * - ENTROPY 93 - :kconfig:option:`CONFIG_ENTROPY_SAM_RNG` 94 - :dtcompatible:`atmel,sam-trng` 95 * - HWINFO (reset cause) 96 - :kconfig:option:`CONFIG_HWINFO_SAM_RSTC` 97 - :dtcompatible:`atmel,sam-rstc` 98 * - HWINFO (device id) 99 - :kconfig:option:`CONFIG_HWINFO_SAM` 100 - N/A 101 102The default configuration can be found in the Kconfig 103:zephyr_file:`boards/tdk/robokit1/robokit1_defconfig`. 104 105Connections and IOs 106=================== 107 108The TDK RoboKit Hardware Guide has detailed information about board connections. 109 110System Clock 111============ 112 113The SAM E70 MCU is configured to use the 12 MHz external oscillator on the board 114with the on-chip PLL to generate a 300 MHz system clock. 115 116Serial Port 117=========== 118 119The ATSAME70Q21 MCU has five UARTs and three USARTs. One of the UARTs is 120configured for the console and is available as a Virtual COM Port via the USB2 connector. 121 122Programming and Debugging 123************************* 124 125Flashing the Zephyr project onto SAM E70 MCU requires the `OpenOCD tool`_. 126Both west flash and west debug commands should correctly work with both USB0 and USB1 127connected and the board powered. 128 129Flashing 130======== 131 132#. Run your favorite terminal program to listen for output. Under Linux the 133 terminal should be :code:`/dev/ttyACM0`. For example: 134 135 .. code-block:: console 136 137 $ minicom -D /dev/ttyUSB0 -o 138 139 The -o option tells minicom not to send the modem initialization 140 string. Connection should be configured as follows: 141 142 - Speed: 115200 143 - Data: 8 bits 144 - Parity: None 145 - Stop bits: 1 146 147#. Connect the TDK RoboKit1 board to your host computer using the 148 USB debug port (USB1), USB2 for a serial console, and remaining micro USB for 149 power. Then build and flash the :zephyr:code-sample:`hello_world` application. 150 151 .. zephyr-app-commands:: 152 :zephyr-app: samples/hello_world 153 :board: robokit1 154 :goals: build flash 155 156 You should see "Hello World! robokit1" in your terminal. 157 158Debugging 159========= 160 161You can debug an application in the usual way. Here is an example for the 162:zephyr:code-sample:`hello_world` application. 163 164.. zephyr-app-commands:: 165 :zephyr-app: samples/hello_world 166 :board: robokit1 167 :maybe-skip-config: 168 :goals: debug 169 170References 171********** 172 173TDK RoboKit1 Product Page: 174 https://invensense.tdk.com/products/robokit1-dk/ 175 176.. _OpenOCD tool: 177 http://openocd.org/ 178