I thought this came up somewhere up in the thread? Well anyways. The issue with not being able to write many zeros at the same time could be a current limitation. The embedded MTP memory is probably written with hot carrier injection or another mechanism that requires a lot of current. The total current consumption during writing depends on the numbers of zeros written. I should maybe try to use a transistor to control VDD instrad of a GPIO...
Interesting...
I was able to READ/ERASE with VDD coming from STM32 (3.3V, smallish current) and it worked nice. However writing only sometimes changed some bits.
When I added a transistor to switch VDD (basically wiring resistor to VDD supplied from external PSU and using mosfet to pull it to ground... I know but I had it handy) situation got worse.
I could not write anything anymore. However READ and ERASE still worked.
My experiments with PFS154:
* any VPP 5.7 - 12V and any VDD 2.4 - 7V READ/ERASE works
* WRITE worked only (a little bit) when VDD was connected to MCU (3.3V), it also stopped working with 3.3V when using the transistor.
So maybe my current limiting resistor needs to be changed. Can't wait to try later today :-)
JS