Commit Graph

80 Commits

Author SHA1 Message Date
ole00
cf34c1dfee Sketch: support Arduino based on ESP32-S2 MCU
Because of the internal reference of 2.5V on Analogue pins
of ESP32-S2, the R6 must be modified from 20k Ohm to 16.67k Ohm.
This can be achieved by placing a new 100k Ohm resistor
in parallel with R6 resistor. Use this mod only when Arduino
is ESP32-S2 based.
2024-04-21 00:12:15 +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
1589119e7c sketch: setPinMux: unset internal pull-up on DOUT when inactive
See issue #61
2024-03-22 07:14:51 +00:00
ole00
733ea3c8e3 version increased to v.0.5.8 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
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
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
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
ole00
28c4a104d1 version increased to 0.5.6 2024-02-04 11:26:07 +00:00
HubertH
19662a1939 Fixed B9 command bug
Fixed B9 command bug
Fixed a typo
2024-02-04 08:52:48 +00:00
ole00
24494accde version increased to 0.5.5 2023-11-22 21:39:05 +00:00
rhgndf
5c2cd50d47 Support GAL20RA10 2023-11-22 12:30:52 +08:00
rhgndf
79594dc863 Use library functions for memcpy from flash 2023-11-22 11:45:17 +08:00
ole00
e335ee638f Sketch: increased version to 0.5.4 2023-11-22 00:37:44 +00:00
ole00
4ba672b896 Sketch: reduce RAM usage by moving galinfo array to flash.
Approx. 340 bytes of RAM were freed.
2023-11-22 00:34:40 +00:00
rhgndf
b5a7334d59 Actually fix pinout in the first few rows 2023-11-21 16:17:20 +08:00
rhgndf
c7b7f06f10 Convert to use pinout 2023-11-05 13:43:47 +08:00
rhgndf
f5c05e463d Fix pinout 2023-11-05 13:40:55 +08:00
rhgndf
2275e13091 Fix upload and 26v12 bits 2023-11-05 13:39:53 +08:00
rhgndf
b60f36b144 Support 26(C)V12 2023-11-05 13:39:51 +08:00
ole00
a1fc6bb2f7 sketch: fixed compilation error after merge, removed strncmp dependency 2023-11-04 14:14:46 +00:00
ole00
95e461233e
Merge branch 'master' into atf20v8 2023-11-04 14:00:49 +00:00
ole00
3e0a2ad357 sketch: added gal type value to the error message 2023-11-04 12:39:30 +00:00
ole00
b596f7d9d1 sketch: disabled PED debug 2023-11-04 12:28:23 +00:00
rhgndf
ab9fa88437 Support ATF20V8B 2023-10-30 22:13:25 +08:00
rhgndf
a1bbbdff24 Fix 18V10 UES writing 2023-10-30 19:51:32 +08:00
rhgndf
e7ceab90c1 Move cfg for 18V10 to PROGMEM 2023-10-30 16:47:27 +08:00
rhgndf
5a3e1f7c75 Fix UES bytes on verify 2023-10-30 16:47:27 +08:00
rhgndf
8f995e1c9f Minor fixes 2023-10-30 16:47:27 +08:00
rhgndf
c89331138e Pull down unused pins 2023-10-30 16:47:27 +08:00
rhgndf
b160a49601 Initial GAL18V10 support 2023-10-30 16:47:27 +08:00
ole00
13bc7bdad9 Sketch: compilation fixes 2023-10-15 09:53:25 +01:00
rhgndf
d26234d6ca Add missing case statments 2023-10-07 19:34:03 +08:00
rhgndf
393c03993b Remove unnecessary progmem strings when printing 2023-10-07 19:33:21 +08:00
rhgndf
e9b6eae0ce Change switch statement to array lookup 2023-10-03 20:17:18 +08:00
rhgndf
1f5a856f2a Remove use of line when printing jedec 2023-10-03 20:02:43 +08:00
rhgndf
ae05e4d51b Reduce ram usage 2023-10-03 19:45:38 +08:00
ole00
8b82d0ea0e Increased version to 0.5.3 2023-10-02 22:41:13 +01:00
ole00
4f1a89007b Sketch: reduced RAM allocation
Byte arrays held in RAM were moved to be kept in flash only.
This released ~365 bytes of RAM
2023-10-02 22:22:09 +01:00
rhgndf
7a93bac034 Initial PES writing support for GAL6001/GAL6002 2023-10-02 01:14:22 +08:00
rhgndf
c97f4297c1 Fix write support for GAL6001/GAL6002 2023-10-02 00:04:13 +08:00
rhgndf
78eb638c98 Initial write support for GAL6001/GAL6002 2023-09-30 21:30:49 +08:00
rhgndf
bb8f67fe74 Add verify support to GAL6001/GAL6002 2023-09-28 18:24:17 +08:00
rhgndf
f0c572bc33 Refactor printing the fuse map 2023-09-25 12:18:49 +08:00