Serial port JTAG programmer

If you’re planning to do some hacking with CPLD or FPGA chips you’ll need a way to program them. JTAG is one of the options and here’s a cheap method that uses the serial port (translated).

This method requires only four signals (TDI, TMS, TCK and TDO) plus ground. But the problem is that an RS232 serial port operates with 12V logic levels and the JTAG side of the programmer needs to operate with the logic levels native to the device you’re programming. Commercial programmers use a level convert IC to take care of this for you, but that doesn’t mesh with the cheap goal of this project. Instead, [Nicholas] uses Zener diodes and voltage dividers to make the conversion. There is also an LED for each data signal to give some feedback if you’re having trouble.

You can use this along with a programming application that [Nicholas] whipped up using Visual Studio. It works well via the serial port, but he did try programming with a USB-to-Serial dongle. He found that this method slows the process down to an unbearable 5-minutes. Take a look, maybe you can help to get that sloth-like programming up to a manageable speed.

[Thanks Alex]

Comments

  1. chango says:

    Good if you have a hardware serial port I suppose. For USB there’s always the ubiquitous FT232 in bitbang mode.

  2. Arao H. F. says:

    I’ve done a very similar programmer to a dev. kit that i developed and sell, the problems and suggestions and differences on my project are:
    -The programmer only works with a real serial, possibly can’t run on some of these cheap chinese usb-serial adapters, because of the lack of some signals except RXD and TXD.
    -The TDO line doesn’t have the RS-232 level for VoL, it could be a huge problem on some PC’s
    -Five minutes is so much time! I’ve the same problem on my project and understand that SVF are very large files, on mine, the board have an ATTINY2313 that do some unpack on the data and the process is done on 1 minute
    -Another problem is about the data corruption on serial port, a CRC is very welcome, but can’t exist on this type of design without processing on the JTAG side.
    -To me isn’t important, but people really do care about a graphical interface

  3. BiOzZ says:

    i used to have to use somthing like this ALLLL the time for ARM programming

    i finally got my self a nice (overpriced) TI JTAG USB programmer and debugger!

    than NXP sent me one for free for that “destroy your 8 bit microcontroller” thing like 2 months after spending $400 on one XD

  4. Daid says:

    Small note, while RS232 should be 12V, some ports go as low as 3.3V. So you are better off with a MAX232, which isn’t that expensive.

    The USB-Serial is a ‘problem’ with the USB-Serial drivers. Some drivers are configurable in latency. (we had problems with slow round trip times, solved it with driver configuration)

  5. holly_smoke says:

    MAX3232 if your target operates at 3.3V.

    It is not an expensive part by any means and has been a hobby mainstay for years.

    When you consider the price of the target you are connecting to / devboard, it is worth spending the $1 USD to do it properly…

  6. holly_smoke says:
  7. DarkFader says:

    I expected more “good for you” replies :)

  8. KnightFire says:

    Just using surface mount resisters on the proto board impressed the crap out of me :-)

  9. Benson says:

    could you provide the component list.
    It’s might help a lot.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 92,149 other followers