Forums

Atmel T89C51CC01 PSEN pin, bootloader

Started by Paul Smith January 24, 2004
Part data sheet and CAN bootloader documentation recommend "releasing" 
PSEN before the end of RESET when using PSEN=0 as the "hardware 
condition" forcing the on chip CAN bootloader to execute.

The Atmel Demo board just has a DIP switch to ground to force PSEN=0; it 
  doesn't "release".  Even though the Demo board doesn't use PSEN as an 
output, shorting this pin to ground must not be a good idea.

Does anyone have a practical circuit to properly drive and release the 
PSEN pin?  The data sheet is pretty vague about the properties of this 
pin during the brief time it is an input.  How about grounding it 
through a resistor? value?

Can the on-chip CAN bootloader be used to boot more than one T89C51CC01 
on a CAN segment?  If not, what is the best way to boot/ISP a bunch of 
these parts on the same CAN bus segment?  They will all get identical 
code loaded into them.

TIA!!

Paul Smith
Indiana University Physics

Hi.

PSEN has to be pulled low during microcontroller power up
so it has to be pulled low until some time after reset signal
becomes inactive.

The thing is you have to pull PSEN signal low then reset the
microcontroller, and when microcontroller wakes-up (in bootloader)
you can release the PSEN line, but it doesn't have any function as
you won't be accessing external ROM memory for which PSEN signal
is needed.

I have external device (with 80C52) which when PC sends request to program
the target device (FLIP) it generates hardware conditions for target to boot
up in
bootloader (PSEN low) and resets the target. I'm working with serial
bootloader.

I'm not sure if you can simultanleously program many devices because they
send
some kind of echo during programming and those signals would colide then.

I think this particular device sends '.' when command requested during
programming
mode has been executed sucessfuly.

"Paul Smith" <ptsmith@nospam.indiana.edu> wrote in message
news:VQnQb.141$h86.49393@monger.newsread.com...
> Part data sheet and CAN bootloader documentation recommend "releasing" > PSEN before the end of RESET when using PSEN=0 as the "hardware > condition" forcing the on chip CAN bootloader to execute. > > The Atmel Demo board just has a DIP switch to ground to force PSEN=0; it > doesn't "release". Even though the Demo board doesn't use PSEN as an > output, shorting this pin to ground must not be a good idea. > > Does anyone have a practical circuit to properly drive and release the > PSEN pin? The data sheet is pretty vague about the properties of this > pin during the brief time it is an input. How about grounding it > through a resistor? value? > > Can the on-chip CAN bootloader be used to boot more than one T89C51CC01 > on a CAN segment? If not, what is the best way to boot/ISP a bunch of > these parts on the same CAN bus segment? They will all get identical > code loaded into them. > > TIA!! > > Paul Smith > Indiana University Physics >
"Paul Smith" <ptsmith@nospam.indiana.edu> wrote in message
news:VQnQb.141$h86.49393@monger.newsread.com...
> Part data sheet and CAN bootloader documentation recommend "releasing" > PSEN before the end of RESET when using PSEN=0 as the "hardware > condition" forcing the on chip CAN bootloader to execute. > > The Atmel Demo board just has a DIP switch to ground to force PSEN=0; it > doesn't "release". Even though the Demo board doesn't use PSEN as an > output, shorting this pin to ground must not be a good idea. > > Does anyone have a practical circuit to properly drive and release the > PSEN pin? The data sheet is pretty vague about the properties of this > pin during the brief time it is an input. How about grounding it > through a resistor? value? > > Can the on-chip CAN bootloader be used to boot more than one T89C51CC01 > on a CAN segment? If not, what is the best way to boot/ISP a bunch of > these parts on the same CAN bus segment? They will all get identical > code loaded into them. > > TIA!! > > Paul Smith > Indiana University Physics >
I use a MOSFET of 2N7000 type tied bewteen GND and PSEN. Gate is connected to RESET line via jumper and pulled to GND by 10K resistor. If I want to boot normally, I pull out jumper. When I want bootloader start, I insert jumper...Simple. CAN bootloader CAN boot up to 8 devices. But first time you use it, device MUST be alone on the bus for proper configuration. There's app.note on ATMEL's site about CAN bootloader...Read it. regards Dejan
"Paul Smith" wrote ...
> Part data sheet and CAN bootloader documentation recommend "releasing" > PSEN before the end of RESET when using PSEN=0 as the "hardware > condition" forcing the on chip CAN bootloader to execute.
Release before? Isn't it latched on the falling edge of RESET?
> The Atmel Demo board just has a DIP switch to ground to force PSEN=0; it > doesn't "release". Even though the Demo board doesn't use PSEN as an > output, shorting this pin to ground must not be a good idea. > > Does anyone have a practical circuit to properly drive and release the > PSEN pin? The data sheet is pretty vague about the properties of this > pin during the brief time it is an input. How about grounding it > through a resistor? value?
I think the pulldown resistor is a good idea. When the PSEN- pin stays grounded it draws a lot of current (I've seen up to 50mA extra supply current with some chips which is enough to cause metal migration). Assuming that during RESET this pin has the same weak pullup as the other pins, a 1 kOhm to GND would be low enough, but a check with a scope during the RESET release is advised. Regards, Arie de Muynck