Open-CMSIS-Packs: EmSA Example

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

Open-CMSIS-Packs: EmSA Example

Open-CMSIS-Packs: EmSA Example

GOAL

Learn how to import CMSIS packs into existing projects. In this particular project, CMSIS packs from EmSA will be used alongside the lpcxpresso55s16_mcan_interrupt_transfer example obtained from the LPCXpresso55s16 SDK.

 

ENVIRONMENT

This guide requires MCUXpresso IDE v11.9.1 or latest.

 

PROCEDURE

1. Import the lpcxpresso55s16_mcan_interrupt_transfer example into the workspace. In this example, SDK drivers, startup and board interface files are readily available. CAN pins are already routed and enabled.

OCP-EmSA-Step1.gif

 

 

2. Launch Config Tools to configure the clock for the CAN peripheral

OCP-EmSA-Step2.gif

 

 

3. Configure the clock for the CAN peripheral.

I. Set up the main clock so that it is generated from crystal or oscillator, and it is evenly dividable by 40 MHz.

OCP-EmSA-Step3.gif

 

II. Change the PLL configuration an even multiple of 40 MHz

OCP-EmSA-Step3.2.gif

 

III. Set the CAN divider to get a 40 MHz clock.

OCP-EmSA-Step3.3.gif

 

4. Update the code.

OCP-EmSA-Step4.gif

 

5. Add Open-CMSIS Packs to the project.

OCP-EmSA-Step5.gif

 

6. Project set-up

I. Add the watchdog driver.

OCP-EmSA-Step6.gif

 

II. Exclude the fsl_mcan.c module from the build. A dedicated version is included in the EmSA packs.OCP-EmSA-Step6.2.gif

 

III. Add the main.c module from CMSIS template

OCP-EmSA-Step6.3.gif

 

IV. Exclude or remove the original main source code mcan_interrupt_transfer.c file.

OCP-EmSA-Step6.4.gif

 

7. Save and build the project.

OCP-EmSA-Step7.gif

 

 

 

 

 

Labels (1)
%3CLINGO-SUB%20id%3D%22lingo-sub-1966486%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3EOpen-CMSIS-Packs%3A%20EmSA%20Example%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1966486%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%3CSTRONG%3EGOAL%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CP%3ELearn%20how%20to%20import%20CMSIS%20packs%20into%20existing%20projects.%20In%20this%20particular%20project%2C%20CMSIS%20packs%20from%20EmSA%20will%20be%20used%20alongside%26nbsp%3Bthe%26nbsp%3B%3CEM%3Elpcxpresso55s16_mcan_interrupt_transfer%20%3C%2FEM%3Eexample%26nbsp%3Bobtained%20from%20the%20LPCXpresso55s16%20SDK.%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%3CSTRONG%3EENVIRONMENT%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CP%3EThis%20guide%20requires%20MCUXpresso%20IDE%20v11.9.1%20or%20latest.%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%3CSTRONG%3EPROCEDURE%3C%2FSTRONG%3E%3C%2FP%3E%0A%3CP%3E1.%20Import%20the%20%3CEM%3Elpcxpresso55s16_mcan_interrupt_transfer%20%3C%2FEM%3Eexample%20into%20the%20workspace.%20In%20this%20example%2C%20SDK%20drivers%2C%20startup%20and%20board%20interface%20files%20are%20readily%20available.%20CAN%20pins%20are%20already%20routed%20and%20enabled.%3C%2FP%3E%0A%3CP%20class%3D%22lia-indent-padding-left-30px%22%20style%3D%22padding-left%20%3A%2030px%3B%22%20style%3D%22padding-left%20%3A%2030px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-center%22%20image-alt%3D%22OCP-EmSA-Step1.gif%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22OCP-EmSA-Step1.gif%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F302623iE3955BC63BC01283%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22OCP-EmSA-Step1.gif%22%20alt%3D%22OCP-EmSA-Step1.gif%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20class%3D%22lia-indent-padding-left-30px%22%20style%3D%22padding-left%20%3A%2030px%3B%22%20style%3D%22padding-left%20%3A%2030px%3B%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%20class%3D%22lia-indent-padding-left-30px%22%20style%3D%22padding-left%20%3A%2030px%3B%22%20style%3D%22padding-left%20%3A%2030px%3B%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E2.%20Launch%20Config%20Tools%20to%20configure%20the%20clock%20for%20the%20CAN%20peripheral%3C%2FP%3E%0A%3CP%20class%3D%22lia-indent-padding-left-30px%22%20style%3D%22padding-left%20%3A%2030px%3B%22%20style%3D%22padding-left%20%3A%2030px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-center%22%20image-alt%3D%22OCP-EmSA-Step2.gif%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22OCP-EmSA-Step2.gif%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F302624iDF82200E4F669426%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22OCP-EmSA-Step2.gif%22%20alt%3D%22OCP-EmSA-Step2.gif%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CBR%20%2F%3E%0A%3CP%3E3.%20Configure%20the%20clock%20for%20the%20CAN%20peripheral.%3C%2FP%3E%0A%3CP%20class%3D%22lia-indent-padding-left-30px%22%20style%3D%22padding-left%20%3A%2030px%3B%22%20style%3D%22padding-left%20%3A%2030px%3B%22%3EI.%20Set%20up%20the%20main%20clock%20so%20that%20it%20is%20generated%20from%20crystal%20or%20oscillator%2C%20and%20it%20is%20evenly%20dividable%20by%2040%20MHz.%3C%2FP%3E%0A%3CP%20class%3D%22lia-indent-padding-left-30px%22%20style%3D%22padding-left%20%3A%2030px%3B%22%20style%3D%22padding-left%20%3A%2030px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-center%22%20image-alt%3D%22OCP-EmSA-Step3.gif%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22OCP-EmSA-Step3.gif%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F302782i3C156025545534FB%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22OCP-EmSA-Step3.gif%22%20alt%3D%22OCP-EmSA-Step3.gif%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20class%3D%22lia-indent-padding-left-30px%22%20style%3D%22padding-left%20%3A%2030px%3B%22%20style%3D%22padding-left%20%3A%2030px%3B%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%20class%3D%22lia-indent-padding-left-30px%22%20style%3D%22padding-left%20%3A%2030px%3B%22%20style%3D%22padding-left%20%3A%2030px%3B%22%3EII.%20Change%20the%20PLL%20configuration%20an%20even%20multiple%20of%2040%20MHz%3C%2FP%3E%0A%3CP%20class%3D%22lia-indent-padding-left-30px%22%20style%3D%22padding-left%20%3A%2030px%3B%22%20style%3D%22padding-left%20%3A%2030px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22OCP-EmSA-Step3.2.gif%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22OCP-EmSA-Step3.2.gif%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F302784iC735571D16BC6D53%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22OCP-EmSA-Step3.2.gif%22%20alt%3D%22OCP-EmSA-Step3.2.gif%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20class%3D%22lia-indent-padding-left-30px%22%20style%3D%22padding-left%20%3A%2030px%3B%22%20style%3D%22padding-left%20%3A%2030px%3B%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%20class%3D%22lia-indent-padding-left-30px%22%20style%3D%22padding-left%20%3A%2030px%3B%22%20style%3D%22padding-left%20%3A%2030px%3B%22%3EIII.%20Set%20the%20CAN%20divider%20to%20get%20a%2040%20MHz%20clock.%3C%2FP%3E%0A%3CP%20class%3D%22lia-indent-padding-left-30px%22%20style%3D%22padding-left%20%3A%2030px%3B%22%20style%3D%22padding-left%20%3A%2030px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-center%22%20image-alt%3D%22OCP-EmSA-Step3.3.gif%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22OCP-EmSA-Step3.3.gif%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F302786i12446A3D305206CA%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22OCP-EmSA-Step3.3.gif%22%20alt%3D%22OCP-EmSA-Step3.3.gif%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E4.%20Update%20the%20code.%3C%2FP%3E%0A%3CP%20class%3D%22lia-indent-padding-left-30px%22%20style%3D%22padding-left%20%3A%2030px%3B%22%20style%3D%22padding-left%20%3A%2030px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22OCP-EmSA-Step4.gif%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22OCP-EmSA-Step4.gif%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F302787iFD2FAAE98EE94298%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22OCP-EmSA-Step4.gif%22%20alt%3D%22OCP-EmSA-Step4.gif%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20class%3D%22lia-indent-padding-left-30px%22%20style%3D%22padding-left%20%3A%2030px%3B%22%20style%3D%22padding-left%20%3A%2030px%3B%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E5.%20Add%20Open-CMSIS%20Packs%20to%20the%20project.%3C%2FP%3E%0A%3CP%20class%3D%22lia-indent-padding-left-30px%22%20style%3D%22padding-left%20%3A%2030px%3B%22%20style%3D%22padding-left%20%3A%2030px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-center%22%20image-alt%3D%22OCP-EmSA-Step5.gif%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22OCP-EmSA-Step5.gif%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F302788i129944316E8FE49F%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22OCP-EmSA-Step5.gif%22%20alt%3D%22OCP-EmSA-Step5.gif%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20class%3D%22lia-indent-padding-left-30px%22%20style%3D%22padding-left%20%3A%2030px%3B%22%20style%3D%22padding-left%20%3A%2030px%3B%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3E6.%20Project%20set-up%3C%2FP%3E%0A%3CP%20class%3D%22lia-indent-padding-left-30px%22%20style%3D%22padding-left%20%3A%2030px%3B%22%20style%3D%22padding-left%20%3A%2030px%3B%22%3EI.%20Add%20the%20watchdog%20driver.%3C%2FP%3E%0A%3CP%20class%3D%22lia-indent-padding-left-30px%22%20style%3D%22padding-left%20%3A%2030px%3B%22%20style%3D%22padding-left%20%3A%2030px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-center%22%20image-alt%3D%22OCP-EmSA-Step6.gif%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22OCP-EmSA-Step6.gif%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F302789i2D4009AC9B735BCB%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22OCP-EmSA-Step6.gif%22%20alt%3D%22OCP-EmSA-Step6.gif%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20class%3D%22lia-indent-padding-left-30px%22%20style%3D%22padding-left%20%3A%2030px%3B%22%20style%3D%22padding-left%20%3A%2030px%3B%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%20class%3D%22lia-indent-padding-left-30px%22%20style%3D%22padding-left%20%3A%2030px%3B%22%20style%3D%22padding-left%20%3A%2030px%3B%22%3EII.%20Exclude%20the%20%3CEM%3Efsl_mcan.c%3C%2FEM%3E%20module%20from%20the%20build.%20A%20dedicated%20version%20is%20included%20in%20the%20EmSA%20packs.%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-center%22%20image-alt%3D%22OCP-EmSA-Step6.2.gif%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22OCP-EmSA-Step6.2.gif%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F302792iA7DA094805159A79%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22OCP-EmSA-Step6.2.gif%22%20alt%3D%22OCP-EmSA-Step6.2.gif%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%20class%3D%22lia-indent-padding-left-30px%22%20style%3D%22padding-left%20%3A%2030px%3B%22%20style%3D%22padding-left%20%3A%2030px%3B%22%3EIII.%20Add%20the%20%3CEM%3Emain.c%26nbsp%3B%3C%2FEM%3Emodule%20from%20CMSIS%20template%3C%2FP%3E%0A%3CP%20class%3D%22lia-indent-padding-left-30px%22%20style%3D%22padding-left%20%3A%2030px%3B%22%20style%3D%22padding-left%20%3A%2030px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22OCP-EmSA-Step6.3.gif%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22OCP-EmSA-Step6.3.gif%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F302793i2B47E4DF224568F5%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22OCP-EmSA-Step6.3.gif%22%20alt%3D%22OCP-EmSA-Step6.3.gif%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20class%3D%22lia-indent-padding-left-30px%22%20style%3D%22padding-left%20%3A%2030px%3B%22%20style%3D%22padding-left%20%3A%2030px%3B%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%20class%3D%22lia-indent-padding-left-30px%22%20style%3D%22padding-left%20%3A%2030px%3B%22%20style%3D%22padding-left%20%3A%2030px%3B%22%3EIV.%20Exclude%20or%20remove%20the%20original%20main%20source%20code%26nbsp%3B%3CEM%3Emcan_interrupt_transfer.c%26nbsp%3B%3C%2FEM%3Efile.%3C%2FP%3E%0A%3CP%20class%3D%22lia-indent-padding-left-30px%22%20style%3D%22padding-left%20%3A%2030px%3B%22%20style%3D%22padding-left%20%3A%2030px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-center%22%20image-alt%3D%22OCP-EmSA-Step6.4.gif%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22OCP-EmSA-Step6.4.gif%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F302794i87E5F0B6FC635840%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22OCP-EmSA-Step6.4.gif%22%20alt%3D%22OCP-EmSA-Step6.4.gif%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E7.%20Save%20and%20build%20the%20project.%3C%2FP%3E%0A%3CP%20class%3D%22lia-indent-padding-left-30px%22%20style%3D%22padding-left%20%3A%2030px%3B%22%20style%3D%22padding-left%20%3A%2030px%3B%22%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22OCP-EmSA-Step7.gif%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22OCP-EmSA-Step7.gif%22%20style%3D%22width%3A%20999px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F302795i5C680BC0737EA3FC%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22OCP-EmSA-Step7.gif%22%20alt%3D%22OCP-EmSA-Step7.gif%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%20class%3D%22lia-indent-padding-left-30px%22%20style%3D%22padding-left%20%3A%2030px%3B%22%20style%3D%22padding-left%20%3A%2030px%3B%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%20class%3D%22lia-indent-padding-left-30px%22%20style%3D%22padding-left%20%3A%2030px%3B%22%20style%3D%22padding-left%20%3A%2030px%3B%22%3E%26nbsp%3B%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CBR%20%2F%3E%0A%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-1966486%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3EOpen-CMSIS-Packs%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E
100% helpful (1/1)
Version history
Last update:
‎11-15-2024 10:51 AM
Updated by: