Ultra low current pulse generator (for BLE module interrupt)

bluetooth low energyleakage-currentlow-powerpulsesignal

At the moment I'm working on a project with at BLE-module. This module is based on the CC2541 from TI. I want the BLE-module to permanently transmit a signal.

This module has two modes: a level- and pulse-enabled mode.

The level mode is basically using an enable pin (EN-pin). When pulled to GND the module will transmit. The problem is that the EN-pin has an internal 20k pull-up, so this means it leaks about 0.15mA (VCC = 3v) when the EN-pin is pulled to GND.

I want to prevent this current leak and want to use the pulse-enabled mode: the module will transmit for 30sec after the EN-pin is pulled to GND for >200ms, then it goes into stanby-mode. This means there is no current leak outside this 200ms pulse. I was thinking of sending a pulse every 30.2 seconds for 220ms, to "permanently" transmit a signal.

The problem is that I haven't really figured out how to send a 220ms signal every 30.2 sec. I know there are IC's around which are capable of doing it, but these are using relatively a lot of power. I'm looking for a solution in the range of a couple uA. I found the css555c, but this one is not widely available and very expensive (almost $2). I'm hoping someone can help me to find a very costs and power efficient solution.

So is there a way to send a 220ms pulse every 30.2 seconds in cost and power efficient way?

(or is there a way to prevent the current leak from the EN-pin when it's permanently tied to GND, due to the 20k pull-up)

Cheers and thanks,

R.

Best Answer

You don't say which pin you mean when you say "EN pin", I assume it is simply one of the I/O pins. For the CC2541, you can determine in software whether any pin has a pull-up or not. By default they have pull-up, but you can remove that by setting the correct bit in the PxINP register.

The CC2541 also has plenty of internal timers that can be used to pull-up/down one of the I/O pins, so you don't need an external timer.