Ответы на вопросы о микроконтроллерах MCS-51, Atmel AVR, PIC, Ubicom, ST10

     

у него установлены биты защиты


Q: Какие кросс-средства есть для MCS-51 и где их взять?
Q: Какие есть особенности использования I/O выводов в семействе mcs51?
Q: А можно прочитать кристалл MCS-51, если у него установлены биты защиты от считывания ?
1) Семейство mcs51 имеет 'квазидвунаправленные' выводы портов. Т.е. вниз они тянут более-менее прилично, а вверх тянет несильный pull-up. Для конфигурирования ноги на ввод в соответствующий бит порта просто выводится единичка, наружный сигнал ее пересиливает. Hо на этом ровном месте разложены аккуратненькие грабельки. Pull-up на самом деле состоит из трех частей (см. например doc0499.pdf с сайта Atmel). Самый слабый транзистор Q2 обеспечивает ток 8...10 мкА. Транзистор Q3 (ток до 0.5 мА) обеспечивает поддержание уровня '1', но при снижении напряжения на входе до уровня около 2 В (при питании 5В) он выключается. И, наконец, самый мощный транзистор Q1 (единицы мА) включается на 2 периода кварцевого генератора при переходе бита в регистре порта из '0' в '1', обеспечивая хорошее нарастание сигнала. Такая структура обеспечивает и возможность выдать достаточно приличную (по меркам работы на ТТЛ-микросхемы) '1' и в то же время не потреблять лишний ток при подаче на вход "0". Hо: a) если нога была притянута к земле внешним сигналом с открытым коллектором, то к питанию ее поначалу будет тянуть только ток 10 мкА, нарастание будет очень медленным. Из-за этого, например, может плохо работать обмен по I2C.
  • Притяните выводы к питанию резистором 3К...10К
b) если нога работает через резистор на базу NPN транзистора, да еще и тока захотелось в базу дать побольше :-), то иногда даже наводка может дотянуть вывод вниз до выключения транзистора Q3. После этого тока транзистора Q2 может не хватать для того, чтобы вывести напряжение на нагружающем резисторе в зону включения Q3, выход защелкивается в '0'
  • ставьте резистор с базы не на вывод порта, а на питание и пусть порт коротит базу на землю. Hедостаток - лишний потребляемый ток в состоянии 'транзистор закрыт'
  • если это возможно, ставьте PNP транзисторы и используйте ток '0'
  • ставьте составные транзисторы (или ULN2003 aka К1109КТ23), падения напряжения на двух переходах даже при малом токе достаточно для нормальной работы.
2) Кроме этого, транзисторы Q1 в порту P2 при выводе адреса и обычно выключенный pull-up в порту P0 при выводе адреса и данных в лог. '1' включены все время.


Падение напряжения на этих транзисторах около 0.5 В при токе 4...5 мА т.е. могут создать вполне приличные 'КМОП-уровни' на нагрузке 1К. В то же время в 'обычном' состоянии резистор 4.7 К на землю создает достаточно устойчивый '0' на входах процессоров серии mcs51. Следствия: a) Если даже в вашей системе используются внешние ОЗУ/ПЗУ, но есть также и внутреннее ПЗУ, то вы можете использовать линии порта P2 как входы, подключив входные сигналы через последовательные резисторы 2К...3К и опрашивая их подпрограммой, находящейся во внутренней памяти кода b) Если внешнего ПЗУ нет, то можно расширить порты микроконтроллера не занимая выводов для стробирования следующим образом. Порт P2 используется как входы (через резисторы), напрямую же к нему подключены входы регистра ИР23, на строб регистра подается сигнал /PSEN. Последовательность команд mov DPH,somedata movc a,@a+DPTR запишет в регистр значение somedata. >Q: А можно прочитать кристалл MCS-51, если у него установлены биты защиты от считывания ? A:
Можно. Существовала фирма ChipExpert,mailto:info@chipexpert.com, предлагавшая продукты RD51 для Intel'овских и AT51 для Atmel'овских кристаллов.

Содержание раздела