展频技术引入的目的是为了解决电子产品的电磁干扰(EMI)问题。EMI会引起电路性能的降低,严重情况可能会导致整个系统失效,因此相关机构制定了电磁兼容(EMC)规范,要求上市的电子产品必须满足规范要求。降低EMI的方法有很多,比如:屏蔽、滤波、隔离、铁氧化磁环、信号边沿控制以及在PCB中增加电源与地层等等,在实际应用中可灵活使用。展频技术是一种有效且低成本的解决方法,相比以上解决方法,时钟展频是通过时钟内部集成电路调制频率的手段来达到抑制EMI峰值的目地,其不仅调制时钟源,其他的同步于时钟源的数据、地址以及控制信号,在时钟展频的同时也一并得以调制,整体的EMI峰值都因此减小。可以说,时钟展频是系统级的解决方案,这是展频技术相比其他抑制EMI措施的最大优势。
LVDS/DDR展频
如果客户机器LVDS存在电磁干扰则可以对LVDS进行展频,降低EMI峰值,如果客户机器DDR存在电磁干扰则可以对DDR进行展频,客户根据需要将展频参数导入机器即可。目前T5的DDR主频固定,都是720M,但客户的显示屏可能有多种主频的,则针对不同分辨率主机LVDS主频进行展频参数配置,DDR展频可以固定一种配置参数。
DDR展频参数计算
DDR控制器打开展频:0x03001010寄存器写0xb9003b00(1440/24-1=0x3b)
DDRCLK=720M,PLLDDR0=720M*2=1440M,展频1%即1440*1%=14.4M,展频范围即为1440.05M-1454.45M
按如下公式计算(其中X1/X2必须小于1大于0,超过此值需减小展频范围):
X1=1440.05/24-60=0.002083
X2=1454.45/24-60=0.602083
WAVE_BOT=2^17 * x1=131,072*0.002083 = 273 =0x111
WAVE_STEP=2^17* (X2-x1)/(24 MHz/PREQ) * 2 = 131,072*0.6/(24M/31.5K)*2=206=0xce
可知展频参数为:0xcce00111,将此值写入寄存器0x03001110
LVDS展频参数计算
如果LVDS频率为59M,显示分辨率为1280x720,那么
LCDCLK=59M,PLLVIDEO0=59M*7=408M(这个值必须被24整除),展频1%即408*1%=4.08M,展频范围即为408.05M-412.13M
PLLVIDEO控制器打开展频:0x03001040寄存器写0x89002103(408/24*2-1=0x21)
按如下公式计算(其中X1/X2必须小于1大于0,超过此值需减小展频范围):
X1=408.05*2/24-34=0.004166
X2=412.13*2/24-34=0.344166
WAVE_BOT=2^17 * x1=131,072*0.004166 = 546 =0x222
WAVE_STEP=2^17* (X2-x1)/(24 MHz/PREQ) * 2 = 131,072*0.34/(24M/31.5K)*2=117=0x75
可知展频参数为:0xc7508222,将此值写入寄存器0x03001140
如果LVDS频率为52M,显示分辨率为1024x600,那么
LCDCLK=52M,PLLVIDEO0=52M*7=360M(这个值必须被24整除),展频1%即360*1%=3.6M,展频范围即为360.05M-363.65M
PLLVIDEO控制器打开展频:0x03001040寄存器写0x89001d03(360/24*2-1=0x1d)
按如下公式计算(其中X1/X2必须小于1大于0,超过此值需减小展频范围):
X1=360.05*2/24-30=0.004166
X2=363.65*2/24-30=0.304166
WAVE_BOT=2^17 * x1=131,072*0.004166 = 546 =0x222
WAVE_STEP=2^17* (X2-x1)/(24 MHz/PREQ) * 2 = 131,072*0.3/(24M/31.5K)*2=103=0x67
可知展频参数为:0xc6708222,将此值写入寄存器0x03001140
参数配置
对于1280x720 CLK为59M机器可以改init.device.rc中注释#for emi处的值为:
write /sys/class/sunxi_dump/write "0x03001110 0xcce00111"
write /sys/class/sunxi_dump/write "0x03001140 0xc7508222"
write /sys/class/sunxi_dump/write "0x03001010 0xb9003b00"
write /sys/class/sunxi_dump/write "0x03001040 0x89002103"
对于1024x600 CLK为52M机器可以改init.device.rc中注释#for emi处的值为:
write /sys/class/sunxi_dump/write "0x03001110 0xcce00111"
write /sys/class/sunxi_dump/write "0x03001140 0xc6708222"
write /sys/class/sunxi_dump/write "0x03001010 0xb9003b00"
write /sys/class/sunxi_dump/write "0x03001040 0x89001d03"
注意:展频配置只用于EMI测试,因为展频可能对系统稳定性有影响,不建议作为出货配置。