Commit Graph

251 Commits

Author SHA1 Message Date
ole00
2b83233399 jtag: removed initialisation within the struct 2024-04-09 21:04:05 +01:00
ole00
56b687017a PC app: close serial port at the end of xsvf playback 2024-04-04 23:33:28 +01:00
ole00
c205579e9b Gerbers: added ATF150xAS and ATF150xASL adapter 2024-04-03 22:16:46 +01:00
ole00
7a3981a9b3 PCB: added ATF150xAS and ATF150xASL adapter 2024-04-03 22:16:46 +01:00
ole00
54600a153a XSVF: added xsvf files for ATF150X id and erase 2024-04-03 22:16:46 +01:00
ole00
a8ecb518cf PC APP: released updated app with ATF150X support 2024-04-03 22:16:46 +01:00
ole00
eac70f6c68 PC app: serial - add support for NO_CLOSE on Windows 2024-04-03 22:16:46 +01:00
ole00
0367a8b127 sketch: added JTAG XSVF player 2024-04-03 22:16:46 +01:00
ole00
718a908a9d sketch: improve pinmuxing when inactive
Previously unused pins were always set as output low.
Now, they are output low when active operation is in
progress, and they are set as input when inactive.
2024-04-03 22:16:46 +01:00
ole00
0e99f07370 PC app: added support for JTAG and ATF1502 and ATF1504 2024-04-03 22:16:46 +01:00
ole00
5621df2f1f PC app: format the list of GAL names
Up to 8 GAL names on the same line.
2024-04-03 22:16:46 +01:00
ole00
b733cd5e6a PC app: added progress bar update function 2024-04-03 22:16:46 +01:00
ole00
0761907067 PC App: fixed help text: serial port information 2024-04-03 21:43:32 +01:00
ole00
a3968f5c00 PC app release v.0.5.8 - updated 2024-03-23 16:20:30 +00:00
ole00
3b4921daa2 build script for OSX: compile with preprocessor _OSX_
The preprocessor symbol helps to distinguish the serial port
detection rule (OSX/Linux).
2024-03-23 16:16:46 +00:00
ole00
4238800190 PC App: guesses the serial port device name
When the serial device name is not passed with paramerer -d
then the PC app will try to find an existing serial device.

* On Windows: selects the COM device with the highest number.
* On Linux: selects the serial usb device in any order, but
       priority is given to devices with Arduino name.
* ON MAC OS: selects the last  /dev/tty.* or /dev/tty/wchusb*
       device in the order that OS lists them.

This serial port detection should work OK if you have only one
Arduino attached. If you have (and need to have) several
Arduinos or serial ports connected at the same time then pass
the '-d' parameter to specify which one to use.
2024-03-23 16:08:29 +00:00
ole00
e9aaf41c48 PC app release v.0.5.8 - updated 2024-03-23 11:04:36 +00:00
ole00
a48de726bf PC app: fix progress bar compatibility
The proress bar cusros hiding/revealing sequence was not
compatible with some Windows versions / shells.
This fix removes the escaped sequences and ensures the progress
bar is fully printed at the end of each iteration, which prevents
the visual artefacts caused by the jumping cursor.
2024-03-23 11:01:00 +00:00
ole00
1589119e7c sketch: setPinMux: unset internal pull-up on DOUT when inactive
See issue #61
2024-03-22 07:14:51 +00:00
ole00
37f93be2d3 PC app release v.0.5.8 - updated 2024-03-19 21:05:47 +00:00
ole00
757e13e55f build scripts: pass git commit hash as preprocessor symbol 2024-03-19 21:05:47 +00:00
ole00
52466f64c6 PC app: added git commit to version info 2024-03-19 21:05:47 +00:00
ole00
a9bf98b719 Sketch: reduced duration on VPP ramp-up
The VPP ramp-up was too long after the change of the calibration
scale in recent commits.
2024-03-19 21:05:32 +00:00
ole00
dabfcf5aad PC app: increase maximum time to wait for VPP measurement 2024-03-19 20:43:23 +00:00
ole00
79e33ab2a5 PC app: fix serial port read buffer overflow
Overflow happened when verbose printouts were enabled
in the Arduino sketch.
2024-03-19 20:41:43 +00:00
ole00
2754ff5c47 PC app: fixed typos in help text 2024-03-19 18:58:25 +00:00
ole00
49342b2174
README.md updated info about tap indices during calibration
The latest calibration indices are 2x higher than  in previous version.
2024-03-18 20:23:50 +00:00
ole00
e6d9a6ea2e
README.md: re-calibration needed for ver. 0.5.8 2024-03-17 21:32:57 +00:00
ole00
941142df71 PC app release v.0.5.8 2024-03-17 21:24:54 +00:00
ole00
733ea3c8e3 version increased to v.0.5.8 2024-03-17 21:15:05 +00:00
ole00
3ee0147d88 sketch: improved calibration, mcp4151 uses full tap scale
This change stores the digi pot indices in the scale 1-255
(previously 1 -128) so the stored values for calibration
are no longer valid after this change is uploaded to Arduino.

Please re-run the full calibration on your Afterburner!
2024-03-17 21:15:05 +00:00
ole00
103a99ab7a pc app: calibration takes longer time, wait longer
This is because the voltage settle time delay was increased
and also now 255 taps are scanned.
2024-03-17 21:15:05 +00:00
ole00
460d0f2caa improve calibration offset resolution and range
range: -0.32V to +0.32V
steps: by 0.01V
2024-03-17 21:14:52 +00:00
ole00
a559e10612 mt3608 wire: added resistance test indicators 2024-03-16 11:06:09 +00:00
ole00
e5ffe7ec19
README.md - added safety step when installing the pot wire 2024-03-16 11:01:23 +00:00
ole00
6b6bbd76e2
Update README.md - ATF750C is now supported
AFT750C support ported over from Michael D. afterburner's fork.
2024-02-16 20:06:48 +00:00
ole00
0b865d4892 PC app release v.0.5.7 2024-02-16 19:57:43 +00:00
ole00
cc64a29953 version increased to 0.5.7 2024-02-16 19:55:41 +00:00
ole00
7ef0038209 sketch: ensure sparse fusemap is enabled only for ATF750C 2024-02-16 19:44:52 +00:00
ole00
5f2105680f PC app: increase maximum wait time for operations
This fixes reading erased ATF750C when using sparse fusemap.
2024-02-16 19:44:52 +00:00
ole00
e99494df09 sketch: implemented read write verify for ATF750C
The implementation is based on Afterburner's fork by Michael D.
https://github.com/nospam2000/afterburner.git
2024-02-16 19:44:52 +00:00
ole00
053c914fae PC app: increase buffer sizes to fit ATF750C data 2024-02-16 19:44:52 +00:00
ole00
dc16f92a2e sparse fusemap: optimise access when block bits are all 1 2024-02-16 19:44:52 +00:00
ole00
7ff02e0a8d pc app: wait a bit longer when processing fuses 2024-02-16 19:44:52 +00:00
ole00
ba3caf3a15 sparse fusemap: added support for compacting
Compacting searches for fuse blocks where all 32 bits are set
to 1. If such block is found then it is removed from the
fuse array (reducing its top position) and then the fuse type
of such block is changed to 3.
Note that the fuse bit is never changed from 1 to 0, therefore
there is no need to cover these cases in the code (ie. converting
block type 3 to block type 1).

Compacting happens after every 256 fuse writes.

Compacting is required to be able to read erased GALs where
all fuse bits are initialised to 1.
2024-02-16 19:44:52 +00:00
ole00
f3147397f9 sparse fusemap: use 32 bit fuse blocks
Previously 16 bit fuse blocks were used and block types were stored in 1 bit.
That did not allow to compact fusemaps where all bits were 1 - which is
typically after the fuses are erased. So fuses of an erased chip would
not fit into the sparse memory array. The solution was to extend the fuse
block type storage from 1 bit to 2 bits and use that extra space to mark
blocks as sparse when all bits in the block are 1's. Such block is now
block type 3. To keep the fuseType array the same size as it was (128
bytes) the size of the block was extended from 16 bits to 32 bits.

The block type is now:
0 - all bits in the fuse block are 0, no block data in the fuse array
3 - all bits in the fuse block are 1, no block data in the fuse array
1 - any combination of bits in the fuse block, data are stored in the fuse array
2 - reserved for future use.
2024-02-16 19:44:52 +00:00
ole00
77a5d7d236 added support for sparse fusemap 2024-02-16 19:44:52 +00:00
ole00
b216b16c9a Initial support for ATF750C based on nospam2000 fork
Setup and PES reading works.

Based on fork: https://github.com/nospam2000/afterburner
By Michael D. - nospam2000
2024-02-16 19:44:48 +00:00
ole00
bd19c7c776 sketch: small fixes to setVpp() function
- ATF22V10C uses lower VPP when reading PES
- PES reading VPP for ATF was raised from 10V to 10.5V
- out-of-band VPP was set to actual 12V (previously 10V by mistake)
2024-02-16 19:26:17 +00:00
ole00
fab07e57fd Sketch: adjust VPP for all GALs
Previously all GALs had their VPP (programming voltage) reduced by 2V.
That was based on old Afterburner design which did not have variable VPP
control. It was trivial to adjust and experiment with VPP by turning the POT.
The software for the new design uses the VPP information encoded in PES
to set the VPP voltage (except Atmel GALs where the VPP value was hardcoded
to be effectively 10V) programmatically. The reduction of VPP by 2V on
the new design works, but is just on the very edge of correct functionality.
For example undervolting the 10V VPP to 9.87V made the Atmel chip programming
unreliable (many verification errors). This change reduces the voltage
by 1V for all GAL chips, so for example Atmel GALs are programmed by 11V VPP
(instead of 10V as it was before). It should improve writing reliability
for all GAL ICs.

I have re-tested all types of GAL IC I have available, all worked OK
with this change. That means all operation worked correctly: erase, info,
read, write and verify. The IC that were tested are as follows:

GAL6001B-30LP
GAL6002B-15LPN
GAL20V8B-15LPN
GAL26V12C-15LPN
GAL22V10B-25LP
GAL22V10D-10LPN
GAL18V10B-15LP
GAL18V10B-20LP
GAL16V8D-25LP
GAL16V8B-15LJI
ATF750C-7PX
ATF22V10C-15PU
ATF22V10CZQ-20PU
ATF16V8BQL-15PU
ATF16V8B-15PU
ATF16V8C-7PU
ATF16V8CZ-15SU
2024-02-05 23:15:12 +00:00