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 x 2.0mm size

Vishay VCNL4040 Proximity Sensor

I sampled and tested numerous proximity sensors to find one that is power friendly, small, and available. This included sensors such as the Broadcom APDS-9960, the ON Semiconductor QRE1113, and the Sharp GP2S60. I finally selected the VCNL4040 from Vishay that interfaced with the ATTiny1614 using the I²C protocol.

Nanjing Qinheng Microelectronics CH9141 Bluetooth (BLE4.2) Module

Searching for a Bluetooth LE module that is tiny enough to fit the constraints of the robots mainboard while also providing for some type of serial communications is a challenge. All of the traditional Bluetooth 2.0 Serial Port Profile (SPP) modules were either too large or too power hungry to meet the dime-sized requirements of the Dimebots. After a few weeks of exhaustive searching, I discovered the CH9141. The CH9141 module ticked all of the requirements I needed, including:

  • Supporting the standard Bluetooth V4.2 protocol
  • Bluetooth transmission distance up to 100 meters
  • Two-way transparent transmission of serial port and Bluetooth data
  • Support Bluetooth broadcast, host, and slave modes
  • Support serial port AT command configuration
  • Serial port baud rate supporting 300bps all the way up to 921600bps
  • Support for adjustable serial port parameters

The CH9141 module integrates master and slave functionality, while being configured through AT serial commands. The serial AT commands were used for configuring the CH9141 module to set the modules device name, module password, and serial baud rate to 9600bps.

Microchip MCP1700 Low Dropout (LDO) Voltage Regulator

A source of a stable and clean 3.3V is needed to power the dimebot and its peripherals. The Microchip MCP1700 Low Dropout (LDO) Voltage Regulator is a CMOS low dropout positive voltage regulator which can source up to 250mA of current with an extremely low input-output voltage differential of 178mV at 250mA. The low dropout voltage combined with the low current consumption of only 1.6µA makes this part ideal for battery operation. The low voltage differential (dropout voltage) extends battery operating lifetime. The MCP1700 is stable with 1.0µF ceramic output capacitor. It also permits high currents in small packages when operated with minimum VIN — VOUT differentials. The circuit also incorporates short-circuit protection and over temperature protection to ensure maximum reliability.

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.

3.7V 30mAh Rechargeable Lithium Polymer (LiPo) Battery

The main factor that ultimately determined the size of the robot (and most every robot in the world) is the size of the battery. The balancing act between battery size and power is challenging to say the least. On one hand, I needed something that fit in the dimensions of the robot. On the other hand, I needed a battery that provided enough voltage and amperage to run the robot and its associated peripherals, while ensuring a robot runtime that is acceptable. The battery chosen is a 3.7V 30mAh Rechargeable LiPo Battery.

Motor – 4mm x 8mm Pager Motor

The 4mm x 8mm pager motors used are coreless motors with a .70mm shaft diameter. Manufacturer test data states that these motors run at :

  • 1.5V 18000RPM 5mA
  • 3.0V 37000RPM 8mA
  • 3.7V 47000RPM 10mA
  • 5.0V 62000RPM 25mA