"Смотрю в книгу -вижу ФИГУ"...
Перелопатил даташитку на STC15F204EA...
Начиркал на скору руку *.inc для моего компилятора (с51asm от Атмела)
и уныло уставился на внезапно возникшие вопросы:
Вопросы:
1. В даташите указано начальное состояние ВСЕХ регистров портов как "квази-бидирект"
т.е. вход с подтягивающим резистором (висит 1).
То же видим и по списку содержимого регистров управления портами при аппаратном сбросе.
Однако в таблице описания выводов (стр.11) для Р2.0 указано следующее
"...After power-up, it will output 0. Change the output register to 1 before
making it iuput..." т.е. после подачи питания выставляется 0 (выход с активным 0 и/или
режим open drain output с активным 0 =???).
Плюс к тому еще и программная инициализация для Р2.0 при запуске также требуется...
Надо проверять...
2.
Распределение границ областей ПЗУ на AP, IAP и ISP в даташите не указаны...
3. Где хранится заводской бутлоадер (и соответственно есть ли опасность его затирания??)
Поскольку для запуска по умолчанию в IAP_CONTR.SWBS имеем 0 -
"Boot from main-memory after reset" , а в описании алгоритма перепрошивки указан
первичный мониторинг при подаче питания команд ISP на линиях Р3.0-Р3.1,
весьма желательно иметь более детальное и
конкретное описание как границ зон AP, IAP и ISP в кристалле так и самого протокола
заводского начального загрузчика.
ИБО... ко всем вышеуказанным областям имеется свободный доступ через
IAP/ISP CONTROL регистры...
И при ошибке вида "затерта зона ISP" имеем шанс
получить абсолютно не подлежащий реанимации кристалл...
Воть так...
Можеть кто уже это выяснял?
Единственно что порадовало
встретил интересное описание:
"...
4.4.4 How to make I/O port low after MCU reset
Traditional 8051 MCU power-on reset, the general I/O port are weak pull-high output,
while many practical
applications require I/O port remain low level after power-on reset,
otherwise the system malfunction would
be generated. For STC15F204EA series MCU, I/O port can add a pull-down
resistor (1K/2K/3K), so that when
power-on reset, although a weak internal pull-up to make MCU output high,
but because of the limited capacity of
the internal pull-up, it can not pull-high the pad, so this I/O port is low
level after power-on reset. If the I/O port
need to drive high, you can set the I/O model as the push-pull output mode,
while the push-pull mode the drive
current can be up to 20mA, so it can drive this I/O high.
..."
что несколько объясняет "феномен ULN2803+AT89x5yy" при случае, когда входы
ULN2803 непосредственно присоединены к выводам AT89x5yy без предупредительного
подсоединения внешних подтягивающих резисторов к + питания...
Только вот "триггерность" такого защелкивания так пока и осталась "под вопросом"...
Бум дальше "покопать"