interfacing MC9S08DZ60 to Hall sensors

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

interfacing MC9S08DZ60 to Hall sensors

1,905 次查看
EtherJones
Contributor II
Hello,
 
What's the best way to interface the MC9S08DZ60 to Hall sensors (to commutate a brushless DC motor) ?
 
I need to detect the change in the Hall sensor output in both directions, so I need to detect (and interrupt on) both rising and falling edges.
 
As I read the data sheet, GPIO pins can be configured to detect either rising or falling, but not both.
 
Is it OK to tie 2 GPIO pins together, and configure one for rising and the other for falling?  That would generate 2 separate interrupts for each Hall sensor, but that's OK - I could just set a flag to indicate which interrupt is being serviced and call a common routine.
 
Is there a better way to do this that I am missing? 
 
I thought about using a TPM channel as input capture (since that can be configured to interrupt on both edges) but all the TPM channels are being used.
 
Thank you.
标签 (1)
0 项奖励
回复
2 回复数

693 次查看
rocco
Senior Contributor II
Hi, Ether:

It's too bad that you have no input-captures available, because they are perfect for this. I use them to interrupt on each hall-sensor edge, and then use the captured time values to calculate velocity and acceleration in order to close the velocity loop.

But as Peg suggested, you can use one input pin per hall, and toggle the edge sensitivity after each interrupt. You could then read the timer within the ISR to extract velocity info, without much loss of accuracy.
0 项奖励
回复

693 次查看
peg
Senior Contributor IV
Hi,
This is going to be a busy little micro!
It's no problem to tie two inputs together to achieve this.
Or maybe flip the edge detection after each edge?
Seems like we have been here before
 
Regards
Peg
 
0 项奖励
回复