FTM0/FTM1 on KE02 with MCUXpresso

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

FTM0/FTM1 on KE02 with MCUXpresso

ソリューションへジャンプ
1,168件の閲覧回数
justusandjustic
Contributor III

I am attempting to use MCUXpresso with an S9KEAZN64 processor. I'm currently trying to set up a timer with FTM. I looked at one of the demo projects for setting up a timer using FTM2. The demo works, but when I try to use FTM0 or FTM1, I encounter a Hard Fault. I have created projects on KDS with Processor Expert using FTM0/FTM1 as timers, so I looked through the libraries there for a clue. I also looked in the Reference Manual for KE02 chips, which is where I found this statement:

"This device contains up to three FTM modules of one 6-channel FTM with full functions
and two 2-channel FTM with basic TPM functions."

Comparing the KDS library code to the MCUXpresso SDK code, it seems that the FTM0/FTM1 only have registers corresponding to the first four members of the FTM_Type struct, while FTM2 has registers for the rest of them as well. Many of the fsl_ftm.c library functions attempt to access the registers that do not exist for FTM0/FTM1, which seems to be causing my Hard Faults.

What then is the proper way to use these "basic" FTMs with the MCUXpresso SDK? Or do I need to make my own initialization functions and access the registers directly?

-Josiah

1 解決策
1,037件の閲覧回数
justusandjustic
Contributor III

So I actually solved this before I finished typing my question, but I figured I would still post it, in case it helps someone else in the future.

It turns out that there is a driver library (fsl_tpm.c/.h) for TPM timer modules in the MKE02Z64xxx4 SDK I was using for MCUXpresso. In all the documentation that I found, these components were referred to as "FTM0" and "FTM1", so naturally I assumed they should work with the FTM libraries (fsl_ftm.c/.h). The only clue was in the reference manual where they described the first two timer modules as having "basic TPM functions". This lead me to think that perhaps there was a TPM library, and behold, there indeed was.

-Josiah

元の投稿で解決策を見る

0 件の賞賛
3 返答(返信)
1,037件の閲覧回数
carlosflr
Contributor II

I had been struggling for two days trying to use #FTM0 in a #MKE02Z64 using MCUXpresso IDE V11.1 with SDK 2.7. I wanted to use a PWM channel to drive a buzzer. Adding FTM0 peripheral using ConfigTools triggers a hard fault during initialization. I then found your post and tried removing this peripheral from ConfigTools and initializing it manually (using the TPM driver example in the SDK as a reference). This solved my problem. It must be a bug in ConfigTools.

Thanks for posting your solution!

-Carlos

1,037件の閲覧回数
justusandjustic
Contributor III

Yes, there doesn't seem to be a "TPM" Peripheral, so you have to set up those timers manually.  There also doesn't seem to be an "ADC" Peripheral for that chip family, which is pretty annoying as well. :/

I'm glad my post helped save you from some additional frustration!

-Josiah

0 件の賞賛
1,038件の閲覧回数
justusandjustic
Contributor III

So I actually solved this before I finished typing my question, but I figured I would still post it, in case it helps someone else in the future.

It turns out that there is a driver library (fsl_tpm.c/.h) for TPM timer modules in the MKE02Z64xxx4 SDK I was using for MCUXpresso. In all the documentation that I found, these components were referred to as "FTM0" and "FTM1", so naturally I assumed they should work with the FTM libraries (fsl_ftm.c/.h). The only clue was in the reference manual where they described the first two timer modules as having "basic TPM functions". This lead me to think that perhaps there was a TPM library, and behold, there indeed was.

-Josiah

0 件の賞賛