--- Quote Start ---
EPCS use the command code 0xAB to read the silicon id (e.g. 0x14 for EPCS16)
while on M25PE16 the same code is used for the release from power down command.
--- Quote End ---
Probably you would be right, but from a Micron datasheet of M25P16, the "READ ELECTRONIC SIGNATURE and
RELEASE from DEEP POWER-DOWN" command is exactly the one that epcs_read_electronic_signature function within original HAL driver use (i.e.
res_cmd[] = {epcs_res, 0, 0, 0})
--- Quote Start ---
The read-id command code for M25PE16 is instead 0x9F
--- Quote End ---
Exactly... that (epcs_read_device_id) is in fact the command issued by original EPCS HAL driver if previous epcs_read_electronic_signature command (ABh) fails answering something not foreseen.
I think (again) that debugging you should be able to retrieve the answer to both command. If the second command is issued because the answer to first one is FFh, you will have to possibilities: 1) if the answer is still FFh you have to check you signal
2) if the answer is not FFh, you have to modify your HAL driver adding the support of M25PE64 because the original HAL driver only support EPCS128 (18h) as possible answer to epcs_read_device_id command.
Ciao