I've spent the last couple of days using the TPL5110 board. I'm building a weather station and the MCU I'm using is a Sparkfun Artemis. My observations may be generalizable.
I checked the specs on the P-MOSFET drive transistor. It should have been quite happy driving the Artemis and sensors, but it would not turn on. I had connected the board correctly, and found a couple of interesting things. When the timer was OFF, the Drive voltage was approximately 0.5V, and the Done voltage, measured from the Done pin to battery ground was approximately 0.9V. I noted in the documentation that there were reports that the timer did not work with a Adafruit MCU. Hmmm...
I ended up driving a logic level N-MOSFET with the TPL5110 drive signal to switch the MCU on and off. That didn't work either. This time, with the Artemis board off, unpowered, the reading on the done pin, driven by the Artemis was at Vin (approx 3.9-4.0 V). What???
In this case, it was easier to understand what was going on. When using an N-MOSFET, the transistor goes between the load and ground. When the N-MOSFET was OFF, Vin was still delivered to the Artemis, but there was no current flow. That means that with respect to battery ground, the entire Artemis board was at Vbat, both Vin and Vground. The GPIO pin communicating with the DONE pin on the TPL5110 was also at Vbat with respect to the timer's circuitry. I put in an optocoupler and everything works quite well now.
The key here is the attached, admittedly crude schematic.
So, I am hoping that someone smarter and more articulate than me will take these comments and my schematic and do something useful. I can't help but wonder if a process similar to this is what is making the board the subject of so many questions.
TPL5110 insights
Moderators: adafruit_support_bill, adafruit
Please be positive and constructive with your questions and comments.
- edringel
- Posts: 7
- Joined: Sat Jul 14, 2018 11:47 am
TPL5110 insights
- Attachments
-
- Artemis-vs.-TPL5110.jpg (322.65 KiB) Viewed 714 times
- adafruit_support_mike
- Posts: 67446
- Joined: Thu Feb 11, 2010 2:51 pm
Re: TPL5110 insights
That's a problem. The TPl5110 is made to work with a p-mosfet, so its output should be VCC while it's counting then drop to 0V when the next counting cycle begins.edringel wrote:When the timer was OFF, the Drive voltage was approximately 0.5V
That's also a problem. The DONE pin is a high-impedance input, so the 0.9V probably came from the circuit connected to it.edringel wrote:and the Done voltage, measured from the Done pin to battery ground was approximately 0.9V.
It shouldn't. The DRV signals should be opposite to what an n-mosfet wants.edringel wrote:I ended up driving a logic level N-MOSFET with the TPL5110 drive signal to switch the MCU on and off. That didn't work either.
I hate to say it, but that shouldn't work. The TPL5110's output should be opposite to what an n-mosfet wants.edringel wrote:The key here is the attached, admittedly crude schematic.
Your choice to control the load connection to GND will work, but is contrary to normal practice. It leaves the load 'floating hot'. That can be dangerous in circuits that carry 20V or more, and tends to be a nuisance for connections to anything else. Any connection to a voltage lower than VCC can become a path that turns the load on in an unexpected way.
- edringel
- Posts: 7
- Joined: Sat Jul 14, 2018 11:47 am
Re: TPL5110 insights
Hi adafruit_support_mike,
Thanks for your comments. I'm going to push back a little in the hopes of getting some more info.
I hand-soldered a TPL5110 to a SOT-23 breakout board, so I'm used to the barebones unit and had success using it. I had hoped to consolidate components onto a single board and have commercial quality construction, which is why I picked up the Adafruit board.
The Adafruit board is NOT a "pure" breakout board in that it provides considerably more function. Every comment you made regarding the TPL5110 alone is absolutely correct. However, the A board does not present the drive pin voltages to the user directly. According to the board's schematic the TPL5110 drive output is used to drive a DMG3415 (https://www.diodes.com/assets/Datasheet ... 5UFY4Q.pdf), a logic level P-MOSFET with sufficient current for small projects (16V, at least 2A, and we aren't ever going to use at 16V). As indicated in the website documentation, the output of the A board (drive) can be used to power a project. This did not work for me, Use of a P-MOSFET on the A board as a final output stage means that the output from the Adafruit board will be HIGH when the timer is ON, and LOW when the timer is OFF. Again, according to the documentation, the HIGH voltage (and current) should be sufficient to power a project such as mine, which is 3.3V with 200 mA maximum draw (and it's likely closer to 100 mA.) I totally agree with you that I don't understand why I have non-zero voltages as described on my original post. Those abnormal voltages resolved when I drove an N-channel MOSFET rather than driving my circuit directly.
With respect to your comments regarding the use of an N-MOSFET as a switch-- I am also unenthusiastic about a floating hot circuit. However, every single source that I reviewed (both web and Art of Electronics, 3rd Ed) configures an N-MOSFET switched circuit as V+ --> LOAD --> N-MOSFET-->GROUND. Although not wholly similar, on p.205 of Art of Elect. 3rd figure 3.107B also uses an optocoupler.
Again, I appreciate your input. If I'm missing something, I'd love to learn more.
Thank you.
Ed
Thanks for your comments. I'm going to push back a little in the hopes of getting some more info.
I hand-soldered a TPL5110 to a SOT-23 breakout board, so I'm used to the barebones unit and had success using it. I had hoped to consolidate components onto a single board and have commercial quality construction, which is why I picked up the Adafruit board.
The Adafruit board is NOT a "pure" breakout board in that it provides considerably more function. Every comment you made regarding the TPL5110 alone is absolutely correct. However, the A board does not present the drive pin voltages to the user directly. According to the board's schematic the TPL5110 drive output is used to drive a DMG3415 (https://www.diodes.com/assets/Datasheet ... 5UFY4Q.pdf), a logic level P-MOSFET with sufficient current for small projects (16V, at least 2A, and we aren't ever going to use at 16V). As indicated in the website documentation, the output of the A board (drive) can be used to power a project. This did not work for me, Use of a P-MOSFET on the A board as a final output stage means that the output from the Adafruit board will be HIGH when the timer is ON, and LOW when the timer is OFF. Again, according to the documentation, the HIGH voltage (and current) should be sufficient to power a project such as mine, which is 3.3V with 200 mA maximum draw (and it's likely closer to 100 mA.) I totally agree with you that I don't understand why I have non-zero voltages as described on my original post. Those abnormal voltages resolved when I drove an N-channel MOSFET rather than driving my circuit directly.
With respect to your comments regarding the use of an N-MOSFET as a switch-- I am also unenthusiastic about a floating hot circuit. However, every single source that I reviewed (both web and Art of Electronics, 3rd Ed) configures an N-MOSFET switched circuit as V+ --> LOAD --> N-MOSFET-->GROUND. Although not wholly similar, on p.205 of Art of Elect. 3rd figure 3.107B also uses an optocoupler.
Again, I appreciate your input. If I'm missing something, I'd love to learn more.
Thank you.
Ed
- adafruit_support_mike
- Posts: 67446
- Joined: Thu Feb 11, 2010 2:51 pm
Re: TPL5110 insights
No problem.. it's an interesting chip that I've spent a fair amount of time testing.edringel wrote:Thanks for your comments. I'm going to push back a little in the hopes of getting some more info.
I'd say it's half and half.. the Adafruit breakout is a full implementation of the repeating timer function, but the TPL5110 also has a one-shot mode that isn't available from the breakout.. the trace that configures the function runs directly beneath the chip.edringel wrote:The Adafruit board is NOT a "pure" breakout board in that it provides considerably more function.
Ah.. I see what you're doing now. Yeah, the breakout's DRV output is inverted from the TPL5110's DRIVE pin, so yes, it will control an n-mosfet properly.edringel wrote:Use of a P-MOSFET on the A board as a final output stage means that the output from the Adafruit board will be HIGH when the timer is ON, and LOW when the timer is OFF.
Hmm.. the breakout's connection from power source to load is pretty straightforward. If you were seeing sub-1V voltages on things that should be connected to GND, it suggests power was going through a diode.. probably protection diodes on IO pins.edringel wrote:As indicated in the website documentation, the output of the A board (drive) can be used to power a project. This did not work for me,
Try hooking the load up to the breakout in the normal configuration: GND connected to GND and DRV controlling current to the load, and check the resistance in the GND-to-GND connection.
Your connections are right for a normal ground-side switch. Thing is, they tend to be used for low-current loads with only a few well-defined connectitons. The big concern is avoiding any unexpected connection to GND.. first to keep them from happening at all, and second to keep the current low enough that an unexpected connection won't destroy any parts.edringel wrote:With respect to your comments regarding the use of an N-MOSFET as a switch-- I am also unenthusiastic about a floating hot circuit. However, every single source that I reviewed (both web and Art of Electronics, 3rd Ed) configures an N-MOSFET switched circuit as V+ --> LOAD --> N-MOSFET-->GROUND. Although not wholly similar, on p.205 of Art of Elect. 3rd figure 3.107B also uses an optocoupler.
N-mosfets are the preferred device for high-current switching -- they have the lowest resistance and highest electron mobility of any device we have today -- but it's done on the high side. Making that work requires another voltage rail far enough above VCC to turn the mosfets on completely. Chips like the MAX1614 have a built-in charge pump to generate the necessary gate voltage:
https://www.maximintegrated.com/en/prod ... X1614.html
- edringel
- Posts: 7
- Joined: Sat Jul 14, 2018 11:47 am
Re: TPL5110 insights
thanks again. Interesting about the charge pump stuff. It might be a couple of days or so, but I'll try what you are suggesting regarding measuring grounds. I did look at the schematic for the Artemis, and it has a reverse polarity protection diode on the Vin pin. So, the TPL5110 board when connected directly, as it is supposed to be, is in fact powering the MCU through a diode. I wonder if these ground issues are what's a problem for other folks? I would think that lots of boards have reverse polarity protection.
Appreciate your help.
Cheers,
Ed
Appreciate your help.
Cheers,
Ed
- adafruit_support_mike
- Posts: 67446
- Joined: Thu Feb 11, 2010 2:51 pm
Re: TPL5110 insights
Is VIN a power input or a "connected devices operate at this voltage" pin?edringel wrote: I did look at the schematic for the Artemis, and it has a reverse polarity protection diode on the Vin pin. So, the TPL5110 board when connected directly, as it is supposed to be, is in fact powering the MCU through a diode.
Supply pins can have diodes that block power from being connected backwards, which can usually destroy a device. Those are in series with the load, while overvoltage protection diodes are connected in parallel to the load:
The problem comes when the load isn't connected to power (or GND) but some other voltage is connected to an input with overvotage protection. Under those conditions, one of the protection diodes can become forward biased and become an unwanted supply pin.
- edringel
- Posts: 7
- Joined: Sat Jul 14, 2018 11:47 am
Re: TPL5110 insights
I'm fairly certain it is a series connection. I've included a screen shot of the relevant part of the schematic below. Sparkfun, like you folks, is open source, so I am not doing anything inappropriate here. My connection is via the VBat option. The entire schematic is here: https://cdn.sparkfun.com/assets/5/5/1/6 ... s-Nano.pdf
- Attachments
-
- Artemis input..JPG (49.43 KiB) Viewed 674 times
- adafruit_support_mike
- Posts: 67446
- Joined: Thu Feb 11, 2010 2:51 pm
Re: TPL5110 insights
That's a combination of polarity protection and input selection.
D3 can only conduct if Vin is ~300mV lower than V_USB. When D3 does conduct (and assuming V_USB is 5V), Vin will be ~4.7V.
D4 can only conduct if Vin is ~300mV lower than V_BATT. When D4 does conduct (assuming V_BATT is 3.7V), Vin will be ~3.4V.
So if you connect 5V to V_USB, D4 will be reverse biased and basically disconnected from Vin and the 3.3V regulator. It will still be connected to the output from the LiPo charger though, so the board will charge the battery on USB power.
If you disconnect V_USB while the LiPo is connected, the voltage at VIN will drop to 3.4v, at which D4 will become forward biased and connected to the 3.3V regulator.
We use the same circuit on our Feather boards.
D3 can only conduct if Vin is ~300mV lower than V_USB. When D3 does conduct (and assuming V_USB is 5V), Vin will be ~4.7V.
D4 can only conduct if Vin is ~300mV lower than V_BATT. When D4 does conduct (assuming V_BATT is 3.7V), Vin will be ~3.4V.
So if you connect 5V to V_USB, D4 will be reverse biased and basically disconnected from Vin and the 3.3V regulator. It will still be connected to the output from the LiPo charger though, so the board will charge the battery on USB power.
If you disconnect V_USB while the LiPo is connected, the voltage at VIN will drop to 3.4v, at which D4 will become forward biased and connected to the 3.3V regulator.
We use the same circuit on our Feather boards.
- edringel
- Posts: 7
- Joined: Sat Jul 14, 2018 11:47 am
Re: TPL5110 insights
There's a nice article in elektor magazine about MOSFET drivers here: https://www.elektormagazine.com/article ... d-drivers/
Please be positive and constructive with your questions and comments.