The C2000 ControlSuite includes lots of examples of configuring and using F28069 Piccolo on-chip peripherals (e.g. I2C, SPI, ePWM, HRPWM, ADC, etc) but all of these C code examples do not encapsulate or abstract the peripheral drivers with a proper device driver API like you would get in TI-RTOS or MWare.
I'm looking for a complete device driver library for the F28069 Piccolo targets (ControlStick or Control Card). However, any sample drivers with the same TI-RTOS style HAL driver library APIs (such as those drivers that are available for ARM, TIVA and Concerto 28M35x type devices) don't seem to be available for the Piccolo family. There is an existing Peripheral Driver library for the Piccolo F28069, but it only includes APIs for a small subset of F28069 devices: PIE interrupt controller, SysTick, UART and USB. There are no driver APIs for other on-chip peripherals.
Can anyone inform me about whether there are any plans to have fully-fledged device drivers (with proper abstract API interfaces) planned or available for TI-RTOS or MWare on the F2806x Piccolo platform either today or in the near future?
As far as I know TI-RTOS only supports devices like ARM, TIVA, and Concerto like devices now and going forward.
If my reply answers your question please mark the thread as answered
In reply to judahvang:
Slight correction...going forward we will be supporting other devices (e.g. MSP430). TI-RTOS support for C2000 peripherals is being considered, but realistically is lower on the list.
In reply to ToddMullanix:
I have finally researched and found a partial answer to my original question. Apparently, Trey German at TI has created a new Peripheral Driver Library with proper abstracted driver APIs for the F28027 Launchpad, but this has not been ported to the F2806x Piccolo device.
The older F2802x_xxxxx.c/.h example code and headers, have been supplemented in C:\ti\controlSUITE\device_support\f2802x\v210\f2802x_common folder by new drivers with proper APIs including: adc.c, cap.c, clk.c, comp.c, cpu.c, flash.c, gpio.c, i2c.c, osc.c, pie.c, pll.c, pwm.c, pwr.c, sci.c, sci_io.c, spi.c, timer.c, and wdog.c. There is a new set of reworked example code that demonstrates these Launchpad peripheral driver APIs as well.
It is too bad that there is no app note for the C2000 ControlSuite which at least makes developers for F2806x Piccolo aware that this more substantial set of driver library APIs is available for the similar F28027 device. These driver APIs could be easily ported to the Piccolo F28069 and enhanced to take advantage of the additional capabilities:
• Direct memory access (DMA)• Viterbi Complex Math and CRC Unit (VCU)• Multichannel Buffered Serial Port (McBSP)• High-Resolution Capture (HRCAP)• USB controller + PHY• Floating-Point Unit (FPU)• Additional enhanced quadrature encoder pulse (eQEP) and enhanced capture (eCAP) peripherals
The Launchpad Peripheral Driver F2802x examples use the new driver-style APIs rather than the older header files. The following initialization sequence with the older headers is replaced by cleaner sequence further below using the new driver library APIs:
Older header version:// Step 1. Initialize System Control using example function is found in the F2806x_SysCtrl.c file.InitSysCtrl();// Step 2. Initalize GPIO using example found in the F2806x_Gpio.c fileInitGpio();// Step 3. Clear all interruptsDINT;// Initialize PIE control registers to their default state as found in the F2806x_PieCtrl.c file.InitPieCtrl();// Disable CPU interrupts and clear all CPU interrupt flags:IER = 0x0000;IFR = 0x0000;
Newer Launchpad driver library API init sequence...
//Perform basic system initializationWDOG_disable(myWDog);CLK_enableAdcClock(myClk);(Device_cal)();//Select the internal oscillator as the clock sourceCLK_setOscSrc(myClk,CLK_OscSrc_Internal);//Setup the PLL for x10/2 which will yield 50Mhz=10Mhz or10/ 2PLL_setup(myPll,PLL_Multiplier_10,PLL_DivideSelect_ClkIn_by_2);//Disable the PIE and all interruptsPIE_disable(myPie);PIE_disableAllInts(myPie);CPU_disableGlobalInts(myCpu);CPU_clearIntFlags(myCpu);
Please let me know if there are any TI plans to enhance the MWare library for the F28069 driver library with the new improved Launchpad style driver library APIs?
In reply to Gordon Finlay:
LaunchPad Applications Manager
In reply to Rob Coker:
In reply to Trey German289:
In reply to Gary Pajer:
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.