[BCM20737] May I use other GPIOs as Write Protection of EEPROM instead of P1?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Hi,

In our board, we want to use P1 as puart_rts. This is the only pin for it.

Can we use P13, P14 as WP?

And LED, may I use P12 instead of P14 as LED?

Thank you.

Message was edited by: Jeffrey Wang

0 Likes
4 Replies
JacobT_81
Employee
Employee
250 replies posted 100 replies posted 50 replies posted

You don't need to have a write protect pin at all. Just pull it high or low on your EEPROM chip depending on what state is active. Toggling of P1 will occur in the boot up/download process regardless, I don't personally know of any way around that. But after boot the pin is all yours to use.

Just expect some garbage data on the PUART during boot.

If you reference the datasheet, there are a few pins that can drive additional current, those are recommended for LEDs. A very small LED, however will be fine on the other pins. Yet a very large LED may even overdraw the expanded 16mA pins.

Jacob

0 Likes
Anonymous
Not applicable

Jacob:

Thank you very much for your reply.

I'm concerned EEPROM maybe corrupted it it's always write-enabled.

I feel P1 will be toggled every time I write to NVRAM, e.g. bleprofile_WriteNVRAM(), right?

It seems that I can use P1 as WP and puart_rts at the same time, I may get some data on puart_rx when writing to NVRAM.

0 Likes
JacobT_81
Employee
Employee
250 replies posted 100 replies posted 50 replies posted

One possibility to protect from corruption would be to attach your WP pin to another GPIO (13 or 14) and toggle those just prior to every EEPROM write.

This wouldn't fix the problem of getting garbage on the PUART when you write EEPROM. That can only be fixed by writing your own low-level driver to interface to the EEPROM using raw i2c reads/writes. This is a lot of work but safe if you don't try to write into off-limits memory locations. *this won't fix garbage on PUART at boot up. Boot up will always use its own driver and you can't turn off WP without editing extremely low level code in the stack.

Jacob

0 Likes
MichaelF_56
Moderator
Moderator
Moderator
250 sign-ins 25 comments on blog 10 comments on blog

P1/Pin 25 is tied to the WC (Write Protect) pin of the EEPROM that is internal to the module.

EEPROM Write Protect pin - active high or low?

It's my understanding that that flow control is not available via the PUART on the module.  This is why the RTS pin was removed a while back as a GPIO option within the datasheet.

0 Likes