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.

TMS320F28069: Input Qualification (QSEL) for SCI RX pin. Unsure what's the best practice.

Part Number: TMS320F28069
Other Parts Discussed in Thread: C2000WARE

Hello group,

How should Input Qualification (QSEL) be set for the SCI when running a 115.2kbps UART on the TMS320F28069?
The Sysclock frequency is approximately 90 MHz.

TI examples says it should be set to Asynchronous
TI posted using a qualification windows will help avoid glitches on the SCI in this newsletter

Default for pins is "Synchronize to SYSCLKOUT".

References to documentation would be helpful.

  • Jerome,

    As you have mentioned, the examples set the RX GPIO pin to asynchronous, which can be seen in:

    C:\ti\c2000\C2000Ware_<version>\device_support\f2806x\examples\c28\{for sci_echoback, scia_loopback, and scia_loopback_interrupts}

    Using GPIO28 and GPIO29 as an example, the code would look like:


    asm(" EALLOW"); // Enable EALLOW protected register access

    GpioCtrlRegs.GPAQSEL2.all = 0x30000000; // No qualification for all group A GPIO 16-31 -- **SCIA GPIO28 SET FOR ASYNCHRONOUS**

    GpioCtrlRegs.GPAMUX2.bit.GPIO28 = 1; // 0=GPIO 1=SCIRXDA 2=SDAA 3=TZ2 **SCIA SET FOR RXD**

    GpioCtrlRegs.GPAMUX2.bit.GPIO29 = 1; // 0=GPIO 1=SCITXDA 2=SCLA 3=TZ3 **SCIA SET FOR TXD**

    asm(" EDIS"); // Disable EALLOW protected register access


    Qualification can be used to eliminate unwanted noise, if present, on the GPIO RX line which is 'external' to the device, and it is application dependent. Therefore, you may or may not need qualification. For more information on qualification and to calculate the values for qualification, please see the section 1.5.4 on page 122 in the F2806x Technical Reference Manual:

    www.ti.com/lit/spruh18

    Also, you might be interested in learning more about the device referencing the F2806x workshop at:

    processors.wiki.ti.com/.../C2000_32-bit_Real-Time_MCU_Training

    I hope this helps. If this answers your question, please click the green "Verified Answer" button. Thanks.

    - Ken

  • Jerome,

    As you have mentioned, the examples set the RX GPIO pin to asynchronous, which can be seen in:

    C:\ti\c2000\C2000Ware_<version>\device_support\f2806x\examples\c28\{for sci_echoback, scia_loopback, and scia_loopback_interrupts}

    Using GPIO28 and GPIO29 as an example, the code would look like:


    asm(" EALLOW"); // Enable EALLOW protected register access

    GpioCtrlRegs.GPAQSEL2.all = 0x30000000; // No qualification for all group A GPIO 16-31 -- **SCIA GPIO28 SET FOR ASYNCHRONOUS**

    GpioCtrlRegs.GPAMUX2.bit.GPIO28 = 1; // 0=GPIO 1=SCIRXDA 2=SDAA 3=TZ2 **SCIA SET FOR RXD**

    GpioCtrlRegs.GPAMUX2.bit.GPIO29 = 1; // 0=GPIO 1=SCITXDA 2=SCLA 3=TZ3 **SCIA SET FOR TXD**

    asm(" EDIS"); // Disable EALLOW protected register access


    Qualification can be used to eliminate unwanted noise, if present, on the GPIO RX line which is 'external' to the device, and it is application dependent. Therefore, you may or may not need qualification. For more information on qualification and to calculate the values for qualification, please see the section 1.5.4 on page 122 in the F2806x Technical Reference Manual:

    www.ti.com/lit/spruh18

    Also, you might be interested in learning more about the device referencing the F2806x workshop at:

    processors.wiki.ti.com/.../C2000_32-bit_Real-Time_MCU_Training

    I hope this helps. If this answers your question, please click the green "Verified Answer" button. Thanks.

    - Ken
  • Thanks Ken,

    Your answer confirms that the SCI will work, regardless of the desired qualification window setting.

    Is there any advantage that would justify setting QSEL to Asynchronous on the RX pin?
    Why not leave it to the default "Synchronize to SYSCLKOUT" ?

  • Jerome,

    The SCI peripheral has its own internally generated clock. The setting is determined by the low-speed peripheral clock (LSPCLK) and the baud-select registers, and it synchronizes to this clock source. Therefore, it should not be synchronized to SYSCLK because of this. If input QUAL is used, it might work, but you may experience some issues.

    I hope this helps. If this answers your question, please click the green "Verified Answer" button. Thanks.

    - Ken
  • Thanks Ken,

    Are you aware of any official documentation where this would be pointed out?
    I'm working on a DO-178 DAL project, and need to track the code to requirements.
  • Jerome,

    The only official documentation that I can refer you to is the Data Sheet and Technical Reference Manual. In the Data Sheet (SPRS698) on page 146, please note:

    • No Synchronization (GPxQSEL1/2 = 1,1): This mode is used for peripherals where synchronization is
    not required (synchronization is performed within the peripheral).

    www.ti.com/lit/sprs698

    I hope this helps. If this answers your question, please click the green "Verified Answer" button. Thanks.

    - Ken