Chinaunix首页 | 论坛 | 博客
  • 博客访问: 403796
  • 博文数量: 53
  • 博客积分: 1910
  • 博客等级: 中尉
  • 技术积分: 1130
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-10 14:56
文章分类

全部博文(53)

文章存档

2013年(1)

2012年(17)

2011年(33)

2010年(2)

分类: 嵌入式

2012-09-02 18:11:03

/*********************
 * Display Interface *
 *********************/
  DI 提供最大3个diaplay的时分复用的仲裁。 DI从DC或者AHB转换数据到适合指定显示接口的格式
  (串并接口)

  DI 生成显示clock和其他显示控制信号(通过可编程的timing)。显示数据和控制信号组从DC发到DI,
  来自DC的控制被用来生成控制信号发送到display, 但串行LLA不同,它的DC被bypass 并且数据直接来自
  arm platform(AHB),
模块图如下:

  上图中显示接口包含2组控制信号
  1.Time oriented signals ==> VSYNC,HSYNC,pixel clock
  2. Data oriented signals ==> DC 可以增加标记到发送给DI的数据,这些标记用来指示数据的特定属性,
     比如enf-of-line, eof,chip select等. 来自DC的标记(marker)触发DI上1个和多个信号的指定波形,
     指定的波形将被在属于关联数据的bus上看到.
     标记可以被同步到time oriented 信号,比如连接 end-of-frame 信号到下一个VSYNC


  * DC interface, data accumulator and clock domain synchronizer
    data 累加器,是DI的输入缓冲,它接收来自DC的数据和控制信号,并将它们从DC的clock domain
    同步到DI 的clock domain.


  * Parallel interface data synchronizer and data oriented interface
    data accumulate (DI的输入缓冲)将根据DI内部event 将数据发送到display.
    1个tag被DC的microcode(SYNC field P)关联到每个数据。tag选择将要同步的evnent.
    一旦对应的事件发生,数据就别送到display. 但是对异步display,tag 等于0,因为数据部需要和
    event 同步,数据将立即从buffer 中发出。
 
  * Timing generator
    用来生成每个显示接口pin的波形。
   
    10个counter,1个counter可以做time base,其他9个被用来生成控制信号的波形
    DI clock 可以继承自IPU clock(HSP_CLK) 或者外部源(ipp_di_#_ext_clk pin),通过配置
    DI#_CLK_EXT bit.

    timebase的参数由DI#_DISP_CLK_OFFSET,DI#_DISP_CLK_PERIOD,DI#_DISP_CLK_UP,DI#_DISP_CLK_DOWN
    决定
 
   The Clear is the trigger that resets the counter,It is selected by programming the
   DI#_CNT_CLR_SEL_

    1个波形主要有5个参数:(P2756的图描述很清晰)
      OFFSET, DI#_OFFSET_RESOLUTION_ (select the source of the trigger),
               在选择触发源时要注意,counter可以被index 小于它的counter触发

               DI#_OFFSET_VALUE_ (The offset's value )
      STEP,
      run,    DI#_RUN_RESOLUTION_
              DI#_RUN_VALUE_
      up,
      down

   注意N是counter的index
  
   * Polarity generator (P2759)
     除了static polarity(根据每个pin的 POLARITY_<#> bit 设置)
     其他控制polatrity的单元称为Polarity generator
     POLARITY_GEN_EN[1] to 1 来使能该单元,它有两种mode
     1.Normal polarity mode
       POLARITY_TRIGGER_SEL (定义采样点)
       POLARITY_CLR_SEL      (定义polarity 值)
     2.Toggle mode
       POLARITY_TRIGGER_SEL

  如果对 clear,offset,tigger ,value 不清楚请看下图:


  注意 Counter number 9的使用(P2761) 第9个计数器的使用
   DI0 Sync Wave Gen 9 Register 1 (IPU_DI0_SW_GEN1_9)
   Counter #9 main waveform select
   This field defines the counter that counter #9's auxiliary waveform will be attached too.
     000 Counter #9's waveform is attached to counter #1's waveform
     ...
     111 Counter #9's waveform is attached to counter #8's waveform

  * DI's active window
    如下图

 

  * Waveform settings for asynchronous interface pins
   DI 提供8个信号用于异步接口. (PIN11到 PIN17,+ CS)
   (ipp_di_#_pin_11 through ipp_di_0_pin_17) +
   (ipp_di_0_do_dispb_d0_cs).

并行pin设置图:

   如图,waveform[3:0]是DC microcode的一个字段,它指向某个
   DI#_DW_GEN_x,比如:
   0 - The waveform of the data oriented output pins is no
   1 -Points to DI0_DW_GEN_0 or DI1_DW_GEN_0
   2 - Points to DI0_DW_GEN_1 or DI1_DW_GEN_1
   ...
   12 - Points to DI0_DW_GEN_11 or DI1_DW_GEN_11

   DI#_DW_GEN_x  中 对 PIN11-PIN17,cst,rs,serial_clk等
   设置选择:
   00 The waveform is defined according to the settings on DI0_DW_SET0_
   01 The waveform is defined according to the settings on DI0_DW_SET1_
   10 The waveform is defined according to the settings on DI0_DW_SET2_
   11 The waveform is defined according to the settings on DI0_DW_SET3_

   然后DI0_DW_SETx_i中的di0_data_cnt_down0_,di0_data_cnt_up0_
    分别定义:Waveform's falling edge position和Waveform's rising edge position.

    四元组中的某1个设置对应到某个PT_x

串行pin设置图:

  * P2766  提供了一个串行接口波形设置的例子


   一个trigger 指示SI(serialinterface) won the DI's arbitration,
    因此接下来访问将通过SI,trigger过后START_PERIOD,timbase 开始输出
    timebase后up ,down 定义访波对timebase的offset和宽度。
    SERIAL_PERIOD定义几个timebase周期为SD_D_CLK的周期
    VALID_BITS定义timebase的tick数

   数据的发送根据timebase ticks, DI#_SERIAL_LATCH 定义一个offset

 * Low Level Access - LLA =>arm platform 直接访问display
   DMFC直接到DI,bypass DC.

 * using a mask channel => 经由IDMAC 通过 channel 44 ???
 

 

 

阅读(4095) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~