mirror of
https://github.com/ole00/afterburner.git
synced 2025-01-28 15:31:43 +00:00
updated README.md
This commit is contained in:
parent
25b837798e
commit
7198e0555e
202
README.md
202
README.md
@ -1,2 +1,204 @@
|
|||||||
# afterburner
|
# afterburner
|
||||||
GAL chip programmer for Arduino
|
GAL chip programmer for Arduino
|
||||||
|
|
||||||
|
This is a GAL IC programmer software that allows to program GAL IC chips
|
||||||
|
from various manfucaturers. It is based on work of several other people:
|
||||||
|
|
||||||
|
Bruce Abbott:
|
||||||
|
http://www.bhabbott.net.nz/atfblast.html
|
||||||
|
|
||||||
|
Manfred Winterhoff:
|
||||||
|
http://www.armory.com/%7Erstevew/Public/Pgmrs/GAL/_ClikMe1st.htm
|
||||||
|
|
||||||
|
who did the most of the hard work of deciphering and publishing the programming
|
||||||
|
protocol of these chips. Their programs were Windows based and relied on
|
||||||
|
presence of parallel port (LPT). Afterburner was written for Linux OS, and
|
||||||
|
requires serial connection to Arduio UNO, which does the programming
|
||||||
|
of the chip.
|
||||||
|
|
||||||
|
Supported GAL chips:
|
||||||
|
|
||||||
|
* Atmel ATF16V8B, ATF22V10B, ATF22V10CQZ
|
||||||
|
* Lattice GAL16V8A, GAL16V8B, GAL16V8D
|
||||||
|
* Lattice GAL22V10B
|
||||||
|
* National GAL16V8
|
||||||
|
|
||||||
|
Setup:
|
||||||
|
* Upload the afterburner.ino sketch to your Arduino UNO.
|
||||||
|
|
||||||
|
* Connect the pins of the GAL chip to Arduino UNO according to
|
||||||
|
the schematics images. Ideally use a PCB (ether etched or made
|
||||||
|
in a fab) that's provided in 'pcb' and 'gerbers' directory.
|
||||||
|
You can also hardwire on protoboard or breadboard.
|
||||||
|
|
||||||
|
* Compile the afteburner.c to get afterburner executable. Run
|
||||||
|
./compile.sh to do that.
|
||||||
|
|
||||||
|
* Set the programming voltage (VPP) on the voltage up-converter
|
||||||
|
module (MT3608) depending on the GAL chip
|
||||||
|
Atmel ATF16V8B - 10V
|
||||||
|
Lattice GAL16V8 - 10V, also works with 12V
|
||||||
|
Others - between 10 - 14V - untested
|
||||||
|
|
||||||
|
* Check the programming voltage (VPP) without the GAL chip being
|
||||||
|
inserted / connected to Arduino UNO. Test the voltage on MT3608
|
||||||
|
module VOUT- and VOUT+ pins while running the following command:
|
||||||
|
<pre>
|
||||||
|
./afterburner s
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
* Check the chip identification by runnig the following command:
|
||||||
|
<pre>
|
||||||
|
./afterburner i
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
If you get some meaningfull GAL chip identification like:
|
||||||
|
<pre>
|
||||||
|
PES info: Atmel ATF16V8B VPP=10.0 Timing: prog=10 erase=25
|
||||||
|
</pre>
|
||||||
|
then all should be well and you can try to erase the chip and then
|
||||||
|
programm it to contain your .jed file.
|
||||||
|
|
||||||
|
If you get an unknown chip identification like:
|
||||||
|
<pre>
|
||||||
|
PES info: 3.3V Unknown GAL, try VPP=10..14 in 1V steps
|
||||||
|
</pre>
|
||||||
|
then look at the troubleshooting section
|
||||||
|
|
||||||
|
* Read the content fo your GAL chip. This only works if the contents
|
||||||
|
of the chip is not protected. Use the following command:
|
||||||
|
<pre>
|
||||||
|
./afterburner r -t [GAL_type]
|
||||||
|
</pre>
|
||||||
|
or to save the printed .jed fuse map to a file use:
|
||||||
|
<pre>
|
||||||
|
./afterburner r -t [GAL_type] > my_gal.jed
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
* Erase the GAL chip. Before writing / programming the chip it must
|
||||||
|
be erased - even if it is a branch new chip that has not been used
|
||||||
|
before. Use the following command:
|
||||||
|
<pre>
|
||||||
|
./afterburner e -t [GAL type]
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
* Program and verify the GAL chip via the following command:
|
||||||
|
<pre>
|
||||||
|
./afterburner wv -t [GAL type] -f my_new_gal.jed
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
How aferburner works:
|
||||||
|
---------------------
|
||||||
|
* PC code reads and parses .jad files, then produces a binary which
|
||||||
|
can be the uploaded to Arduino via serial port. By default
|
||||||
|
/dev/ttyUSB0 is used, but that can be changed to any other device
|
||||||
|
by passing the following option to afterburner:
|
||||||
|
<pre>
|
||||||
|
-d /my/serial/device
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
* PC code of afterburner communicates with Arduino UNO's afterburner
|
||||||
|
sketch by a trivial text based protocol. You can also connect directly
|
||||||
|
to Arduino UNO via serial terminal of your choice and issue some basic
|
||||||
|
commands manually.
|
||||||
|
|
||||||
|
* Arduino UNO's afterburner sketch does 2 things:
|
||||||
|
1) parses commands and data sent from the PC afterburner code
|
||||||
|
2) toggles the GPIO pins and drives programming of the GAL content
|
||||||
|
|
||||||
|
* more information about GAL chips and their programming can be found here:
|
||||||
|
|
||||||
|
http://www.bhabbott.net.nz/atfblast.html
|
||||||
|
|
||||||
|
http://www.armory.com/%7Erstevew/Public/Pgmrs/GAL/_ClikMe1st.htm
|
||||||
|
|
||||||
|
|
||||||
|
Troubleshooting:
|
||||||
|
----------------
|
||||||
|
- it does not work!
|
||||||
|
|
||||||
|
* double check the schematics and the connection between Arduino UNO and
|
||||||
|
the GAL chip.
|
||||||
|
|
||||||
|
* ensure the GAL chip is inserted to the IC socket the right way (check
|
||||||
|
the pin 1 location)
|
||||||
|
|
||||||
|
* ensure the VPP is set correctly on the MT3608 module. If unsure which
|
||||||
|
voltage to use then try individual voltages one by one:
|
||||||
|
10V, 11V, 12V, 13V, 14V, 15V. Do not go beyond 15V as you may damage the
|
||||||
|
GAL chip.
|
||||||
|
|
||||||
|
* measure the VPP only when the chip is physically DISCONNECTED. Some brands
|
||||||
|
of the GAL chip (Atmel) - when connected - iternally lower the voltage
|
||||||
|
on the Edit (VPP) pin (voltage divider?) and such voltage reading is misleading.
|
||||||
|
|
||||||
|
* use an external power supply for your Arduino UNO, powering
|
||||||
|
just via serial USB cable may not be sufficient for driving the GAL chip and the
|
||||||
|
voltage up-converter
|
||||||
|
|
||||||
|
|
||||||
|
- afterburner reports it can not connect to /dev/ttyUSB0, permission denied
|
||||||
|
|
||||||
|
* ensure your user is member of the of the dialup group or alernatively run
|
||||||
|
afterburner as superuser (use: sudo ./afterburner ...)
|
||||||
|
|
||||||
|
- afterburner fails to connect to /dev/ttyUSB0
|
||||||
|
|
||||||
|
* ensure your PC is actually connected to Arduino UNO, check a serial device
|
||||||
|
exists:
|
||||||
|
<pre>
|
||||||
|
ls -alF /dev/ttyUSB*
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
- my MT3608 module does not have EN pin
|
||||||
|
|
||||||
|
* that's unfortanetly a common problem. You have to mod the module as follows:
|
||||||
|
|
||||||
|
* cut the PCB trace between pin 4 & 5 of the MT3608 chip. Verify the trace
|
||||||
|
is cut by continuity probe (no beep is audible) between pins 4 & 5.
|
||||||
|
|
||||||
|
<pre>
|
||||||
|
| Blue Potentiometer |
|
||||||
|
|_________________________|
|
||||||
|
| ______________
|
||||||
|
| | |
|
||||||
|
| | SMT Capacit. |
|
||||||
|
| |______________|
|
||||||
|
|
|
||||||
|
| 3 2 1
|
||||||
|
| | | |
|
||||||
|
| +-------+
|
||||||
|
| | |
|
||||||
|
| |4 5 |
|
||||||
|
| +-------+
|
||||||
|
| |X | |
|
||||||
|
|
|
||||||
|
|<-- left long edge of the module
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
* X marks the spot - here make the vertical cut. Do not cut the pins
|
||||||
|
itself! Just cut the trace between the pins, which is only barely visible
|
||||||
|
without magnification.
|
||||||
|
![See the MT3608 image in img directory for more details.] (https://github.com/ole00/afterburner/raw/master/img/mt3608_mod.jpg "EN pin mod")
|
||||||
|
|
||||||
|
|
||||||
|
* solder a thin keynar wire to pin 4 which is your ENable pin.
|
||||||
|
|
||||||
|
* Once that is done, toggling the EN pin will change the output voltage
|
||||||
|
of the module between 5V (actually slightly less than that) and the
|
||||||
|
voltage set by the potentiometer (10V and more).
|
||||||
|
|
||||||
|
- my MT3608 module does not seem to work - turning the pot does nothing
|
||||||
|
|
||||||
|
* The pot needs to be turned at least 10 revolutions counter-clockwise
|
||||||
|
to do anything useful. Keep trying.
|
||||||
|
|
||||||
|
- where to get the MT3608 module ?
|
||||||
|
|
||||||
|
* usual places: ebay, aliexpress
|
||||||
|
|
||||||
|
- what are the .jed files and how to produce them
|
||||||
|
|
||||||
|
* Use WinCupl software from Atmel. Works under Wine as well.
|
||||||
|
|
||||||
|
https://www.microchip.com/design-centers/programmable-logic/spld-cpld/tools/software/wincupl
|
||||||
|
Loading…
x
Reference in New Issue
Block a user