Microchip MCP73831 Linear Charge Management Controller

The Microchip MCP73831 Linear Charge Management Controller is a tiny 500mA linear charge management controller which includes integrated a pass transistor, integrated current sensing, and reverse discharge protection in 5-pin SOT-23 and thermally-efficient 8-pin 2mm x 3mm Dual-Flat No-Leads (DFN) package. Additionally, the Microchip MCP73831 features

  • High accuracy preset output voltage regulation (+/-0.75%)
  • User-programmable charge current
  • Charge status output can directly drive LEDs
  • On-chip thermal regulation
  • Preconditioning and end-of-charge ratio options
  • Under-voltage lockout

The MCP73831 device is a highly advanced linear charge management controllers for use in space-limited, cost-sensitive applications.

The Hardware

Microchip/Atmel ATTiny1614 & Texas Instruments DRV8837

The search for a suitable microcontroller is constrained by a number of factors. These factors included providing the necessary peripherals that are required, such as Pulse Width Modulation (PWM), at least one Universal Asynchronous Receiver/Transmitter (UART), support for at least one Inter-Integrated Circuit (I²C) communication bus, and in-circuit serial programming (ICSP). I originally designed the Dimebots to utilized the 8-bit Microchip/Atmel ATmega328p which is the microcontroller found in the Arduino Uno. The ATmega328p provides a simple and easy-to-understand coding platform through the Arduino integrated development environment (IDE) while also coming in a number of footprints that could work for my requirements, namely a 32 pin Thin Quad Flat Package (TQFP) and 28 and 32 pin Very Thin Plastic Quad Flat No-Lead (VQFN). I went as far as laying out an ATMega328p using a VQFN footprint, but the additional support requirements of using the ATMega328p such as a 6 pin ICSP header and an external 8MHz crystal/resonator necessitated a smaller microcontroller. In addition, the great dearth of microchips because of the COVID-19 pandemic disrupting global supply chains, stay-at-home orders increasing, and demand for consumer electronics and electric vehicle adoption, such as the ATMega328p, makes my selection of a suitable microcontroller much narrower. I decided to give myself a couple of weeks to see if I could nail down a microcontroller that is small, yet peripheral rich. Fortunately, Spence Konde (aka Dr. Azzy) had recently released Arduino support for the newer microcontrollers offered by Microchip/Atmel, including support for the tinyAVR 2-Series, the tinyAVR 1-Series, and the tinyAVR 0-Series of chips. After testing a number of different microcontrollers, I chose the ATTiny1614 in a 14-pin Small Outline Integrated Circuit (SOIC) footprint due to its necessary peripherals, overall microcontroller size and footprint, and most importantly, its availability. The ATTiny1614 can be powered by a wide variety of voltages including 1.8V all the way up to 5.5, has multiple I²C buses and multiple UART’s, has 6 PWM channels, and used the Unified Program and Debug Interface (UPDI) for programming. The UPDI interface is perfect for my needs, as it required only a 3-pin programming interface versus the 6-pin interface used for the ATMega328p.

The Texas Instruments DRV8837 is chosen as the motor driver for the Dimebots. The DRV8837 output driver block consists of N-channel power MOSFETs configured as an H-bridge to drive the motor winding. An internal charge pump generates needed gate drive voltages. The Texas Instruments DRV8837 is packaged with a host of features, namely:

  • 1.8-A Maximum Drive Current
  • Separate Motor and Logic Supply Pins
  • Motor VM: 0 to 11 V
  • Logic VCC: 1.8 to 7 V
  • PWM Interface with IN1 and IN2 receiving PWM input
  • Low-Power Sleep Mode With 120-nA Maximum Sleep Current
  • nSLEEP pin
  • Small Footprint – 8-Pin WSON With Thermal Pad with a 2.0mm × 2.0mm size

Vishay VCNL4040 Proximity Sensor

I sampled and tested numerous proximity sensors to find one that is power friendly, small,...

Read more »