TIDUE59A May   2018  – September 2020

 

  1.   Description
  2.   Resources
  3.   Features
  4.   Applications
  5. 1System Description
    1. 1.1 Key System Specifications
  6. 2System Overview
    1. 2.1 Block Diagram
    2. 2.2 Design Considerations
    3. 2.3 Highlighted Products
      1. 2.3.1 CC3220
      2. 2.3.2 CC2640R2F
      3. 2.3.3 DRV8837
    4. 2.4 System Design Theory
      1. 2.4.1 CC3220S to CC2640R2F Interface
      2. 2.4.2 CC3220S to DRV8837 Interface
      3. 2.4.3 Software Architecture
      4. 2.4.4 Network Connection Management
      5. 2.4.5 Provisioning
        1. 2.4.5.1 AP Provisioning and SmartConfig™
        2. 2.4.5.2 Wi-Fi Provisioning Over BLE
      6. 2.4.6 Sending and Receiving Messages Through Cloud
        1. 2.4.6.1 Message Queue Telemetry Transport Protocol
        2. 2.4.6.2 MQTT Client Implementation
      7. 2.4.7 Over-the-Air Updates
        1. 2.4.7.1 HyperText Transfer Protocol
      8. 2.4.8 Security Enablers
        1. 2.4.8.1 Secure Boot
        2. 2.4.8.2 Secure Sockets
          1. 2.4.8.2.1 Hardware Accelerators
          2. 2.4.8.2.2 Simple Network Time Protocol
        3. 2.4.8.3 File System Security
          1. 2.4.8.3.1 Failsafe Files and Bundle Protection
      9. 2.4.9 Low-Power Consumption
  7. 3Hardware, Software, Testing Requirements, and Test Results
    1. 3.1 Required Hardware and Software
      1. 3.1.1 Hardware
        1. 3.1.1.1 CC3220S LaunchPad™ Development Kit
        2. 3.1.1.2 CC2640R2F LaunchPad™ Development Kit
        3. 3.1.1.3 Sensor BoosterPack™ Connections (BMI160)
        4. 3.1.1.4 DRV8837EVM Modifications and Connections
        5. 3.1.1.5 Assembling EVMs
      2. 3.1.2 Software
        1. 3.1.2.1 Getting Started With Software
          1. 3.1.2.1.1 Build simple_np Application and Flash CC2640R2F
          2. 3.1.2.1.2 Use Premade UniFlash ImageCreator Project
          3. 3.1.2.1.3 Importing Project Source Files Into CCS
        2. 3.1.2.2 User Files
        3. 3.1.2.3 Run Wi-Fi® Doorlock Demo
          1. 3.1.2.3.1 Connect CC3220 to Network
          2. 3.1.2.3.2 Networking Functions
            1. 3.1.2.3.2.1 Get Current Date and Time (SNTP)
            2. 3.1.2.3.2.2 Send and Receive Messages (MQTT)
            3. 3.1.2.3.2.3 Perform Software Update Using Dropbox (OTA Update)
    2. 3.2 Testing and Results
      1. 3.2.1 Pass or Fail Tests
      2. 3.2.2 Power Measurements
      3. 3.2.3 Test Setup
        1. 3.2.3.1 CC3220S
        2. 3.2.3.2 CC2640R2F
        3. 3.2.3.3 DRV8837
      4. 3.2.4 Test Results
      5. 3.2.5 Battery Life Estimate
  8. 4Design Files
  9. 5Software Files
  10. 6Related Documentation
    1. 6.1 Trademarks
  11. 7Terminology
  12. 8About the Author
  13. 9Revision History

CC3220S to DRV8837 Interface

The brushed DC-motor driver, DRV8837, is used to provide a controlled current source to the motor. In this design, the CC3220S uses a three-pin interface consisting of two general-purpose input output (GPIO) signals and one PWM signal, to control the DRV8837. Figure 2-2 shows a simplified diagram of the interface between the CC3220 and DRV8837, where the Controller represents the CC3220 MCU.

GUID-55080CC4-7C6D-480B-948B-B2B196EC1165-low.gifFigure 2-2 DRV8837 Simplified Diagram

The DRV8837 device behaves according to a PWM input scheme called the IN-IN interface. For this design, the control interface has been configured such that one GPIO from the CC3220 is used to control IN1, and a PWM is used to control IN2 (see Table 2-1). For a full description of the device logic, see the DRV883x Low-Voltage H-Bridge Driver data sheet.

Table 2-1 DRV8837 Device Logic
nSLEEPIN1IN2FUNCTION (DC MOTOR)
0XXCoast
100Coast
101Reverse
110Forward
111Brake

In the software application for the TIDC-01005, P16 and P17 of the CC3220 are connected to IN1 and IN2 of the DRV8837, respectively. P16 is configured as a standard GPIO, and P17 is configured as a PWM output. P18 of the CC3220 is configured as a GPIO and connected to nSLEEP on the DRV8837. When turning the motor forward, P18 (nSLEEP) and P16 (IN1) are both set to a logic high and the duty cycle of the PWM output on P17 (IN2) is fixed to drive the motor at a constant speed. By duty cycling P17 with P16 high, the motor switches between the Forward drive and Brake modes, to turn forward at a controlled speed. When driving the motor in reverse, P18 (nSLEEP) is set to a logic high, and P16 (IN1) is kept as logic low, while the PWM output on P17 is set to a fixed duty cycle. By duty cycling P17 with P16 low, the motor switches between the Reverse and Coast functions, which causes the motor to turn backward at a controlled speed.