PTA0/CMP0_IN2 input to comparator on KL03

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

PTA0/CMP0_IN2 input to comparator on KL03

616 Views
carlostadeoorte
Contributor III

Hello dear Freescale community,

I am having trouble using PTA0 as CMP0_IN2 to the comparator to the input of the comparator.

As far as I see, my program works fine: if I use PTB5/COMP0_IN1, then everything runs fine, however I want to change from PTB5 to PTA0 since I don't want to mess with the NMI.  if it is any useful, I am using the 16QFN package.

This is how my GPIO configuration looks:

    //COMPARATOR PINS

    //Pin PTA0 as comparator (cmp0_in2 --  ALT0)

    //Pin PTB1 as comparator (cmp0_in3 -- default, ALT0 --- No need to configure, but just to be safe.

    PORT_HAL_SetPullCmd(PORTB_BASE_PTR, 1u, false);

    PORT_HAL_SetPullCmd(PORTA_BASE_PTR, 0u, false);

    PORT_HAL_SetMuxMode(PORTB_BASE_PTR, 1u, kPortPinDisabled);

    PORT_HAL_SetMuxMode(PORTA_BASE_PTR, 0u, kPortPinDisabled);

    PORT_HAL_SetPullCmd(PORTA_BASE_PTR, 2u, false);

    PORT_HAL_SetMuxMode(PORTA_BASE_PTR, 2u,kPortMuxAlt2);

For the comparator, I am using the driver. and this is how my configuration looks like:

cmp_comparator_config_t comp_config_struct = {

    .hystersisMode = kCmpHystersisOfLevel3,

    .pinoutEnable = true,

    .pinoutUnfilteredEnable = true,

    .invertEnable = false,

    .highSpeedEnable = true,

    .risingIntEnable = false,

    .fallingIntEnable = false,

    .triggerEnable = false,

    //.minusChnMux = kCmpInputChn1,  //CMP0_1 is located in PTB5

    .minusChnMux = kCmpInputChn2, //CMP0_2 is located in PTA0

    .plusChnMux = kCmpInputChn3,   //CMP0_3 is located in PTB1

};

Then I just start the comparator like this:

   assert( CMP_DRV_Init(BOARD_CMP_INSTANCE, &comp_state, &comp_config_struct) ==  kStatus_CMP_Success);

   CMP_DRV_Start(BOARD_CMP_INSTANCE);

Debugging is of course a pain since PTA0 uses SWD_CLK, so  as soon as I reach that point, I loose debugging capabilities.

Any advice would be really appreciated.

Thank you in advance!

-Carlos

Labels (1)
2 Replies

410 Views
carlostadeoorte
Contributor III

Just as a a follow-up. The code above works perfectly fine, The error was somewhere else in the code where I'd set PTA0 as GPIO

410 Views
Hui_Ma
NXP TechSupport
NXP TechSupport

Hi,

Besides of above PTA0 pin MUX setting, it also need to change the <board.h> about BOARD_CMP_CHANNEL  definition:

#define BOARD_CMP_CHANNEL           2

The KL03 PTA0 pin is CMP0_IN2.

Wish it helps.


Have a great day,
Ma Hui

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos