What BOD guarantees?

Go To Last Post
13 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I need some clarification about what Atmel tries to explain in the datasheets..

Introduction (lengthy but necessary) :
Every AVR with BOD has a table with BOD threshold fuse settings voltages (aka V_bot). Some models have min/typical/max values given (like m16), while some (like usb162) give only typical values (whatever "typical" means).

Additionally Atmel performs one (tn2313, usb162), two(m1284p), three(m329A) etc. production BOD tests with each chip and they give information that even if V_bot is lower than that presented on "Speed vs. Vcc" chart, chip passed the test an is still guaranteed to be operational down to V_bot, whatever that voltage really is.

The problem is in most of the datasheets they do not give the information on how fast the chip was clocked in these tests and what Atmel really guarantees.

QA:
Example:ATMega32A rev.B, page 299:
https://www.avrfreaks.net/modules...
ATMega32A speed grades chart is given as 8MHz at min. 2,7V and 16MHz with 4,5V (to 5,5V). Linear in between 2,7V and 4,5V.
With which F_CPU did they test the chip? If "typical voltage"=="test voltage" of 4V, I cannot clock m32A more than 13,7MHz with this BOD then.

QB:
I can buy a bunch of m329A (lowest V_bot, varies from 1.7V to 2V, 1.8V typical) and select those chips which are BOD reset at 1.7V (4MHz, including EEPROM/FLASH programming and ADC?). And among those there are some chips with BOD triggered with 2V (those still are guaranteed to be operational at 1.8V@4MHz, but without this BOD). If chips differ only in V_bot and chips do work at 1,7V@4MHz, why didn't Atmel specify it on the first page?

QC:
AT90USBxx2 and MegaxU2 series operating voltage range.

I am building a USB device with AT90USB162 chip. It is going to be high-power bus-powered (which means it must be USB operational down to 4,4V on upstream port plug when not configured and down to 4,75V when configured):

USB 2.0, chapter 7.1.2.4 wrote:
High-power functions must be capable of operating in their low-power (one unit load) mode with an input voltage as low as 4.40 V,(...) They must also be capable of operating at full power (up to five unit loads) with a VBUS voltage of 4.75 V

Another of my requirements is I need to run the core with a 16MHz clock while in high-power mode (when it is configured and device draws full current of 0,5A). So the 16MHz quartz is inevitable.

I can run cpu with lower clock (divide by 2) when it is not configured yet and to switch to 16MHz afterward. The problem is this device does not have a BOD setting, which guarantees a 16MHz operation (4,5V minimum is needed) as the highest setting triggers from 4.1V to 4.5V with "typical" at 4,3V. I cannot build a device which runs from 13MHz to 16MHz with "typical" F_CPU about 14,5MHz..

Modern models (U2 series) are tested with "typical" V_bot at 4,3V which falls somewhere below 15MHz.. Great, because USB is not operational then.

Can somebody explain how to use these USB chips within specification limits? Do I need a switched two level external BOD for that?

Attachment(s): 

No RSTDISBL, no fun!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
datasheets they do not give the information on how fast the chip was clocked
I don't think I understand what the clock has to do with the BOD. The BOD is simply an analog circuit that gives a 1 or 0 on it's output depending on the threshold selected (+- tolerances) to keep the chip in reset mode if the voltage is or falls below the threshold.

So if you select a 2.7V typical threshold it can trip anywhere between 2.5V and 2.9V which would be ok if VCC is 3.3V.

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I think the question was along the lines of "suppose I have a clock frequency suitable for a given supply voltage. Will it continue to clock properly if the BOD is set to the threshold appropriate for the voltage?".To use John's example, suppose I set the clock at the maximum appropriate for 3.3V supply, and the BOD could be as low as 2.7V, will the chip continue to function correctly down to 2.701V?

Me, personally, I would choose a clock rate that is guaranteed to run at the lowest possible BOD, and be done with it.

Jim

 

Until Black Lives Matter, we do not have "All Lives Matter"!

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

It seems the combination of wanting to run the AVR at 16MHz and wanting to comply to all specs is difficult. Maybe the reason the USBKey runs at only 8MHz. Though it runs happily at 16MHz (I tried), that's seriously overclocking it.

You could add a buck/boost convertor, so the voltage is always high enough to run at 16MHz and stay within all specs. But that a bit of over-engineering.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I have just noticed I didn't post a complete description of m32A V_bot note above. Here it is:

ATMega32A ref. B p.299 wrote:
VBOT may be below nominal minimum operating voltage for some devices. For devices where this is the case, the device is tested down to VCC = VBOT during the production test. This guarantees that a Brown-out Reset will occur before VCC drops to a voltage where correct operation of the microcontroller is no longer guaranteed. The test is performed using BODLEVEL = 1 and BODLEVEL = 0 for ATmega32A.

As I wrote, from chip to chip, there are BOD settings wrt F_CPU which are:

    - guaranteed (under unknown F_CPU conditions) and tested during production (like m32A given above) - guaranteed and tested under known F_CPU conditions (like in mXX0/mXX1/V given below)
    - those untested during production(and thus not guaranteed) (like all except first V_bot of usb162).
These are completely separate BOD categories IMHO.

js wrote:
So if you select a 2.7V typical threshold it can trip anywhere between 2.5V and 2.9V which would be ok if VCC is 3.3V.

You did not specify the chip (hope it is not usb162 or m32A which lack tested F_CPU information).
Lets suppose we consider a relatively complete ATmega640/1280/1281/2560/2561 BOD datasheet, revision N, page 337:
https://www.avrfreaks.net/modules...
and a note below the table:
Atmel wrote:
VBOT may be below nominal minimum operating voltage for some devices. For devices where this is the case, the device is tested down to VCC = VBOT during the production test. This guarantees that a Brown-Out Reset will occur before VCC drops to a voltage where correct operation of the microcontroller is no longer guaranteed. The test is performed using BODLEVEL = 110 for 4MHz operation of ATmega640V/1280V/1281V/2560V/2561V, BODLEVEL = 101 for 8MHz operation
of ATmega640V/1280V/1281V/2560V/2561V and ATmega640/1280/1281, and BODLEVEL = 100 for 16MHz operation of ATmega640/1280/1281/2560/2561.

From this you can infer that for example ATMega640V is guaranteed to run correctly at 8MHz clock and BODLEVEL=101 (mind it has nothing to do with 8MHz RC which varies +-10% and the chip is not guaranteed to be operational with RC and this BOD then).

So:

    QA1. Which F_CPU the chip is guaranteed to work correctly for the BOD fuse setting in case the setting was not tested or was tested under unknown F_CPU conditions (90% of BOD datasheets do not specify F_CPU)? QA2. Which V_bot do you pick for F_CPU calculations: maximal,typical or minimal?

Attachment(s): 

No RSTDISBL, no fun!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

jayjay1974 wrote:
Maybe the reason the USBKey runs at only 8MHz. Though it runs happily at 16MHz (I tried), that's seriously overclocking it.

AT90USB64/128 rev. J.
If you have an external BOD triggered at or above 4,5V then that is fine and Atmel guarantees the chip will work at 16MHz. But if you use an internal BOD (none of it's settings is guaranteed to work at specified F_CPU, only min/max voltages are given) the highest BOD setting can trigger below 4.1V and that is clearly out of the chip's specification (aka overclocking).

And if you use AT90USB128x running at 8MHz with the lowest BOD setting, then it can trigger at 2.4V on some chips. Since Atmel didn't test it and they do not guarantee a correct operation of this chip at 8MHz and 2,4V then the case is exactly the same - overclocking IMHO.

Violating specification parameters. Good for school projects, but not for commercial product.

No RSTDISBL, no fun!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
You did not specify the chip
I referred to bit of the datasheet of M32a you posted above.
Quote:
Which V_bot do you pick for F_CPU calculations
Minimal or less.
Quote:
90% of BOD datasheets do not specify F_CPU
Maybe because, as I understand a BOD and I could be wrong, the F_CPU has nothing to do with the BOD as I explained above.

For more than 15 years I used external BOD chips because the processor I was using did not have a BOD built in them, it was just a pretty precise voltage comparator and it would work the same regardless of the micro's F_CPU or even if the micro was not present.

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

js wrote:
Minimal or less.

You pick an F_CPU for the design, then check the minimal voltage when the chip is guaranteed to work. Afterward you search a V_bot min column of BOD settings. If there is a setting which meets your criteria - you pick that one.
OK. That is what Atmel guarantees - your chip is going to work correctly.. If it does not - you send it back to Atmel.

But there is something I do not get in your method. What about m32A BODLEVEL=1? Minimal V_bot gives 2.4V and there is no such F_CPU this BOD could be used.

js wrote:
Maybe because(..) F_CPU has nothing to do with the BOD as I explained above.

The BOD is placed there in purpose. I need to know which BOD to pick for my F_CPU.

What is the point putting the BOD which triggers at 2,4V in ATMega32A?
Is the setting useless in your opinion?

No RSTDISBL, no fun!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
What is the point putting the BOD which triggers at 2,4V in ATMega32A?
That chip works from 2.7V-5.5V so a 2.4V BOD is suitable for a 2.8V-3.3V VCC. So 8MHz or even a bit higher could be used with those lower VCC and a 2.7V BOD.

With this chip you only have a choice of 2 BOD levels 2.7 or 4V.

And if this is a for a NEW commercial procduct why are you using an old chip like the M32?

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Brutte is hand-wringing about the situation where the supply voltage is at e.g. 2.5V, out-of-spec, and the BOD detector has not tripped.

Woe is me. The sky is falling. Repent, the end is near.

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
Brutte is hand-wringing about the situation where the supply voltage is at e.g. 2.5V, out-of-spec, and the BOD detector has not tripped.

Quote:
VBOT may be below nominal minimum operating voltage for some devices. For devices where this is the case, the device is tested down to VCC = VBOT during the production test. This guarantees that a Brown-out Reset will occur before VCC drops to a voltage where correct operation of the microcontroller is no longer guaranteed.

Brute, a lawyer would keep arguing about this issue. An engineer would take a pen and a line, extrapolate that graph and find out that at 2.5V the max frequency would be around 6 - 7 MHz.
Disable the BOD and go down with the voltage and see where it starts to behave weird. If the part satisfy or not your project requirements it is your decision. I doubt Atmel would change the data sheet for you.

George.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thanks for input first of all.

js wrote:
That chip works from 2.7V-5.5V so a 2.4V BOD is suitable for a 2.8V-3.3V VCC.

Of course there is no point discussing about BOD if Vcc is from 2.8V to 3.3V - you do not need a BOD (for 8MHz) at all, as it never triggers within this range. BOD is only useful when the lower voltage range is below "Speed vs. Vcc" specification IMHO.

If that is what you meant - I do not understand how from the information the chip runs from 2,7V(but not below) @ 8MHz it is ok for you to run it at 2,4V

js wrote:
So 8MHz or even a bit higher could be used

and at 8MHz or even higher. How is that possible?

Is there additional datasheet/AN provided by Atmel where this running out of specification is mentioned?

js wrote:
And if this is a for a NEW commercial procduct

It is a general question. I want to know what I pay for. If Atmel sells the chips but is not sure about BOD or they found out BOD is actually useless and they are giving it for free, then I am not going to buy those chips because there are other companies which know what they make, how their products work and what BOD is for.

js wrote:
With this chip you only have a choice of 2 BOD levels 2.7 or 4V.

I do not care how many BOD levels the chip has as long as it has the one I need.
Obviously you are mentioning BOD setting of 2,7V or 4V - all of them trigger within V_bot range form 2,4V to 2,9V and form 3,6V to 4,2V from chip to chip respectively.

theusch wrote:
Woe is me. The sky is falling. Repent, the end is near.

No, we are just discussing overclocking techniques. Sorry, I misspelled the topic name :)

angelu wrote:
Brute, a lawyer would keep arguing about this issue.

What about 20MHz? Which voltage is suitable? Your proposition is out of specification (under-voltage techniques).

angelu wrote:
Disable the BOD and go down with the voltage and see where it starts to behave weird.

For a school project that is ok. But I am not talking about school project, but a product. I do not want the chip to overwrite its EEPROM whenever somebody plugs it out.

No RSTDISBL, no fun!

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'm sorry but I'm out, I obviously do not understand what you want to do, it may be clear for you but not for me. :)

Quote:
and at 8MHz or even higher. How is that possible?
Because that's what the datasheet shows for 2.7V. So if you are running at 3.3V it is safe to run at maybe 10MHz from the graph.

If you want to run at 16MHz then you will need at least 4.5V

27.3 Speed Grades page 299 of the datsheet for the Mega32A.

John Samperi

Ampertronics Pty. Ltd.

www.ampertronics.com.au

* Electronic Design * Custom Products * Contract Assembly