Quantcast
Channel: Forums - Recent Threads
Viewing all articles
Browse latest Browse all 262198

SysCtlClockSet not working for some parameters in TivaWare 1.0

$
0
0

I am using CCS 5.3.0.00090 and ARM compiler 5.0.5.  I have just moved working code from StellarisWare to TivaWare. 
I am working two of code having very similar initialization code.  One uses an external oscillator,
and another uses the internal oscillator.

I use the FLASH versions of these functions when driving the oscillator at 80MHz,
due to the SYSCTL_SYSDIV_2_5 not being supported in the ROM_version

    SysCtlClockSet(SYSCTL_SYSDIV_2_5 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN | SYSCTL_XTAL_20MHZ);
    sysCtlClock = SysCtlClockGet(); // Returns 80,000,000

For the second implementation I used,

    SysCtlClockSet(SYSCTL_OSC_INT|SYSCTL_SYSDIV_10|SYSCTL_USE_PLL);
    sysCtlClock = SysCtlClockGet();  // For StellarisWare, this returns 20,000,000, for TivaWare 37,500

I switched back to the ROM_ versions:

    ROM_SysCtlClockSet(SYSCTL_OSC_INT|SYSCTL_SYSDIV_10|SYSCTL_USE_PLL);
    sysCtlClock = ROM_SysCtlClockGet();  // returns 20,000,000 for both StellarisWare and TivaWare

I see many changes to this function in sysctl.c.  Somebody dropped the ball here.

When feeding 37,500 into (ROM or FLASH versions)

ROM_SSIConfigSetExpClk(SSI0_BASE, sysCtlClock, SSI_FRF_MOTO_MODE_0, SSI_MODE_MASTER, 10000000, 8);

This leads to a forever loop inside of SSIConfigSetExpClk.  This is nasty.


Viewing all articles
Browse latest Browse all 262198

Trending Articles