This page was drafted by Claude (claude-sonnet-4-6).
Texas Instruments’ C2000 microcontrollers are powerful devices for real-time control, but notoriously painful to program directly against the hardware registers. This project is a layered abstraction library developed for the Georgia Tech Solar Racing team on the F28069 DSP microcontroller.
The library is organized into four tiers of abstraction, each building on the one below:
Assembly, linker command, C source, and header files comprising Texas Instruments’ own hardware abstraction layer. These expose raw register addresses and peripheral definitions for the F28069 chip and are shared across all projects as a foundation.
A secondary abstraction written largely by Pavel that significantly simplifies interacting with C2000 peripherals. Each module handles one subsystem:
| Module | What it does |
|---|---|
| ADC | Analog-to-digital conversion. Enum-based clock divisors (WHOLE, HALF, FOURTH) and 16 configurable start-of-conversion modules (SOC0–SOC15). |
| CAN | Controller Area Network bus. Supports CAN_send, CAN_receive, CAN_request, and CAN_autoreply with named node IDs (motor controller, pedals, BMS, IMU, WiFi, screen, MPPT). |
| Clock | System and peripheral clock configuration. |
| FastFlash | Optimized flash memory read/write access. |
| GPIO | General-purpose I/O pin configuration and control. |
| Interrupts | PIE (Peripheral Interrupt Expansion) controller setup and ISR registration. |
| SCI | Serial Communications Interface (UART-equivalent). |
| SPI | Serial Peripheral Interface for synchronous serial communication. |
Higher-level abstractions built on top of the System Library for specific project needs. Currently includes a WiFi module for wireless communication.
Test programs that validate System and Project library behavior. These also serve as reference examples when starting new applications.
This middleware was developed while Pavel was a member of the Georgia Tech Solar Racing team. The solar car communicates internally over CAN bus, with distinct nodes for the motor controller, battery management system (BMS), pedals, inertial measurement unit (IMU), maximum power point trackers (MPPTs), and a driver-facing display screen.
The Code Composer Studio workspace uses include paths relative to WORKSPACE_LOC to stay portable across machines. More in-depth descriptions of specific projects and build instructions are on the GT Solar Racing wiki.