logo elektroda
logo elektroda
X
logo elektroda

USB Blaster programmer - board with additional supply voltages

phanick 7797 8
ADVERTISEMENT
Treść została przetłumaczona polish » english Zobacz oryginalną wersję tematu
  • Printed circuit board with electronic components.
    There is such a small, neat and cheap USB Blaster programmer for Altery CPLD / FPGA circuits, which fulfills its role perfectly.
    USB Blaster programmer on a blue circuit board with USB connector and LED indicators. Electrical schematic of a USB Blaster programmer for Altera devices Close-up of USB Blaster plug with pin numbering.

    Unfortunately, it does not provide the supply voltage, which requires the programmable circuit to be powered from an external source. Different circuits have different supply voltages (and sometimes even several).

    For example, my favorite CPLD EPM3064 has one voltage for supplying the core of the system (VCCINT), and the other for supplying I / O terminal buffers (VCCIO), so that the system can work in a system adapted to different voltages, eg 3.3V, 2.5V.
    Pinout diagram of the EPM3064A in a TQFP44 package

    For example, EPM240 has four IOLABS blocks and each of these blocks can have its own VCCIO voltage


    So I came up with the idea of making a small "adapter" for the aforementioned programmer, producing the most popular voltages. The whole thing had to fit into the existing housing, which was quite a challenge. The assumptions were to include the following voltages: + 1.8V, + 2.5V, + 3.3V, + 5V, + 12V.

    As a result, a board was created, adapted to the size of the existing housing, which is soldered to the programmer's main board with two wires (to ground and + 5V) where the J1 connector is in the original board. The board also has two holes so that LEDs can pass through it, signaling the operation of the original board. We managed to stuff everything on a single-layer PCB, so the PCB can fit tightly to the original one without any fear of a short circuit.
    PCB design for an add-on to the USB Blaster programmer. Printed circuit board with electronic components. Close-up of an electronic board with components and LED indicators. PCB board in a small case of a USB Blaster programmer with additional electronic components. Altera USB Blaster programmer with a modified board for generating various voltages. Schematic of USB Blaster add-on board with regulators and converter.

    I decided to derive all the tensions using the male goldpin strip, because, unlike the female one, it does not wear out (female strips quickly become loose when inserted frequently). To protect myself against accidental short-circuit of male goldpins at the moment of contact with something, I put a cap on the pins (made of a female goldpin plug)
    USB Blaster programmer with voltage adapter

    * The + 1.8V, + 2.5V, + 3.3V voltages come from the dedicated AMS1117 stabilizers
    * The + 5V voltage comes directly from the USB connector
    * I used the MC34063 converter for the + 12V voltage

    The reader may ask himself what the presence of + 12V voltage is for? Well, the necessity to have this voltage was basically the reason for the creation of the described PCB. Often, when designing a device, we try to choose a system for it so that it meets the needs, but is not overly "exaggerated" (ie it has the required number of terminals). Too many of the offered and unused pins is not only a waste of price (more expensive system) but also a more complicated PCB (more pins = larger housing = usually more complicated board design)
    Therefore, for many needs, e.g. the previously described simple EPM3064 system is sufficient. This circuit has 30 I / O pins. However, I have often been in a situation where I missed that one / two extra pins and had to resort to strange combinations. It turns out that the JTAG programming pins of this system (TDI / TMS / TCK / TDO) can also function as standard I / O pins. In order to force them to do so, in the Quartus environment you should:
    1. Right-clicking on a layout, select Device >> Device and Pin Options >> "General" tab
    2. Uncheck "Enable JTAG BST Support"
    3. Recompile the project
    Quartus II software interface with device settings selected. Screenshot from Quartus showing the device selection window with the Device and Pin Options button highlighted. Screenshot of general settings in Quartus software showing options for JTAG BST support.

    Unfortunately, now trying to select the "POF" file to upload to the system will end up with an enigmatic message "JTAG support distabled in file ..."
    Error message in Quartus II indicating JTAG support is disabled.

    4. So go back to the "Programming files" tab and select "JEDEC STAPL Format File (.jam)" and recompile the project again.
    Screenshot of Programming Files settings in Quartus II software with JEDEC STAPL Format File (.jam) option checked.

    From now on, after each compilation, in addition to the standard POF file, a JAM file will be generated and this file should be selected when programming.

    Unfortunately, in order to program (or reprogram) a batch with JTAG pins turned off, you need ... according to the catalog note - a special high-voltage programmer. No wonder, because if now JTAG pins are used as standard I / O pins, how should the system know that we want to reuse them for programming?
    However, there is a trick (about which there is not a word in the catalog note) .. If the EPM3064 chip, when turned on, sees + 12V on its I / OE1 pin (in the QFP44 housing it is pin 38), the JTAG pins will become active again (until restart) and they can be used for programming .. Of course, when using this method, you need to keep a few things in mind:
    * connect + 12V to the I / OE1 pin for the time of programming MUST with some protection resistor in series (e.g. 1k). I do not know exactly what voltage the system requires, because there is about 8V on the other side of the resistor.
    * pin I / OE1 should be either not used at all in the project, or at least secured with a jumper that "cuts" it off from the rest of the system for the duration of programming, so that applying + 12V to it does not damage other systems connected to it
    * the current signals on the TDI / TMS / TCK / TDO pins should not interfere with the programming process (e.g. they should not be connected to outputs from other systems over which we have no control, or they can be connected to outputs from other systems but through resistors security). Ideally, these pins are driven only by the EPM3064 chip and for other systems they are only inputs
    * it is a similar situation to e.g. the use of MOSI / MISO / SCK pins from popular AVR microcontrollers for their purposes. There, the pin for switching to the programming mode is the / RESET pin (which can also be turned off with fusebits and converted into an I / O pin, but then a high-voltage programmer will also be required)

    In sum
    The designed board fulfills its task perfectly, the only thing that could be added is a voltage of 1.2V (maybe one more AMS1117 regulator could be crammed into it)

    Cool? Ranking DIY
    About Author
    phanick
    Level 28  
    Offline 
    phanick wrote 2899 posts with rating 2816, helped 65 times. Live in city Warszawa. Been with us since 2007 year.
  • ADVERTISEMENT
  • #2 19698349
    jackfinch
    Level 18  
    Hello
    After reading your post, I don't know if I understand correctly. It has an epm3032 with a blocked jtag only in the plcc version (I / OE1 is on pin 44), can you use your 12V method through a 1k resistor on I / OE1, can I upload a pof file via a blaster usb?
  • #3 19698580
    phanick
    Level 28  
    Hi,
    1. If you have JTAG disabled in the currently created project, you need to generate a JAM file (Quartus will not let you use the SOF file for programming)
    2. If currently the EPM3032 has JTAG turned off (it is not detected by USB Blaster with AutoDetect option) or you are trying to record a batch from a project with JTAG turned off, then you must put 12V on pin I / OE1 (before or equally with supplying power to the programmed system). When the EPM3032 is already turned on, specifying 12V will not turn on the JTAG.
  • ADVERTISEMENT
  • #4 19701333
    jackfinch
    Level 18  
    Thanks for the response. It turned out that my Altera is the 7000s series, and exactly EPM7032SLC44-10 and not the 3032 as I wrote earlier. Regarding the USB Blaster, my version is a bit different: STM32F101C8T6 + 74HC244D. If I find a moment, I will connect it all and try to play.

    regards

    I did as you described, I gave 12V through the 1k resistor to pin 44 (INPUT / OE1), connected the USB Blaster to the usb, generated a short program in Quartus and selected the Program / Configure options. Looks like the jtag is unlocked. I am attaching the screen. I still have EPM7128slc84-15 which is not detected by jtag.
  • #5 19722540
    jackfinch
    Level 18  
    Hello

    I have a question regarding the post-programming verification options. On the attached photo you can see that the system after programming does not pass the verification. For me it is exactly the same as I select the VERIFY option. I do not understand it too much, is it normal, has the system really been programmed wrong?

    regards
  • ADVERTISEMENT
  • #6 19731626
    phanick
    Level 28  
    If + 12V is connected to the OE1 pin, the system will pass the programming and verification and will be SUCCESS.
    If there is no + 12V, then the programming will pass, the verification will not pass, but after the restart - the system will not work (i.e. as if the verification only something in this chip sets that it is to switch to the newly uploaded code).

    In one of the systems I tested, I broke something, because even after connecting it to + 12V (through a resistor), the verification also does not pass. Measuring the voltage across this resistor on the other side gives + 8V.

    On other systems, where the verification passes, the measurement gives + 12V on both sides of the resistor. Check maybe on a different scalak.
  • ADVERTISEMENT
  • #7 19732690
    jackfinch
    Level 18  
    Today I checked the voltage of the USB blaster to power the Altera and it came out 2.69V, which I think is definitely too low. I connected the external 5V and it seems that the verification is 100%. My erasing circuit connected to OE1 behind a 1K resistor is exactly 12V. But it turns out that my problem was too low power voltage of the system. I am attaching the screen. I read in the catalog note that the 7000 series chips can be erased a maximum of about 100 times. I tried the same on the EPM7128SLC84, but it turns out that it won't be possible to activate Jtag this way.
  • #8 19732733
    phanick
    Level 28  
    USB Blaster does not power the system through this gray tape, additional power supply is necessary (or modification as in my description)
  • #9 21280664
    cezarykl
    Level 1  
    >>19694414 .

    Hi
    I am looking for the old version of USBblaster v3.1
    Does anyone know anything about this version? Where can I buy or make one myself from PCB?

Topic summary

The discussion revolves around the limitations of a USB Blaster programmer used for Altera CPLD/FPGA circuits, particularly its inability to supply the necessary voltages for programming. Users share experiences with various models, including EPM3064 and EPM7032SLC44-10, highlighting the need for external power sources to meet different voltage requirements (e.g., VCCINT and VCCIO). Solutions include applying a 12V supply to specific pins (like I/O pin OE1) to enable JTAG programming and ensure successful verification post-programming. Users also note issues with low power supply from the USB Blaster and the importance of proper voltage levels for successful chip operation. Additionally, there is a request for information on obtaining an older version of the USB Blaster (v3.1).
Summary generated by the language model.
ADVERTISEMENT