Connect with us

8051 to DVI interface?

Discussion in 'Electronic Design' started by Guy Macon, Feb 11, 2007.

  1. Guy Macon

    Guy Macon Guest

    I am working on an 8051-based project that needs a
    display. Normally I would just use a small character-
    based LCD display, but in this case I am thinking of
    going with something a bit more impressive; a standard
    flat-panel PC monitor.

    This is a small-volume project with no particular cost,
    space, environmental or power constraints. The display
    is mostly static with a few small areas that change
    infrequently. 640x480 would be acceptable, but 1024x768
    would be a lot easier to find monitors for. I am also
    willing to spring for a fast 100 Mips 8051 if that will
    help.

    My first thought was having a counter clock data out of
    fast RAM into DACS and thus make a VGA signal, with the
    8051 updating another bank of RAM and making a fast bank
    switch during vertical retrace, but then I started
    thinking about DVI interfaces. Normally a PC throws a
    lot of fast data at a DVI interface, but would it hold
    a static picture with a much slower refresh rate? Or
    could I run RAM fast enough to hit a 60Hz refresh?

    Another possibility would be some sort of display chip;
    does anyone know of one suitable for a slow 8-bit micro?

    Any suggestions about another approach would be welcome.
     
  2. Most Monitors will scan-convert most VGA resolutions.
    That's because PCs boot first in 25 line DOS, and then
    there is 'safe mode' booting.....

    Not many around for 8 bit uC - volumes are too small
    for a chip supplier.
    If you need CHAR only (no pictures), then our Vga-232 modules
    would suit this very well.
    see http://www.designtools.co.nz/vga_232.htm

    This is designed to sit in usage between monochrome CHAR based LCD modules,
    and full Graphics/Pictures Embedded PC apps.
    Interface is a superset-variant of the old ANSI escape controls,
    (Adds Colour and Font/Scale controls), over a simple serial link.

    -jg
     
  3. Ian Bell

    Ian Bell Guest

    if they still make it, the Motorola 6845 was the standard video chip in the
    early days of home computers. Many VGA cards emulated its registers too.

    Ian
     
  4. Use a FPGA, with perhaps a 8051 in HDL, there is even a free 8052 BASIC HDL:
    http://www.opencores.com/projects.cgi/web/t51/overview

    I have not tried this particular HLD.
    There are more suitable processor cores perhaps, depends on what you want to
    do, and what tools you have.
    Expect learning curve for FPGA.
     
  5. larwe

    larwe Guest

    On Feb 11, 6:40 am, Jan Panteltje
    Wow, what an understatement. It took me over a month of playing with
    the ML403 just to get to the stage where I knew where to look for
    [xyz]. FPGA tools are unique, quirky and really take some serious
    experience to use properly.
     
  6. Mm I started with digilab-2 from Digilent, webpack, couple of hours.
    hehe
    ;-)
     
  7. larwe

    larwe Guest

    On Feb 11, 9:46 am, Jan Panteltje
    Really? It took me an entire day (actually more than an 8-hour working
    day) to install ISE and EDK. Much of that time was downloading almost
    1GB of mandatory service packs.
     
  8. Well I hope you noted the ';-)' smily.....
    Yes I had a very hard time with the X software too, and sometimes still.
    It has improved a bit (9.1 running now on Linux).
    I also use the Quartus from Altera, sometimes it helps to try your design
    on both..
    OTOH it really did not take that much time once the soft was running, but
    I come from a hardware background, so for example Verilog is natural to me.
    I do not consider myself an expert on FPGA, but I get along.
     
  9. larwe

    larwe Guest

    On Feb 11, 10:20 am, Jan Panteltje
    Sure, but I'm still curious about whether other people had
    difficulties.
    It's really hard to hit the ground running with these tools. For
    example, I wanted to start small, by just building a piece of sample
    PowerPC code from the EDK CD-ROM and loading it onto the FPGA (already
    configured by SystemACE from the CF card). In order to build the code,
    EDK checked dependencies and tried to build the bitstream. It
    discovered that the Ethernet, I2C and 16550 UART had no license, so I
    had to cut out those cores and add the opb_uartlite. In the process I
    discovered several places where the GUI fails to make all the correct
    changes - you have to edit the mhs files, etc. Of course I only found
    this through having the build process fail, checking the files and
    editing stuff, trying the build again, ...

    I THEN discovered that the synthesis process dies executing
    synthesis.sh (I think due to conflict with a newer version of cygwin
    on my PC). Found a workaround for that, manually running the relevant
    command and then retrying the build operation.

    Then the uartlite driver is misnamed, the directory and filename
    version numbers don't match. I had to modify the sample code to use
    uartlite instead of ns16550, too. Etc, etc. It all feels very much not
    ready for primetime.

    In summary, it took me two days to build and download "hello world!".
    Having example code on the disk that ALL requires further buyware
    cores is stupid, IMHO - people need to have a working build
    environment so they can use it as a basis for their own projects.
    It's funny you say this, because I was going to say I come from
    primarily a software background, and VHDL is not too alien to me.

    My difficulties rarely come from code bugs, etc. It's more a case of
    "I need to simulate this piece of code. Where do I put the stimulus
    file, how is it formatted, where do I go in the GUI for this massive
    program?" And the time to build everything... at least half an hour to
    build the entire project. Wow.
     
  10. Al

    Al Guest

    At Olin College in Needham, MA, that is part of a freshman course.

    Al
     
  11. Al

    Al Guest

  12. larwe

    larwe Guest

    I'm happy to hear it, and baffled as to why you would think it
    remotely relevant. A "course" presumably includes an "instructor" who
    has used the tools before. Contrast getting up and running using only
    Usenet and free support from Xilinx.

    Read my other replies in this thread. As you can see, almost none of
    my problems stem from the problems of writing VHDL or C; they're all
    setup and IDE familiarity issues.
     
  13. Guy Macon

    Guy Macon Guest

    Interesting!

    Is "Full 16 Colour, 640 x 400 Pixel VGA Display" a typo?

    Could you have meant 640x480 or perhaps 720x400?

    How do you generate the VGA signals?
     
  14. I bought a book about ADA many years ago, did read it, but never used it,
    it is still on the shelf,
    VHDL reminded me strongly of that book :)
    So I thought 'better stay clear if I can'.
    That said, I have seen people do really nice things in VHDL, but it
    is so much more work to type ...
    I run Linux, and the next thing I did was run the webpack tools from a script,
    with a sort of makefile.
    That fixed the GUI issues (no GUI).
    An other thing I did was write my own driver in Linux for the Digilab parIII cable.
    ftp://panteltje.com/pub/p3j-0.2.tgz

    One thing about the X software, I had this filter design, and entered it in webpack
    (the old version 8.x do not remember exact sub-version).
    It then told me about some register that needed stuffing into something else, and that this
    was a bug in webpack, and the next version would fix the bug.
    As I needed the filter _now_ that was a bit of a problem.
    I tried some code changes, and always got this error, an error that made no sense in
    any way actually.
    So I asked around, and nobody knew what this was...
    So then I thought OK, then I will need to go Altera...
    So I entered the design in Quartus, it reported a typo, I fixed the typo, and it synthesised.
    Then that made me think, so next day I took the fixed design, and entered it in webpack.
    It also synthesised.
    So the _syntax checking_ of X software is not up to snuff, or maybe not even present, it will then
    make its own design, and get stuck, and report an error on a very deep level that you cannot
    possibly trace back to what you did wrong.
    And I could not even remember the stupid typo when I wanted to.

    So what you actually spend a lot time doing is indeed learning to work around or avoid
    X software issues.

    Many many years ago I had a Sinclair ZX81 with a BASIC that would check syntax every input line,
    you could not enter the line if it had a syntax error.
    X will perhaps have to write everything from the start all over again to make it more user
    friendly.
    It is the same thing with their online-shop.
    Microchip shows us how to make an online shop.
    X redirects to distributors... that many times have no stock, with very high prices and
    long lead times....
    In my view they would sell a lot more if you could actually buy things from them directly
    and those were in stock :)

    So much for rant mode.
     
  15. krw

    krw Guest

    VHDL is quite natural for me. I hate C and dislike Verilog for the
    same reasons.
    VHDL is based on ADA.
    Not so much more. A lot of copying, perhaps. There are also tools
    to do most of this.

    <snip>
     
  16. No - Vga text mode (all PCs boot in this first), is 80x25 lines, of 8x16
    pixel chars, so that's 640x400.
    640x480 just bumps over a standard RAM boundary.
    Frame and line sync are relatively easy, just chains of dividers in
    a CPLD. Dual port RAM access is more complex, but you can just access in
    flyback times for a simpler system, a la first generation PCs.

    First generation PCs, (like the 6845) also used a character Font ROM,
    and they can get by with much less RAM (back then, RAM was expensive),
    plus you could not run early RAM at pixel-clock speeds.

    If monochrome is OK, a few of the latest uC can do reasonable pixel
    rates out of their SPI ports - not quite 2000 chars on a screen, but
    some hundreds is doable.

    -jg
     
  17. Did you feed that back to Xilinx ?
    Typically this outcome stems from simple laziness to test their systems
    fully : as most of their PCs will have all the fruit, they
    _think_ it all works fine.....

    Working sample code is a great learning platform, (and it has to cut
    support bandwidth), so it's surprising how many vendors do a poor job here.

    -jg
     
  18. jasen

    jasen Guest

    how about an 8-bit VGA card?

    Bye.
    Jasen
     
  19. Guy Macon

    Guy Macon Guest

    Hmmm. No acual ISA cards on the market nowdays, but there
    are PC104 cards. A 8051 to PC104 interface might do it.

    I am still thinking that a counter clocking data out of
    RAM can make a VDI signal.
     
Ask a Question
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.
Electronics Point Logo
Continue to site
Quote of the day

-