Перейти к содержанию
    

о 8051 вообще и w78e516 в частности

Свалилась тут такая задачка.

 

Есть у нас изделие на w78e516. Продаётся оно уже лет 5, а автор года три как работает в совсем другом месте.

 

Есть у этой штуки датчик, подключенный напрямую на P2.7 контроллера: низкий уровень - нормальная работа, высокий - ошибка.

Недавно датчики поменялись, и выход у них стал очень слабый.

 

И вылезла крайне неприятная особенность - после срабатывания датчика 0 -> 1 -> 0 на ноге контроллера появляется подтяжка (?!).

Раньше датчик успешно её "перетягивал", всё было хорошо. Теперь его просто не хватает, чтобы установить на ноге устойчивый ноль.

Токи не померял, теперь только в понедельник...

 

 

Вопросы:

- как устроен этот вывод ? В даташите только указание, что он двунаправленный с подтяжками, а также может быть верхней частью шины адреса.

Я правильно понимаю, что у него есть только один регистр управления (даташит об этом умалчивает, подразумевая, что порт - стадартный для семейства) ?

- в даташите есть опечатка - Source current для P2 упоминается дважды - как для push-pull (до 20 мА), так и как для открытого коллектора с подтяжкой (до 0.25 мА). Кто прав?

- как переключается этот вывод? Только setb p2.7 и mov p2 .. ? Чтобы понять, что искать в исходниках.

- и вообще, возможно ли включение-выключение этой подтяжки в принципе? На практике я её видел, а вот почитал теорию, и начал сомневаться...

 

 

PS за вопросы прошу не пинать. Железяка эта существовала по принципу "работает - не трогай", и представление о её внутренностях у меня ещё вчера было весьма смутным. Более того, я с 51-м ядром и не работал никогда...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

- как переключается этот вывод? Только setb p2.7 и mov p2 .. ?

Оба варианта, Первый управляет конкретным битом, второй всем портом.

- и вообще, возможно ли включение-выключение этой подтяжки в принципе?

В классике нет, в разновидностях возможно все. В классике запись 1 в порт "настраивала" вывод на вход.

Source current для P2 упоминается дважды - как для push-pull (до 20 мА), так и как для открытого коллектора с подтяжкой (до 0.25 мА). Кто прав?
Возможно, правы оба. push-pull - до 20 мА из-за внутреннего ограничения (сопротивления). для открытого коллектора с подтяжкой - до 0.25 мА - ограничение непосредственно самого драйвера. Схемотехника входных-выходных каскадов обычно есть в описании.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо.

 

Оба варианта, Первый управляет конкретным битом, второй всем портом.

Вопрос был в другом - существуют ли третий (четвёртый и т.д.) варианты? Чтобы поискать в софте..

Первые два варианта подозрений не вызывают - их в исходниках банально нет :-)

 

 

С пуш-пулом и открытым коллектором более-менее разобрался: в режиме обычного порта работает открытый коллектор, в режиме внешней шины подключается верхний транзистор.

Схемы нет, но в табличке уровней выходных напряжений это явно прописано.

 

В связи с этим вопрос: каким образом тут включается внешняя шина? Из-за того, что это в даташите не прописано, делаю вывод, что механизм стандартный для всех 51-х.

 

 

PS если кому-то интересно, документация.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопрос был в другом - существуют ли третий (четвёртый и т.д.) варианты? Чтобы поискать в софте..

Э-э-э... Существует много команд измененяющих бит Р2.7

Смотрите таблицу в разделе 10: все команды с "direct". И не обязательно с Р2/Р2.7 в первом операнде. Например, "XCH A, P2" - тоже поменяет Р2...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С программными ошибками я погорячился.

 

Тут всплыла следующая... особенность контроллера: при переходе сигнала на входе из 1 в 0 необходимо "высосать" из ножки 0.65 мА тока. Если источник сигнала такой ток не обеспечивает, ножка подвисает "промежуточном" состоянии с уровнем 2 вольта.

Это чудо официально документировано - Logical 1-to-0 transition current (Ports 1..4) max -650uA

Дальше в статическом режиме всё работает нормально, нужно всего 50 мкА.

 

Привык уже к CMOS, у которых входные токи сильно меньше 1 мкА.

И, видимо, не только я привык... :-)

 

 

Будем разбираться, как приделать туда какой-нибудь триггер шмидта...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...