i just started working with an arduino Zero.
i am going to use the SAMD-Processor for a product development and therfore i would like to reduce its powersupply from 3.3V to 2.8V.
I read in the datasheet, that it should be possilbe to run that processor down to 1.8V!?
i know that topic from the UNO (ATMEGA328p), that with lower voltage, the maximum cpu frequency must be decreased to keep it stable.
i was not able to find any information like that for this processor?
another thing is the brown out detection.
for the ATMEGA328p it can be adopted by the fuse-settings in the board file.
how does that work for the SAMD?
i found some information about BOD in the datasheet, but i dont know how to disable it with the arduino-IDE?
is there anything else to consider, when reducing the supply voltage of the processor?
Why don't you try and then upload the results? The proof of the pudding is in the eating....
From the datasheet 37.13. :
- The operating voltages must be 3.3V (Min. 3.0V, Max. 3.6V).
I think that's the only peripheral needing that much voltage, others should work fine at 2.8V (including 48MHz clock)
i am going to try it, of course, but with activated BOD at 3V, i am pretty sure, it will not work on 2V8 ...
i used a pretty bare TAU-board for my test. it only has a 3V3 regulator, a 32Khz crystal and a samd-processor.
i run the blink-sample and reduced the operating voltage ...
under around 2.6V it seems to get unstable. The LED stopped blinking after some time, and did not restart automatically!? restart the board, and it is blinking a few times until it stopped again.
but with around 2.8V and higher, it was pretty stable and does not stop blinking.
so finally, it looks like the BOD of 3V is disabled by default - nice.
i dont know how to come down to 1V8!? but luckily thats not necessary for me :-)
so, for me its ok like that at the moment.
You can change the fuses with an ICE and Atmel Studio. They are documented in the datasheet in the "Table 10-4. NVM User Row Mapping". The 64 bits correspond to the USER_WORD_0 (32 LSbits) and USER_WORD_1 (32 MSbits) section in the fuse setting in Atmel Studio.
There is also a method to change the fuse from application code, but I haven't tested this :
thanks for that link!
really great to have a method in the backpack to change fuse settings by application code.
that might be helpful for future upcoming tasks.