реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> о 8051 вообще и w78e516 в частности
esaulenka
сообщение Sep 7 2012, 15:58
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



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

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

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

И вылезла крайне неприятная особенность - после срабатывания датчика 0 -> 1 -> 0 на ноге контроллера появляется подтяжка (?!).
Раньше датчик успешно её "перетягивал", всё было хорошо. Теперь его просто не хватает, чтобы установить на ноге устойчивый ноль.
Токи не померял, теперь только в понедельник...


Вопросы:
- как устроен этот вывод ? В даташите только указание, что он двунаправленный с подтяжками, а также может быть верхней частью шины адреса.
Я правильно понимаю, что у него есть только один регистр управления (даташит об этом умалчивает, подразумевая, что порт - стадартный для семейства) ?
- в даташите есть опечатка - Source current для P2 упоминается дважды - как для push-pull (до 20 мА), так и как для открытого коллектора с подтяжкой (до 0.25 мА). Кто прав?
- как переключается этот вывод? Только setb p2.7 и mov p2 .. ? Чтобы понять, что искать в исходниках.
- и вообще, возможно ли включение-выключение этой подтяжки в принципе? На практике я её видел, а вот почитал теорию, и начал сомневаться...


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


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
редактор
сообщение Sep 10 2012, 06:18
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 9-06-07
Пользователь №: 28 315



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

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

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


--------------------
Хорошую систему делают из стандартных блоков нестандартно мыслящие инженеры.
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Sep 10 2012, 10:22
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Спасибо.

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

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


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

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


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


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
Палыч
сообщение Sep 10 2012, 12:29
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954



Цитата(esaulenka @ Sep 10 2012, 14:22) *
Вопрос был в другом - существуют ли третий (четвёртый и т.д.) варианты? Чтобы поискать в софте..

Э-э-э... Существует много команд измененяющих бит Р2.7
Смотрите таблицу в разделе 10: все команды с "direct". И не обязательно с Р2/Р2.7 в первом операнде. Например, "XCH A, P2" - тоже поменяет Р2...
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Sep 10 2012, 17:04
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



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

Тут всплыла следующая... особенность контроллера: при переходе сигнала на входе из 1 в 0 необходимо "высосать" из ножки 0.65 мА тока. Если источник сигнала такой ток не обеспечивает, ножка подвисает "промежуточном" состоянии с уровнем 2 вольта.
Это чудо официально документировано - Logical 1-to-0 transition current (Ports 1..4) max -650uA
Дальше в статическом режиме всё работает нормально, нужно всего 50 мкА.

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


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


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 00:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01576 секунд с 7
ELECTRONIX ©2004-2016