Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

boards: teensy4: Update documentation #78593

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
242 changes: 174 additions & 68 deletions boards/pjrc/teensy4/doc/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,72 +5,100 @@ PJRC TEENSY 4

Overview
********

The Teensy is a complete USB-based microcontroller development system, in a
very small footprint, capable of implementing many types of projects. All
programming is done via the USB port.

.. tabs::

.. group-tab:: Teensy 4.0

.. figure:: img/teensy40.jpg
:align: center
:alt: TEENSY40

.. figure:: teensy40.jpg
:align: center
:alt: TEENSY40
(Credit: https://www.pjrc.com)

TEENSY40 (Credit: https://www.pjrc.com)
.. group-tab:: Teensy 4.1

.. figure:: teensy41.jpg
:align: center
:alt: TEENSY41
.. figure:: img/teensy41.jpg
:align: center
:alt: TEENSY41

TEENSY41 (Credit: https://www.pjrc.com)
(Credit: https://www.pjrc.com)

Hardware
********

Teensy 4.0:
.. tabs::

.. group-tab:: Teensy 4.0

- MIMXRT1062DVL6A MCU (600 MHz, 1024 KB on-chip memory)
- 16 Mbit QSPI Flash
- User LED
- USB 2.0 host connector

See the `Teensy 4.0 Website`_ for a complete hardware description.

- MIMXRT1062DVL6A MCU (600 MHz, 1024 KB on-chip memory)
- 16 Mbit QSPI Flash
- LED
- USB 2.0 host connector
.. group-tab:: Teensy 4.1

Teensy 4.1:
- MIMXRT1062DVJ6A MCU (600 MHz, 1024 KB on-chip memory)
- 64 Mbit QSPI Flash
- User LED
- USB 2.0 host connector
- USB 2.0 OTG connector
- 10/100 Mbit/s Ethernet transceiver
- TF socket for SD card

- MIMXRT1062DVJ6A MCU (600 MHz, 1024 KB on-chip memory)
- 64 Mbit QSPI Flash
- LED
- USB 2.0 host connector
- USB 2.0 OTG connector
- 10/100 Mbit/s Ethernet PHY
- TF socket for SD card
To connect an Ethernet cable, additional `Teensy 4.1 Ethernet Kit`_ is required.

See the `Teensy 4.0 Website`_ for a complete hardware description.
See the `Teensy 4.1 Website`_ for a complete hardware description.

For more information, check the `i.MX RT1060 Datasheet`_.

Supported Features
==================

The teensy40 board configuration supports the following hardware
The Teensy 4.0 board configuration supports the following hardware
features:

+-----------+------------+-------------------------------------+
| Interface | Controller | Driver/Component |
+===========+============+=====================================+
| NVIC | on-chip | nested vector interrupt controller |
+-----------+------------+-------------------------------------+
| SYSTICK | on-chip | systick |
+-----------+------------+-------------------------------------+
| GPIO | on-chip | gpio |
+-----------+------------+-------------------------------------+
| I2C | on-chip | i2c |
+-----------+------------+-------------------------------------+
| UART | on-chip | serial port-polling; |
| | | serial port-interrupt |
+-----------+------------+-------------------------------------+
| USB | on-chip | USB device |
+-----------+------------+-------------------------------------+

The default configuration can be found in
:zephyr_file:`boards/pjrc/teensy4/teensy40_defconfig`

The teensy41 board configuration supports additional hardware
+-----------+------------+----------------------+
| Interface | Controller | Driver/Component |
+===========+============+======================+
| ADC | on-chip | adc |
+-----------+------------+----------------------+
| CLOCK | on-chip | clock_control |
+-----------+------------+----------------------+
| FLASH | on-chip | flash |
+-----------+------------+----------------------+
| GPIO | on-chip | gpio |
+-----------+------------+----------------------+
| I2C | on-chip | i2c |
+-----------+------------+----------------------+
| I2S | on-chip | i2s |
+-----------+------------+----------------------+
| NVIC | on-chip | arch/arm |
+-----------+------------+----------------------+
| PWM | on-chip | pwm |
+-----------+------------+----------------------+
| RTC | on-chip | system clock |
+-----------+------------+----------------------+
| SPI | on-chip | spi |
+-----------+------------+----------------------+
| CAN | on-chip | can |
+-----------+------------+----------------------+
| UART | on-chip | serial |
+-----------+------------+----------------------+
| USB | on-chip | usb |
+-----------+------------+----------------------+
| TRNG | on-chip | entropy |
+-----------+------------+----------------------+
| WDT | on-chip | watchdog |
+-----------+------------+----------------------+

The Teensy 4.1 board configuration supports additional hardware
features:

+-----------+------------+-------------------------------------+
Expand All @@ -81,10 +109,7 @@ features:
| ENET | on-chip | ethernet |
+-----------+------------+-------------------------------------+

The default configuration can be found in
:zephyr_file:`boards/pjrc/teensy4/teensy41_defconfig`

Other hardware features are not currently supported by the port.
Other hardware features have not been enabled yet for this board.

Connections and IOs
===================
Expand Down Expand Up @@ -204,23 +229,107 @@ Programming and Debugging

Flashing
========
Build applications as usual (see :ref:`build_an_application` for more details).

Flash hex-file with the documented tools:
Both the Teensy 4.0 and Teensy 4.1 ship with a dedicated bootloader chip,
which supports flashing using USB. This allows easy flashing of new images,
but does not support debugging the device.

#. Build the Zephyr kernel and the :zephyr:code-sample:`blinky` sample application.

.. tabs::

.. group-tab:: Teensy 4.0

.. zephyr-app-commands::
:zephyr-app: samples/basic/blinky
:board: teensy40
:goals: build
:compact:

.. group-tab:: Teensy 4.1

.. _Teensy flash tools:
https://www.pjrc.com/teensy/loader.html
.. zephyr-app-commands::
:zephyr-app: samples/basic/blinky
:board: teensy41
:goals: build
:compact:

Debugging
=========
Console output is mapped to teensy pins 0 (RX1) and 1 (TX1). Connect a usb-to-serial adapter
to use this serial console. Use the following settings with your serial terminal of choice (minicom, putty,
etc.):
#. Connect the board to your host computer using USB.

- Speed: 115200
- Data: 8 bits
- Parity: None
- Stop bits: 1
#. Tap the reset button to enter bootloader mode.
Red LED blinks.

#. Flash the image.

.. tabs::

.. group-tab:: Teensy 4.0

.. zephyr-app-commands::
:zephyr-app: samples/basic/blinky
:board: teensy40
:goals: flash
:compact:

.. group-tab:: Teensy 4.1

.. zephyr-app-commands::
:zephyr-app: samples/basic/blinky
:board: teensy41
:goals: flash
:compact:

#. You should see the orange LED blink.

Configuring a Console
=====================

.. tabs::

.. group-tab:: UART-Console

By default console output is mapped to teensy pins 0 (RX1) and 1 (TX1). Connect a usb-to-serial adapter
to use this serial console. Use the following settings with your serial terminal of choice (minicom, putty,
etc.):

- Speed: 115200
- Data: 8 bits
- Parity: None
- Stop bits: 1

.. group-tab:: USB-Console

By mapping the console output to USB, a usb-to-serial adapter is no longer required.
Utilizing the :ref:`snippet-cdc-acm-console` and two additional steps will enable this feature.

#. Add these lines to your devicetree, e.g. ``teensy41.overlay``.

.. code-block:: devicetree

&zephyr_udc0 {
cdc_acm_uart0: cdc_acm_uart0 {
compatible = "zephyr,cdc-acm-uart";
};
};

#. If application code doesn´t enable USB device support, this must be done via Kconfig option.

.. code-block:: kconfig

CONFIG_USB_DEVICE_INITIALIZE_AT_BOOT=y

#. Build application including the snippet.

.. zephyr-app-commands::
:zephyr-app: samples/basic/blinky
:snippets: cdc-acm-console
:board: teensy41
:goals: flash
:compact:

#. After application startup a serial device named like
``tty.usbmodem14203`` should appear on your host computer.
You can use e.g. ``Serial Monitor`` plugin for VScode to monitor.

References
**********
Expand All @@ -230,14 +339,11 @@ References
.. _Teensy 4.0 Website:
https://www.pjrc.com/store/teensy40.html

.. _Teensy Schematics:
https://www.pjrc.com/teensy/schematic.html
.. _Teensy 4.1 Website:
https://www.pjrc.com/store/teensy41.html

.. _i.MX RT1060 Website:
https://www.nxp.com/products/processors-and-microcontrollers/arm-based-processors-and-mcus/i.mx-applications-processors/i.mx-rt-series/i.mx-rt1060-crossover-processor-with-arm-cortex-m7-core:i.MX-RT1060
.. _Teensy 4.1 Ethernet Kit:
https://www.pjrc.com/store/ethernet_kit.html

.. _i.MX RT1060 Datasheet:
https://www.nxp.com/docs/en/nxp/data-sheets/IMXRT1060CEC.pdf

.. _i.MX RT1060 Reference Manual:
https://www.nxp.com/webapp/Download?colCode=IMXRT1060RM