Блин, я вообще слабо знаком с архитектурой PIC, так что пришлось пробежаться по-диагонали. Цитирую выдержки из datasheet. http://ww1.microchip.com/downloads/en/devicedoc/39025f.pdf
http://ww1.microchip.com/downloads/en/DeviceDoc/30292D.pdf
http://ww1.microchip.com/downloads/en/DeviceDoc/30292D.pdf
4.0 DATA EEPROM AND FLASH PROGRAM MEMORY The Data EEPROM and FLASH Program Memory are readable and writable during normal operation over the entire VDD range.В даташите на этот кристалл я не нашел таких слов, но вот цитата, поясняющая механизм программирования, из аналогичного раздела PIC16F887
The write time is controlled by an on-chip timer. The write/erase voltages are generated by an on-chip charge pump rated to operate over the voltage range of the device for byte or word operations.Т.е. принцип работы записи/стирания Flash аналогичен используемому MSP430. Для внутрипрограммного программирования (IAP) Flash требуется высокое напряжение, которое вырабатывается внутри МК. Для MSP430 других способов программирования и подачи высокого напряжения не предусмотрено (процедуру пережигания fuse тут не рассматриваем). Во время работы встроенной программы Bootloader или при программировании через JTAG используется тот же самый генератор FTG, вырабатывающий высокое напряжение для стирания/записи Flash. Но PIC это не MSP430! У PIC есть и другие способы программирования Flash и EEPROM. Обращаемся к документу на который ссылаетесь вы (39025f.pdf). См. самую первую страницу.
1.1 Programming Algorithm Requirements The programming algorithm used depends on the operating voltage (VDD) of the PIC16F87X device. Algorithm 1 is designed for a VDD range of 2.2V≤VDD< 5.5V. Algorithm 2 is for a range of 4.5V≤VDD≤5.5V. Either algorithm can be used with the two available programming entry methods. The first method follows the normal Microchip Programming mode entry of applying a VPP voltage of 13V ± .5V. The second method, called Low Voltage ICSPTM or LVP for short, applies VDD to MCLR and uses the I/O pin RB3 to enter Programming mode.А на 6-й странице есть табличка. Я обвел команды, которые требуют напряжения в диапазоне 4,5-5,5В. Вы выше ссылались на предупреждение для Begin Programming Only Cycle. Но ведь эта команда выполняется в специальном режиме программирования (ICSP)! При "внутрипрограммном" программировании используются другие встроенные ресурсы МК, описанные в 4 разделе datasheet. А используются эти ресурсы при условиях, приведенных в таблице 15.4 DC Characteristics.