-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fan speed saturates at 75% #19
Comments
stoklund
added a commit
to stoklund/Adafruit_CircuitPython_EMC2101
that referenced
this issue
Oct 30, 2021
- Add a `_full_speed_lsb` member variable which represents the (smallest) LSB value corresponding to a 100% fan setting. - Add a `_calculate_full_speed()` method that computes it. - Use `_full_speed_lsb` when converting percentages to fan speed settings and back. Fixes adafruit#19.
stoklund
added a commit
to stoklund/Adafruit_CircuitPython_EMC2101
that referenced
this issue
Oct 30, 2021
- Add a `_full_speed_lsb` member variable which represents the (smallest) LSB value corresponding to a 100% fan setting. - Add a `_calculate_full_speed()` method that computes it. - Use `_full_speed_lsb` when converting percentages to fan speed settings and back. Fixes adafruit#19.
ok! this chip is surprisingly complex - thanks for any PR :) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I was testing a Noctua NF-A4x20 PWM fan with Adafruit's EMC2101 breakout board and noticed that the fan speed maxes out at 5000 rpm already at a 75% manual fan speed setting:
I first thought this was a property of my fan, but reading the EMC2101 data sheet, I noticed:
PWM_F
defaults to 0x17 after reset, not the maximum and recommended 0x1f.PWM_F
register. From Appendix A:DUTY_CYCLE = FAN_SETTING / (PWM_F * 2) * 100%
.The
manual_fan_speed
property is usingMAX_LUT_SPEED
as a divisor instead ofPWM_F * 2
. This means that the actual PWM duty cycle reaches 100% atemc.fan_speed = PWM_F * 2 / MAX_LUT_SPEED
which is about 73%, matching my graph.The divisor in the
manual_fan_speed
functions should bePWM_F * 2
when running in PWM mode and 64 in DAC mode. This should also cause more trouble when setting thepwm_frequency
property, although I haven't tried that yet.I'll put together a PR for this.
The text was updated successfully, but these errors were encountered: