You may have found that charging your project’s lithium battery while at the same time trying to use your circuit didn’t quite workout, with problems like the circuit not turning on and the battery never finish charging. Even an LED can cause the battery to never finish charging.
This article goes through creating a battery charger with load sharing (also known as power-path) that can properly charge the battery and have the main circuit run normally. The charging IC we’ll be using is the popular MCP73831/2 from Microchip for single-cell Li-Po and Li-Ion batteries with a maximum charge current of 500mA.
-
-
IC Samples
Everyone likes free stuff! I thought I’d share my recent success of getting a few free chip samples:
-
AVRDUDESS – A GUI for AVRDUDE
AVRDUDESS is a GUI for AVRDUDE, a tool for programming Atmel microcontrollers.
-
Millisecond tracking library for AVR
This is a lightweight library for keeping track of time to millisecond accuracy, the data type for storing milliseconds can be easily configured, it supports ‘unsigned long long’ which can keep track of time for 584.9 million years before overflowing! Any clock frequency up to 20MHz can be used, most of the commonly used frequencies have no time keeping error (see table below).
-
Bluetooth Net Monitor
Whenever I want to see why a download is going a little slow or getting lag on an online game I’d have to log in to my routers web page or SSH in to see if its someone else in the house downloading/uploading, the net connection going wonky or just the server, this was a bit annoying to do, so I made this device to constantly show network statistics.
-
Getting Bluetooth modules talking to each other
A really easy method of making your projects wireless is to use serial Bluetooth modules, these modules take standard serial data and transparently transmit it via Bluetooth to another connected Bluetooth module, no extra code is needed.
-
nRF905 Radio Library for AVR and Arduino
The nRF905 is a radio transceiver IC similar to the well known nRF24L01, but operates at 433/898/915MHz instead of 2.4GHz, has a much longer range and a few extra IO pins. However, the nRF905 data rate is only 50Kbps compared to nRF24L01’s 2Mbps.
This library offers quite a bit of flexibility: Optional use of interrupts, 2 of the connections to the module are optional since their states can also be accessed by the ICs status register, and supports basic collision avoidance. -
LCD Image Viewer
This is a quick project I made to try out a 1.8″ colour LCD display from Ebay, the microcontroller code is very simple, after initializing the display it just waits for serial data and sends it straight to the display. Image processing is done by the host program, open your image (drag on to the program or click Open image), it gets resized, displayed in a preview box and converted to 12, 16 or 18 bit colour during upload.
-
CPU Usage LEDs
Having seen a few circuits around the web that light up LEDs depending on CPU load I decided to make my own since they do look pretty cool 😀 I was originally going to have it communicate with the PC using a USB to TTL serial converter, but then I found out about the V-USB library which eliminated the need for a converter and supports ATtiny25/45/85 without the need for a crystal, great!
-
AVR microcontroller based PWM fan controllers
So this is a bit of a continuation on my 555 timer based PWM controllers, but now using microcontrollers and MOSFETs instead of 555 ICs and transistors. I made 2 versions, one with switches for speeding up and down and the other with a potentiometer like the previous controllers.