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.
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.
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.
- 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)
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