News:

Attention: For security reasons,please choose a user name *different* from your login name.
Also make sure to choose a secure password and change it regularly.

Main Menu

TEB0835 Fan Ctrl via LM96163 (Known Issues?)

Started by StefanK82, September 12, 2024, 03:28:46 PM

Previous topic - Next topic

StefanK82

Hello everyone,
It's not a major issue for my project but I have a problem with my TEB0835 base board and hope someone can show me my mistake.

The speed of the cooling fan should be controlled by U9 (LM96163, compatible with LM63), which reads the temperature and provides a PWM output for fan control.
My headache is that the level (pwm frequency) on the PWM pin (U9-5) cannot be influenced by anything.

According to the LM96163 data sheet, the PWM output is an "open-drain digital output", whereby GND level should be applied by default in the POR state.

Nevertheless, I can measure a permanent output voltage of about 11.4 volts at pin J21-4, even in the POR state of the not configured LM96. The only way to reduce this is to reduce the Boards input voltage.

I perform the configuration of the LM96 during the uboot with the "PRE_BOOT" variable and the register set shown in the following.  The order of the registers is specified in the data sheet as the prescribed order and also reflects the configuration order.

(Line breaks and comments are only made for a readability and do not reflect to PRE_BOOT variable content)

CONFIG_PREBOOT="
i2c dev 4;
i2c md 0x4c 0x33;  # Check device came up w/o error
i2c mw 0x4c 0x30 0x00;  # Disable TrueTherm Diode
i2c mw 0x4c 0x4a 0x20;  # Set PWM WR_EN / trad. TACH input
i2c mw 0x4c 0x4b 0x0f;  # Use DCyc and SpinUp Time for SpinUp
i2c mw 0x4c 0x4d 0x08;  # Select a PWM OutFreq of 22.5 kHz
i2c mw 0x4c 0x4e 0x00;  # LUT TempOffset (0°C)
i2c mw 0x4c 0x4f 0x08;  # LUT Hyst. (20°C(?))
i2c mw 0x4c 0x50 0x15;  # LUT Temp 1 (21°C)
i2c mw 0x4c 0x51 0x13;  # LUT PWM 1 (30% DCYCLE) (FAN Minimum)
i2c mw 0x4c 0x52 0x29;  # LUT Temp 2  (41°C)
i2c mw 0x4c 0x53 0x16;  # LUT PWM 2  (35% DTY CYCLE)
i2c mw 0x4c 0x54 0x31;  # LUT Temp 3  (49°C)
i2c mw 0x4c 0x55 0x1A;  # LUT PWM 3  (40% DTY CYCLE)
i2c mw 0x4c 0x56 0x39;  # LUT Temp 4  (57°C)
i2c mw 0x4c 0x57 0x1D;  # LUT PWM 4  (45% DTY CYCLE)
i2c mw 0x4c 0x58 0x41;  # LUT Temp 5  (65°C)
i2c mw 0x4c 0x59 0x20;  # LUT PWM 5  (50% DTY CYCLE)
i2c mw 0x4c 0x5A 0x49;  # LUT Temp 6  (73°C)
i2c mw 0x4c 0x5B 0x48;  # LUT PWM 6  (75% DTY CYCLE)
i2c mw 0x4c 0x5C 0x51;  # LUT Temp 7  (81°C)
i2c mw 0x4c 0x5D 0x3F;  # LUT PWM 7  (85% DTY CYCLE)
i2c mw 0x4c 0x5E 0x59;  # LUT Temp 8  (89°C)
i2c mw 0x4c 0x5F 0x3F;  # LUT PWM 8  (95% DTY CYCLE)
i2c mw 0x4c 0x60 0x61;  # LUT Temp 9  (97°C)
i2c mw 0x4c 0x61 0x3F;  # LUT PWM 9  (100% DTY CYCLE)
i2c mw 0x4c 0x62 0x69;  # LUT Temp 10 (105°C)
i2c mw 0x4c 0x63 0x3F;  # LUT PWM 10  (100% DTY CYCLE)   
i2c mw 0x4c 0x64 0x71;  # LUT Temp 11 (113°C)
i2c mw 0x4c 0x65 0x3F;  # LUT PWM 11  (100% DTY CYCLE)   
i2c mw 0x4c 0x66 0x71;  # LUT Temp 12 (121°C)
i2c mw 0x4c 0x67 0x3F;  # LUT PWM 12  (100% DTY CYCLE)
i2c mw 0x4c 0x4e 0x00;  # LUT Temp Offset (0°C)
i2c mw 0x4c 0x45 0x00;  # Enh. Config (Default)
i2c mw 0x4c 0x4a 0x03;  # Reset PWM WR_EN
i2c mw 0x4c 0x03 0x85;  # Mask ALERT INTR / En TACH / Filter Remote Diode
i2c mw 0x4c 0xBF 0x05"  # RD Filter LVL 2 / selfclear ALERT

I checked register setup and PWM output reg by unloading the LM63 kernel module and reading the register content directly via 'i2cget'.
I checked positive, that the PWM output register 0x4C takes over the correct values from the LUT according to the given temp.
Only the output pin, measured with an oscilloscope, shows no change or PWM-like signal anyway.

Is there a known hardware related problem with it or anyone has an idea what I am doing wrong?
Thanks in advance for any valuable advice!

CU
Stefan

StefanK82

Morning everybody,

I solved yesterday's problem myself. My mistake was to rely on the fan's data sheet and take the yellow wire as the PWM signal. This is correct for the fan. But the pinning of the TEB0835 does not reflect this. Long story short, it's just a pinning issue. The pins of the TEB0835 and the KK0835-02 cooling kit do not match. Just swap the blue/yellow cable assignment and everything works like a charm.

Have fun

Stefan