Teensy 2.0 Running 3v3 @12Mhz Out of Spec?

Status
Not open for further replies.

colin

Member
I want to run the Teensy with 16Mhz crystal @3v3, however according to the micro controller datasheet the max operating frequency is 10Mhz @3v3. Does anyone have a comment about this?
 
Last edited:
Well, Paul has made these comments:

https://www.pjrc.com/teensy/3volt.html

The AVR processor is not specified to run faster than 8 MHz when running at 3.3 volts. Even though it often can operate at 16 MHz at room temperature, technically that's "overclocking". For best reliability, 8 MHz or slower should be used.
Using Arduino, you can change the speed your Teensy runs at using the Tools > CPU Speed menu.

You can use the on-board crystal. When you select the lower speed from the Tools > CPU Speed menu, it tells the Teensyduino startup code to configure the clock divider so the MCU runs at 8MHz instead of 16MHz. Unfortunately, though, it only divides in powers of two, so 10MHz isn't an option for Teensy 2.0. Your options are basically 16MHz, 8MHz, 4MHz, and 1 MHz. 8 MHz is still plenty fast for most uses though. If the difference between 8MHz and 10MHz is a problem, you should probably be using a Teensy 3.1 anyway (which runs at 3.3V to begin with).
 
Well, Paul has made these comments:

https://www.pjrc.com/teensy/3volt.html



You can use the on-board crystal. When you select the lower speed from the Tools > CPU Speed menu, it tells the Teensyduino startup code to configure the clock divider so the MCU runs at 8MHz instead of 16MHz. Unfortunately, though, it only divides in powers of two, so 10MHz isn't an option for Teensy 2.0. Your options are basically 16MHz, 8MHz, 4MHz, and 1 MHz. 8 MHz is still plenty fast for most uses though. If the difference between 8MHz and 10MHz is a problem, you should probably be using a Teensy 3.1 anyway (which runs at 3.3V to begin with).

Thanks Paul. If my English was better I would have written a more clearer post :(

What I was trying to say is that the Teensy as shipped has 16Mhz Crystal and is configured as 5v, and I want to configure it as 3v3, then I thought there may be a problem with CPU speed as at 3v3 being the max CPU clock is 10Mhz. I don't use Arduino environment, but I understand perfectly your recommendation to set the clock speed in my initialisation/startup code. I really don't know why I did not think of that myself!

Many thanks for your input :)
 
It will not work with an 8 MHz crystal the code as-is, but the code can be modified to make it work with an 8 MHz crystal.

However, there is NO REASON to switch to the 8 MHz crystal.

The maximum CPU speed is limited at lower voltage, but the crystal oscillator supports 16 MHz crystals, even at the lowest voltage. You only need to configure the CPU prescaler to run the CPU slower. A 16 MHz crystal is perfectly fine for lower voltage.
 
It will not work with an 8 MHz crystal the code as-is, but the code can be modified to make it work with an 8 MHz crystal.

However, there is NO REASON to switch to the 8 MHz crystal.

The maximum CPU speed is limited at lower voltage, but the crystal oscillator supports 16 MHz crystals, even at the lowest voltage. You only need to configure the CPU prescaler to run the CPU slower. A 16 MHz crystal is perfectly fine for lower voltage.

Sorry for the old topic post but this is essentially what I'm trying to do. I have a custom leonardo variant that has an 8mhz crystal. I've recompiled the bootloader for 8mhz and everything is working on that front. I'm using a custom hardware configuration so I can utilize the teensy usb device types https://github.com/fricklr/TeeOnArdu.

What doesn't work is after I flash firmware with the IDE I get the "unable to enumerate device" messages in linux. If I reset with the button the bootloader kicks in and I can flash firmware but it never comes back as a valid USB device.

The end goal is to be able to use the teensy serial libraries so I can detect DTR and RTS on the usb serial.
 
Status
Not open for further replies.
Back
Top