This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TSER953:为 tser953 添加 PWM 输出支持

Guru**** 2747375 points

Other Parts Discussed in Thread: TSER953, TDES954

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1603115/tser953-adding-pwm-output-support-for-tser953

部件号: TSER953
主题中讨论的其他部件: TDES954

 def ti954_init_serdes(self):
        """Initialize SerDes configuration"""
        try:
            # Reset deserializer digital block
            self.deser_regmap.write(TI954_RESET, 0x03)
            time.sleep(2.0)  # 2000ms delay
            
            # Write Enable for RX port 0 registers
            self.deser_regmap.write(0x4C, 0x03)
            
            # Enable I2C Pass-Through, BC = 50Mbps
            self.deser_regmap.write(0x58, 0x5E)
            
            # Set Alias for AR1044 Camera
            self.deser_regmap.write(0x5D, 0x20)
            self.deser_regmap.write(0x65, 0x20)
            
            # Enable CSI output
            self.deser_regmap.write(0x32, 0x01)
            
            # Enable CSI output with non-continuous clock, 2 lanes
            self.deser_regmap.write(0x33, 0x21)
            
            # Forwarding enabled for RX Port 0
            self.deser_regmap.write(0x20, 0x20)
            
            # Read and log RX_PORT_STS1
            val = self.deser_regmap.read(TI954_RX_PORT_STS1)
            self.logger.info(f"954 RX_PORT_STS1: 0x{val:02x}")
            
            # Set SerAlias address
            self.deser_regmap.write(TI954_SLAVE_ID0, self.ser_alias_addr << 1)
            
            # Read and log serializer GENERAL_STATUS
            val = self.ser_regmap.read(TI953_GENERAL_STATUS)
            self.logger.info(f"953 GENERAL_STATUS: 0x{val:02x}")
            
            # Configure serializer: 2 lanes, CRC enable, 1.8V I2C
            self.ser_regmap.write(0x02, 0x13)
            
            return 0
            
        except Exception as e:
            self.logger.error(f"Error in ti954_init_serdes: {e}")
            return -1
    
    def ti954_init_gpio_hw(self):
        """Initialize GPIO hardware configuration"""
        try:
            # Initialize GPIO 0 hardware
            # Enable output for GPIO4
            self.deser_regmap.write(0x0F, 0x6F)
            
            # Set output source of DES GPIO4 to be GPIO2 on the serializer at RX Port 0
            self.deser_regmap.write(0x14, 0x41)
            
            # Configure all GPIOs from Ser to be remote from Deser
            self.ser_regmap.write(0x0D, 0xF0)
            
            # Set GPIO1 and 3 Direction Output
            self.ser_regmap.write(0x0E, 0xA5)
            
            # Commented out alternative configuration:
            # self.ser_regmap.write(0x0E, 0x2D)
            
            self.ser_regmap.write(0x33, 0x07)
            
            # Commented out placeholder configurations:
            # self.deser_regmap.write(0x10, 0x6F)  # GPIO 1 enable
            # self.deser_regmap.write(0x15, 0x41)  # GPIO 1 source
            
            # Initialize both GPIO states to LOW
            self.gpio_state[0] = 0
            self.gpio_state[1] = 0
            
            return 0
            
        except Exception as e:
            self.logger.error(f"Error in ti954_init_gpio_hw: {e}")
            return -1

 

Python 代码是串行器/解串器的初始化、但我们希望串行器上的一个 GPIO 输出输出 PWM 信号来控制 LED 亮度、是否有允许 PWM 占空比控制的配置、频率不是很重要。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Anthony:

    我们不能对 TSER953 上的 GPIO 进行直接 PWM 控制。 我们提供可编程帧同步生成器、如果尚未用于图像传感器、这可能会用于此应用。 TDES954 数据表提供了有关帧同步发生器和编程的详细信息:  7.4.27.2 内部生成的帧同步

    FrameSync 占空比通过 FS_HIGH_TIME_x 和 FS_LOW_TIME_x 控制进行控制。

    此致、

    Zoe