Внутрисхемный SPI-программатор для Atmel At89S8252 на LPT порт Программатор предназначен для программирования микроконтроллеров Atmel через интерфейс SPI (непосредственно в схеме). Вероятно, что-то подобное можно было бы и обнаружить в сети. На сайте Atmel есть пример, но не совсем то, что было нужно мне. Возможно, уже проделанная и в целом тупая работа позволит сохранить кому-то один-два дня.
Программатор подключается к LPT-порту компьютера и обеспечивает гальваническую развязку. Линия RST для приведенной программы должна быть подключена непосредственно к линии RST микроконтроллера. Для использования в схемах сброса с инверсией RST в исходнике нужно проинвертировать разряд 0 при выводе в порт 37A (строки с комментарием { chip reset } и { /chip reset }). При использовании оптронов типа АОТ128 с буквами А или Б внешняя подгрузка RST должна быть минимальной — не менее 10...15 кОм от 5 В, иначе остаточное напряжение на оптроне превысит требуемое.
Соответствующие линии со стороны контроллера можно и желательно подтянуть к питанию через 5...10 кОм. Прилагаемая программа предназначена для записи/чтения/стирания/записи защиты памяти программ At89S8252. При желании программу можно дополнить до работы с внутренним EEPROM, используя соответствующие управляющие коды. Функции записи/чтения по SPI подходят для программирования контроллеров AVR (подробнее — в документации Atmel).