Shop OBEX P1 Docs P2 Docs Learn Events
P8X32A and VGA - Page 10 — Parallax Forums

P8X32A and VGA

14567810»

Comments

  • jmgjmg Posts: 15,173
    edited 2013-06-24 15:29
    In the moment i'am programming my CPLD's with a FT232RL and this software:

    Openschemes FT232 JTAG SVF Player V1.0 - http://openschemes.com/2013/06/22/openschemes-ft232-jtag-svf-player-v1-0/#comment-1144

    Nice find, and some interesting comments on yields in 9500 series devices.

    How long does pgm of the PLDs you have tried take, and how much does it vary, with the retries roulette ?

    I might try that with an ATF15xx series device.
  • megaionstormmegaionstorm Posts: 178
    edited 2013-06-24 15:42
    The programming of one XC9572XL needs 15 minutes.

    Since the new programm version has the retries all programmings works.

    The old programm version without retries couldn't programm this CPLD ! Not once !
  • jmgjmg Posts: 15,173
    edited 2013-06-24 16:21
    The programming of one XC9572XL needs 15 minutes.

    Since the new programm version has the retries all programmings works.

    The old programm version without retries couldn't programm this CPLD ! Not once !

    wow, that is s l o w, but I guess it works.

    I quickly tried it, on a FT232R (seems to like ONLY that exact FTDI variant ) and it swallows a ATF1502BE SVF file, without stopping on signature fail ?
    Currently spinning its wheels, and it seems some of the s l o w speed is due to many messages scrolling past ?

    hehe, with nothing connected but the FT232R, it gives a final
    Complete - Programming Successful!
    oops...
  • megaionstormmegaionstorm Posts: 178
    edited 2013-06-24 16:25
    Yes, there are a lot of messages !

    Later i will try to programm a FPGA with this programm !
  • jmgjmg Posts: 15,173
    edited 2013-06-24 17:38
    Yes, there are a lot of messages !

    Later i will try to programm a FPGA with this programm !

    At those speeds, you might want to pass, and use some smarter hardware ??

    The FT232H series have better JTAG support - if you can find SW to drive them.

    Lattice tools have FT2232H devices on their breakout boards, so I'd suggest the MachXO2 series.
  • megaionstormmegaionstorm Posts: 178
    edited 2013-06-29 04:09
    I think i do my first FPGA try with a Spartan 3E XC3S500E.

    There are two versions available from the ADV7123.
    A 240MHz and a 330MHz version, i think i use the 330MHz version.

    I have found another 512 MBit SDRAM part, the IS42S16320B-7TLI.
    http://uk.farnell.com/integrated-silicon-solution-issi/is42s16320b-7tli/sdram-ind-32m-x-16-3v-54tsop2/dp/1869963?Ntt=IS42S16320B-7TLI
    But it looks expensive:
    29,42 €
  • Mark_TMark_T Posts: 1,981
    edited 2013-08-30 08:08
    ...resurrecting a long thread (sorry I haven't had the patience to trawl through every posting...)

    I was wondering if anyone has tried driving VGA using a Prop 1, SDRAM, and '374 latch.
    My plans are to control the SDRAM control lines (nCS/nRAS/nCAS/nWE/CE) using WAITVID
    so the device can run at high speed, routing the data lines direct to the screen (TFT module with 16
    bit RGB). The Prop pins driving the address lines also can be latched on '374 to allow data writes.

    So far only experimenting with a 'scope and using either 40MHz or 80MHz CLK, and generating all the timings by
    VSCL accounting (the idea is to handle buffered RLE spans during blanking time and decrement
    a counter with the VSCL values until its time to re-sync for the next frame (using a DEN/DCLK TFT
    interface there's no need for Vsync handling).

    I've got some old DIMMs with MT48LC16M8A2's to harvest (or use in-situ with a DIMM socket?).

    Any thoughts? Gotchas? I was thinking a 74LCX374 might be a fast enough latch (the nOE has to
    be nippy for 80MHz in particular).
  • megaionstormmegaionstorm Posts: 178
    edited 2013-10-02 20:02
    I don't know !
  • megaionstormmegaionstorm Posts: 178
    edited 2013-10-03 17:26
    Nice hint.

    I have meanwhile purchased three MT48LC32M16A2 64 MByte SDRAM IC's for my Silverado Project.

    In future i use two of them in my project.

    One for written new graphics data into it and a second for grafics data streaming to the video dac.
    Then memory ic change for double buffering.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2013-10-03 21:27
    @Mark_T, looks like you have something very clever working there. Propeller plus fast memory is a great synergy - the prop does the control signals and the ram stores much bigger pictures. I need to study the code more to see what you are doing in detail but it looks very good.
  • Mark_TMark_T Posts: 1,981
    edited 2013-10-04 06:46
    Dr_Acula wrote: »
    @Mark_T, looks like you have something very clever working there. Propeller plus fast memory is a great synergy - the prop does the control signals and the ram stores much bigger pictures. I need to study the code more to see what you are doing in detail but it looks very good.

    OK, a bit more description should it help. The current code isn't running the SDRAM anything like flat out
    so I have the luxury of being able to update address bits via OUTA on every RAM clock cycle, at 20MHz
    (or 25MHz with 6.25 crystal). Thus the output from waitvid is also at that rate and I can issue an SDRAM
    opcode in lockstep with the instructions. Since waitvid only allows 4 colours each waitvid instruction is
    limited to 3 possible RAM opcodes plus NOP, which isn't quite enough for a complete burst setup and recovery,
    so a burst read or write is normally done with two waitvids, one to set it up running and the other to stop it
    and recover.

    SDRAM opcodes are basically coded by 3 signals, nCAS, nRAS and nWR, and the basic ones are

    NOP
    ACTIVE (latch row address, open row)
    READ or WRITE (latch column address, start burst transfer)
    BURST-TERM (stop current burst)
    PRECHARGE (close a row, setup sense amps for next one)

    (the others set the mode register and do auto-refresh cycles)

    So the idiom for starting a transfer are

    ACTIVE (row and bank addresses to OUTA)
    READ (column and bank addresses to OUTA)

    and stopping is
    BURST-TERM
    PRECHARGE (bank address to OUTA)

    The timing of waitvid means that the first "pixel" output is just before the next "mov OUTA, ..."
    instruction, so this will be a NOP rather than ACTIVE, the typical sequence being
    NOP, ACTIVE, READ (or WRITE), with the code doing
        waitvid  ..., ...
        mov     OUTA, highaddr   ' in time for ACTIVE
        mov     OUTA, lowaddr    ' in time for READ
        
    

    To run at a higher RAM clock rate all that should be needed is to insert NOPs into
    the stream to space out the opcodes to synchronize with the "mov OUTA" instructions
    that setup addresses. In fact the timing constraints mean that at higher clock speeds
    there need to be some NOPs anyway between ACTIVE and READ, between BURST-TERM
    and PRECHARGE and between PRECHARGE and subsequent ACTIVE or AUTO-REFRESH.

    Running at 80MHz (or 100 with 6.25 crystal) should just mean adding 3 NOPs between various
    codes in the waitvid pixel data (and more careful attention to signal layout and termination).

    Since waitvid can drive 8 signals, and only 3 (or 4 including clock-enable) are needed for the
    SDRAM opcode, the others can be used for other uses (DEN for the screen, latch enable for
    writing, DQM line to the SDRAM - the latter enables masked writes which make character
    generation much faster.

    I'm exclusively using page-mode bursts for read and write, but you can setup 1, 2, 4 or 8 byte
    bursts too (which support automatic PRECHARGE).
Sign In or Register to comment.