Teensy 4.0 Development Board
Teensy 4.0 features ARM Cortex-M7 processor at 600 MHz with NXP iMXRT1062 chip, the fastest microcontroller available today. Teensy 4.0 has the same size and shape as Teensy 3.2 and retains compatibility with most of the pin functions on Teensy 3.2.
When operating at 600 MHz, the Teensy 4.0 consumes about 100mA of current. Teensy 4.0 provides support for dynamic clock scaling. Unlike traditional microcontrollers where changing the clock rate causes false baud rates and other problems, Teensy 4.0 hardware and Teensyduino's software support for Arduino timing functions are designed to allow for speed changes dynamically. Serial baud rates, audio stream sample rates, and Arduino functions like delay() and millis(), and Teensyduino extensions like IntervalTimer and elapsedMillis continue to work properly while the CPU is changing speed. Teensy 4.0 also provides a power off feature. By connecting a button to the On/Off pin, the 3.3 V power supply can be completely disabled by holding the button for 5 seconds and turned back on with a short press of the button. If a coin cell is connected to the VBAT, the Teensy 4.0's RTC continues to keep track of the date and time even when the power is off. Also, Teensy 4.0 can be overclocked well beyond 600MHz!
ARM Cortex-M7 brings many powerful CPU features to a true real-time microcontroller platform. The Cortex-M7 is a dual output superscaling processor, meaning the M7 can execute two instructions per clock cycle at 600 MHz! Of course, executing both at the same time depends on compiler ordering instructions and registers. Initial benchmarks have shown that C++ code compiled by Arduino tends to hit two instructions about 40% to 50% of the time, while performing computationally intensive work using integers and pointers. Cortex-M7 is the first ARM microcontroller to use branch prediction. In M4, loops and other code with most branches take three clock cycles. With M7, after a loop has been executed several times, the branch prediction removes this overhead, allowing the branch instruction to run in just a single clock cycle.
Tight Coupling Memory is a special feature of the Cortex-M7 that allows fast single loop access to memory using a dual 64-bit wide bus. The ITCM bus provides a 64-bit path to fetch instructions. The DTCM bus is essentially a dual 32-bit bus, allowing the M7 to perform up to two separate memory accesses in the same cycle. These extremely high speed buses are separate from the M7's main AXI bus, which accesses other memory and peripherals. 512K memory is accessible as tightly coupled memory. Teensyduino automatically allocates your Arduino sketch code to ITCM and all non-malloc memory usage to fast DTCM unless you add extra keywords to override the optimized default. Memory not accessed on tightly coupled buses is optimized for DMA access by peripherals. Because most of the M7's memory access is done on two tightly coupled buses, Teensy 4.0's Cortex-M7 processor includes a floating point unit (FPU) that supports both 64-bit doubles and 32-bit floats. The M4's FPU on the Teensy 3.5 and 3.6 as well as Atmel SAMD51 chips are only 32-bit floating point hardware accelerated. Any use of double, double functions like log(), sin(), cos() means slow software applying math. Teensy 4.0 handles all this with FPU hardware.
Product sizes:
Teensy 4.0 Development Board Technical Specifications:
- ARM Cortex-M7 at 600MHz
- 1024K RAM (512K tightly coupled)
- 2048K Flash (64K reserved for recovery and EEPROM emulation)
- 2 USB ports, both 480MBit/s
- 3 CAN Bus (1 with CAN FD)
- 2 I 2 S Digital Audio
- 1 S/PDIF Digital Audio
- 1 SDIO (4 bit) local SD
- 3 SPIs, all with 16-word FIFO
- 3 I 2 C, all with 4 byte FIFO
- 7 Series, all with 4-byte FIFO
- 32 general purpose DMA channels31 PWM pins
- 40 digital pins, all with interrupt14 analog pins, 2 ADCs on the chip
- Cryptographic Acceleration
- random number generator
- RTC for date/time
- Programmable FlexIO
- Pixel Render Pipeline
- Peripheral cross-trigger
- Power On/Off management