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.

Piccolo 2803x - CLA questions

Champs,

I have two questions about the CLA in Piccolo B:

1) Which communication methods exist between CLA and main CPU? The block diagrams I've seen so far only show shared memory. Is there also an interrupt mechanism, so that the CLA could trigger a CPU interrupt for certain cases? This would useful if the main CPU the data generated by CLA for further processing.

2) If the internal ADC is not accurate enough and a customer want's to use an external ADC, can they still make use of the CLA? Seems that only the internal ADC can trigger CLA. So for an external ADC I only see the workaround to use the external SOC signal and to start a dummy conversion on the internal ADC.

Thanks,
  Robert

  • Robert Finger said:

    1) Which communication methods exist between CLA and main CPU? The block diagrams I've seen so far only show shared memory. Is there also an interrupt mechanism, so that the CLA could trigger a CPU interrupt for certain cases? This would useful if the main CPU the data generated by CLA for further processing.

     

    When a task completes it issues an interupt to the PIE.  Each task has its own interrupt vector within the PIE Thus the CPU is notified in this manner that a task has completed.  The overflow and underflow flags are also connected to PIE interrupts which will be helpful for debugging these conditions.

    On 2803x there is a 128x16 word mailbox dedicated that the CLA and read/write from and the CPU can only read from.  This allows the CLA to pass messages or data to the CPU.  The CPU could, for example, check a status variable stored here to see how the task is progressing.

    Likewise there is a 128x16 word mailbox for the main CPU to pass information and data to the CLA.    

    Robert Finger said:

    2) If the internal ADC is not accurate enough and a customer want's to use an external ADC, can they still make use of the CLA? Seems that only the internal ADC can trigger CLA. So for an external ADC I only see the workaround to use the external SOC signal and to start a dummy conversion on the internal ADC.

     

    The CLA has 8 tasks. 

    Each task can be started via main CPU software via the IACK instruction. For example I can write in C code: asm("  IACK #0x0001") to force task 1.There is also a "force" register, but it is EALLOW protected.  IACK can be used to force tasks without regard to EALLOW so it is more code efficient.

    In addition to this, on Piccolo-B, task 1 can be started via ADCINT1 or ePWM1. Likewise task 2 can be started via ADCINT2 or ePWM2.. etc through task 7.  Task 8 can be started via ADCINT8 or CPU timer 0 interrupt.  Which peripheral will trigger a the task is configurable for each task.  So you can have ADCINT1 trigger task 1 while ePWM2 triggers task 2.

    Cheers,

    Lori