This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CRC on Tiva Launchpad (TM4C123GH6PM)

Other Parts Discussed in Thread: TM4C123GH6PM, TM4C1294NCPDT

I'm using the TM4C123GXL Launchpad and trying to get the CRC working.  I add the lines:

SysCtlPeripheralEnable( SYSCTL_PERIPH_CCM0 );

while( !SysCtlPeripheralReady(SYSCTL_PERIPH_CCM0) )
{
}

The microcontroller never comes out of the while loop.  I guess my first questions is does the TM4C123GH6PM have the CRC peripheral?

  • Hi,

    Where did you get this define "SYSCTL_PERIPH_CCM0". I can't find it at sysctl.h of my Tivaware for Tiva Launchpad. Also I can't find any reference to "CCM" at TM4C123GH6PM datasheet, so most probably it is not supported.

    However, there is a mention of "CCM" at TM4C1294NCPDT datasheet. But, I am not familiar with CCM to comment regarding that.

    - kel

  • When run on a TM4C123GH6PM the following program reports that the CRC module is not present:

    #include <stdio.h>
    #include <stdint.h>
    #include <stdbool.h>
    #include <driverlib/sysctl.h>
    #include <driverlib/rom.h>
    
    int main(void) {
    	
    	printf ("CRC module present = %d\n", ROM_SysCtlPeripheralPresent (SYSCTL_PERIPH_CCM0));
    
    	return 0;
    }

    And when run on a TM4C1294NCPDT reports that the CRC module is present.

    So, the TM4C123GH6PM doesn't have a CRC module.

  • Hello Brandon,

    CRC module does not exist on TM4C123 devices.

    Regards
    Amit
  • Still in the very new stages, but the 'SysCtlPeripheralPresent' will come in handy going forward.
  • Hello Brandon,

    Not to forget SysCtlPeripheralReady and SysCtlPeripheralReset. Well how: Following is an example

    //
    // Check if module is exist, if not then exit
    //
    if(SysCtlPeripheralPresent(SYSCTL_PERIPH_CCM0))
    {
    return(0);
    }
    //
    // Disable the clock, then reset module and enable the clock
    // to ensure that any previous setting are cleared
    //
    SysCtlPeripheralDisable(SYSCTL_PERIPH_CCM0);
    SysCtlPeripheralReset(SYSCTL_PERIPH_CCM0);
    SysCtlPeripheralEnable(SYSCTL_PERIPH_CCM0);
    //
    // Wait for the Peripheral to indicate it is accessible
    //
    while(!(SysCtlPeripheralReady(SYSCTL_PERIPH_CCM0)));

    Regards
    Amit