ATxmega128A1 did not work during BOD LEVEL change.

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

When I am setting BOD LEVEL of ATxmega128A1 from 1.6V to 3.0V, between ATxmega128A1 and JTAGICE3 was not able to communicate. The value of the voltage of Device Programming window is displayed with 3.3, but cannot communicate it at all.

 

When I set BOD LEVEL to 2.6V, ATxmega128A1 is worked.

 

Is the cause that change setting of the BOD LEVEL?

 

I would like the cause that did not change to have you instruct a method to solve whether it is level setting of the BOD by all means.

I would like a solution to tell me.

 

Thank you.

This topic has a solution.

kenji maehara

This reply has been marked as the solution. 
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

According to the datasheet there is no 3.0V BOD, only 3.2 and 3.4V.  Either way, especially considering the hysteresis, that's very unlikely to work properly around 3.3V.  Why not just leave it at 2.6V?

Last Edited: Thu. May 7, 2015 - 04:44 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Agreed.

 

Some data sheets go into greater detail than others regarding the BOD.

 

The BOD "levels" are NOT very precise.

 

One of the purposes of the BOD is to prevent erratic operation, or perhaps even corrupting the memory of the uC, as the power fails, (even with a normal turn off).

 

Setting the BOD at 2.6 will perform these tasks well.

 

The BOD does not need to be set to the upper level to work properly.

 

JC

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

Hi, Rezurok

 

Thank you for your reply.

After ATxmega128A1 with ATxmega128A1U the writhing setting of BODLVL , I understood that it was different in seven phases of set points .

 

              

I did not know this difference.

Even if a writing was ATxmega128A1, I used ATxmega128A1U in Device programing function.

 

Thank you.

 

 

 

 

kenji maehara

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

Hi JC,

Thank you for your reply.I have discarded some ATxmega128A1 by setting of this BODLVL.

But a cause became clear I think.

 

Thank you for your advice.

 

 

kenji maehara

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

Blackzoro,

 

You can "recover" the microcontroller so that it works again.

 

Attach a variable voltage power supply to the PCB.

SLOWLY turn up the voltage until it is greater than the BOD level.  (3.3 V, 3.4 V, 3.5 V, 3.6 V)

Do not turn the voltage above 3.6 V !

When the voltage is greater that the BOD level the microcontroller will work again, and you can reset the BOD Fuse to a lower voltage.

 

Make sure, however, that the other components on the PCB can take 3.6 V before you do this.

 

Take care,

 

JC

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

I believe the 128a1 was the first and buggiest Xmega.  I would use the U version whenever possible.

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

DocJC wrote:

One of the purposes of the BOD is to prevent erratic operation, or perhaps even corrupting the memory of the uC, as the power fails, (even with a normal turn off).

Won't a BOD of 1.6 volts do this job?

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

Yes, at least for most normal operations.

 

The hard core chip designers can pitch in here, but I think the nitty gritty fine points entail the internal operations when an eeprom write or other memory write is already taking place when the glitch / power failure occurs.

Using a higher BOD setting might afford a slightly better safety margin.

 

That said, on mission critical designs one might write the data to several locations, with an error detecting and error correcting scheme, and one might have a "Power Good" power supply monitor signal which one checks before writing to the memory.  If the Power Good signal is good, then there will be at least enough energy left, as the power fails, to finish the current (or about to be started) write operation, (safely).

 

But this definitely isn't my area of expertise.

 

JC