USIT速率及Lane数的计算

在目前主流的TV显示产品中,在TFT LCD液晶面板和TCON板之间,主要的传输信号协议USIT是占比非常大的,现在常用的Source IC USIT芯片的最高的传输速率有1.61Gbps,那在传输4K(3840x2160)分辨率的面板时,需要的多少lane的USIT呢?

分辨率3840x2160考虑blank的数据,H total 是4400, V total是2250

总的数据量=H total*V total*刷新率*3(亚像素R、G、B)*8(bit数)

4K60,8bit的数据量=4400*2250*60*3*8=14.256Gbps

USIT是用10B/9B的编码,如果用USIT传输,实际数据量=14.256*10/9=15.84Gbps

如果是用12 lanes USIT,每lane的数据量是=15.84/12=1.32Gbps<1.61Gbps,12Lane的传输速率是满足要求的饿,现在大部分4K TV都是用的12lane的USIT信号。

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
为了在STM32上实现1us的定时器时间计算,我们可以使用以下步骤: 1. 首先,我们需要选择一个合适的定时器。在STM32F103ZE中,我们可以选择通用定时器TIM2-TIM5或基本定时器TIM6-TIM7。这里我们选择TIM2作为例子。 2. 接下来,我们需要配置TIM2的时钟源和分频系,以便将定时器时钟频率设置为1MHz。假设我们使用的是72MHz的系统时钟,那么我们可以将TIM2的时钟源设置为APB1时钟(36MHz),并将分频系设置为36,即可得到1MHz的定时器时钟频率。 ```c RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_TimeBaseStructure.TIM_Period = 0xFFFF; TIM_TimeBaseStructure.TIM_Prescaler = 35; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); ``` 3. 然后,我们需要配置TIM2的输入捕获通道,以便捕获PWM信号的上升沿和下降沿。假设我们使用的是TIM2的通道1,那么我们可以将其配置为输入捕获模式,并使其捕获上升沿和下降沿。 ```c TIM_ICInitTypeDef TIM_ICInitStructure; TIM_ICInitStructure.TIM_Channel = TIM_Channel_1; TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising; TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1; TIM_ICInitStructure.TIM_ICFilter = 0; TIM_ICInit(TIM2, &TIM_ICInitStructure); TIM_ICInitStructure.TIM_Channel = TIM_Channel_1; TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Falling; TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_IndirectTI; TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1; TIM_ICInitStructure.TIM_ICFilter = 0; TIM_ICInit(TIM2, &TIM_ICInitStructure); ``` 4. 最后,我们可以在TIM2的输入捕获中断处理函计算PWM信号的周期和占空比,并将结果通过串口输出。 ```c void TIM2_IRQHandler(void) { if (TIM_GetITStatus(TIM2, TIM_IT_CC1) != RESET) { static uint32_t last_capture = 0; static uint32_t current_capture = 0; static uint32_t period = 0; static uint32_t duty_cycle = 0; current_capture = TIM_GetCapture1(TIM2); if (current_capture > last_capture) { period = current_capture - last_capture; } else { period = 0xFFFF - last_capture + current_capture; } duty_cycle = (period * 100) / 0xFFFF; printf("Period: %d us, Duty Cycle: %d %%\r\n", period, duty_cycle); last_capture = current_capture; TIM_ClearITPendingBit(TIM2, TIM_IT_CC1); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XT_ALLEN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值