Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: [RFC] USB DVB design | state machine overview



here just a short outline how the firmware is supposed to work:

-----------------------------------------------------------------------------
in order to start a transaction the onchip 8051 does something like this

  - initializes the transaction count register = 188
  - start the GPIF state machine, state 1

-----------------------------------------------------------------------------
GPIF state 1

  - wait until pin RDY0 (signal TSSYNC) goes high + INTRDY
     (sync byte 0x47 is received and we have space in the FIFO)
  - go to state 2

-----------------------------------------------------------------------------
GPIF state 2

  - wait for RDY1 (signal TSCLK) going low
  - go to state 3

-----------------------------------------------------------------------------
GPIF state 3

  - wait for RDY1 (signal TSCLK) going high
  - sample current data byte, write it into FIFO
  - if transaction count > 0 go to state 2, elso go idle
     and throw done_irq

-----------------------------------------------------------------------------
on done_irq the 8051 can take a look on the PID bytes in the packets:

  - look up in the PID table if we're interested in this PID
  - if so: pass this packet to the host PC, else skip this packet
  - swap FIFO pages
  - start transaction again

-----------------------------------------------------------------------------



-- 
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index