Yet another USB charger design change

I know, I know... at the pace this is going I'll never get thing thing built. I will... I really will.  :-)All of this is iterating over the various design constraints and trying to lower the bill of materials (BOM) cost.So the start of this was with an Arduino controlling the various charging circuits. That brought with it a limited number of analog to digital converter (ADC) channels and likewise a limited number of general purpose IO ports (GPIO). So, given those constraints I needed to have a smart controller for the charge current. I found this with the TI TPS2561A. This also needed some control signals so I specced in an IO expander running over the I2C bus. Also on the I2C bus was a pair of ADCs converting the result of the current sense to something I can work with.Fast forward to the next stage of the evolution and I have a more capable microcontroller. With more GPIO and ADC resources I can now get rid of the IO expander and the ADC chips saving a bunch on on the BOM cost. I was still sitting with the charge controllers however.Today while I was working on the bike I had another thought. The reason I had the charge controllers in the first place is that the sampling rate I can get with the ADCs over the I2C bus is pretty limited. Each charge controller needs two IOs -- one for the enable and one for the fault detect. But here's the cool thing: the microcontroller I'm speccing now (a Cypress part) can do some fast ADCs over multiple channels. Now I no longer have the constraint of slow readout of fault conditions that the charge controller was used to get around!The current iteration: replace the charge controller that costs $3 for 2 channels for a pair of MOSFETs that cost $0.12 each. (granted, I need two, but it's still 10x cheaper) This also frees up 16 GPIOs that I was going to use for fault reading... So I can have more ports and be cheaper at the same time.  :-)  The advantage of the fast ADC is that I can trap short circuits before it causes damage to the MOSFET. It does make the design a bit more critical to get the firmware correct, but it gets things way cheaper.In theory I might be able to get rid of the current sense amps, but I'm not sure how much noise margin I have on the ADC -- even if I step to the better controller. (And it'll use twice as many analog inputs -- or I can trade off not as precise... alas...)

Previous
Previous

Gasworks 2015

Next
Next

First draft of the 2015 trip map