Freescale Semiconductor DRM079 manual Firmware Control Loop

Page 17

START

TargetPWMPeriod = Longest ActualPWMPeriod = Longest

Drive L1

Read Temp. Sensor

De-energized coils = DeadTime

Control Loop

Continuously monitor the hall sensor output

Energize L1 / L2

Start Timer

Hall

N

Timeout?

N

Edge?

 

 

 

 

 

Drive L2

Read Temp. Sensor

De-energized coils = DeadTime

Y

Stop Timer

Record DriveTime

De-energize Coils

ActualPWMPeriod = DriveTime + DeadTime

Y

De-energize Coils

Sound Buzzer

Fault condition detected.

During the dead time delay update PWM period for the next commutation

128ms?

Y

N

Modify Target PWM period value every 128ms based on temperature

Update TargetPWMPeriod

Target > N

Actual?

Y

Increment DeadTime

reading

Target = N

Actual?

Y

Decrement DeadTime

Figure 3-2. Firmware Control Loop

Variable Speed DC Fan Control using the MC9RS08KA2, Rev. 0

Freescale Semiconductor

17

Image 17
Contents Variable Speed DC Fan Control using the MC9RS08KA2 Page Revision History Variable Speed DC Fan Control using the MC9RS08KA2Freescale Semiconductor Table of Contents Freescale Semiconductor Introduction Chapter IntroductionDC Fan Reference Design Targets Freescale’s New Generation Ultra Low Cost MCUBi-Phase Bldc Motor Diagram Bi-Phase Bldc MotorFreescale Semiconductor Rotor Position Control Chapter Motor ControlCommutation Speed Control Commutation WaveformsMotor Startup Fault DetectionFreescale Semiconductor Hardware Resources Block DiagramChapter Implementation Control Loop Firmware Control Loop = V DD⎜ RC⎟ Temperature Sensor MeasurementAcmpsc #63, MtimmodACMPSCACF, Acmpsc Temperature Conversion Temperature Conversion Table Freescale Semiconductor VR1 Freescale Semiconductor Appendix B Program Listing Mtimtclkfalling RtidisableMtimtclkrising AcmpoutputbothMAPADDR6NVFTRIM, Icssc #HIGH613NVICSTRM, PageselMAPADDR6NVICSTRM, Icstrm $3FFA #ICSDIV2, ICSC2Kbipe Kbies#MTIMBUSCLKMTIMDIV256, Mtimclk #255, MtimmodRts Drive coil MAPADDR6SRSMTIMSCTOF, Mtimsc KBISCKBACK, KbiscBUZZER, Ptad Kbisc#6, Mtimmod #24, Mtimmod#30, Mtimmod Page How to Reach Us