SPRAD24 august   2023 AM2631 , AM2632 , AM2632-Q1 , AM2634 , AM2634-Q1 , AM263P4 , AM263P4-Q1

 

  1.   1
  2.   Abstract
  3.   Trademarks
  4. 1Introduction
    1. 1.1 Key System Specifications
  5. 2AM263x Overview
    1. 2.1 AM263x Control Card and Traction System Framework
  6. 3Guide to Running TIDM-02014 Traction Inverter
    1. 3.1 Software Set-up
      1. 3.1.1 Code Composer Studio Project
      2. 3.1.2 Software Structure
    2. 3.2 Create Real Time Debug Interface
      1. 3.2.1 Confirm CCS Features
      2. 3.2.2 Create Target Configuration File
      3. 3.2.3 Add Serial Command Monitor Software
      4. 3.2.4 Launch Real Time Debug
    3. 3.3 Running the Code
      1. 3.3.1 Project Setup
      2. 3.3.2 Running the Application
    4. 3.4 Get Samples From ADC and Read Samples Through CCS
      1. 3.4.1 Register and Enable Interrupt
      2. 3.4.2 Add Log Code to Read Samples in Graph at Fixed Rate
      3. 3.4.3 Read ADC Samples in Expression and Graph Windows
    5. 3.5 Generate Space Vector PWM and Drive Motor in Open Loop
      1. 3.5.1 Setup SVPWM Generator Inputs
      2. 3.5.2 Read SVPWM Duty Cycles in Graph Window
      3. 3.5.3 Power Up Inverter and Spin Motor in Open Loop
    6. 3.6 Close Current Loop With Mock Speed
      1. 3.6.1 Add Transformations and Read Id-Iq in Open Loop
      2. 3.6.2 Add Controllers to Close Current Loop
      3. 3.6.3 Read Id-Iq to Close Current Loop
    7. 3.7 Add Software Resolver to Digital Converter
      1. 3.7.1 Generate Excitation for Resolver Hardware
      2. 3.7.2 Add Resolver Software
      3. 3.7.3 Read Resolver Software Outputs
  7. 4Brief Guide to Code Migration
    1. 4.1 SDK Resources Overview
    2. 4.2 Code Migration From C28
    3. 4.3 Code Migration From AM24
  8. 5Summary
  9. 6References

Code Migration From C28

C28 shares similar control peripherals as AM263x. But, the architecture and connectivity peripherals are completely different. Generally, programs related to control peripherals can be migrated with little or none modification while those related to CPU, memory management, and connectivity peripherals must be updated for details in Technical Reference Manual of AM263x.

As well know, direct operation on registers has been widely used in C28 programs in the past. The movement from register operations to API calls happened in recent years. The change from register operation to API calls simplifies the adoption of more complex MCUs. But, it takes effort to migrate from register user to API user. The effort is inevitable for either C28 and AM263x. Once the effort is made, it is not difficult to work with AM263x control subsystem as the concept from modules, like ADC and PWM, are very similar. Some examples on the similarity of control APIs are given in Table 4-2. And also, the powerful Sysconfig is available in AM263x SDK. It offers intuitive user interface for system configuration. End users are enabled to directly apply their ideas on control peripheral into configuration without worrying about API details. The APIs widely used in control loop have been given as part of the framework and discussed in Section 3.

Table 4-2 Examples on Similarity of API Definitions
API FunctionAM263x DefinitionC28 Definition
Get ADC Result

static inline uint16_t ADC_readResult

(uint32_t resultBase, ADC_SOCNumber socNumber)

static inline uint16_t ADC_readResult

(uint32_t resultBase, ADC_SOCNumber socNumber)

Set PWM Duty Cycle

static inline void EPWM_setCounterCompareValue

(uint32_t base, EPWM_CounterCompareModule compModule, uint16_t compCount)

static inline void EPWM_setCounterCompareValue

(uint32_t base, EPWM_CounterCompareModule compModule, uint16_t compCount)

Also, despite the similarities, there are some difference in SDK and some implementations with similar names. As shown in Section 4.1, the SDK structure of AM263x is very different from the SDK of C28. Although they share similar control peripherals and APIs are similar, it is still necessary to understand the different in SDK structure so that detail can be easily found during development. And, for some features like XBAR, both C28 and AM263x have XBAR synchronizing operation between modules but XBAR in AM263x is much more powerful than XBAR in C28. It comes with a challenge that it must be sufficiently understood and properly configured. XBAR program from C28 cannot be directly applied into AM263x projects.