Полная версия этой страницы:
Полярность RESET
RomanRom
Apr 20 2007, 11:41
Активный уровень сигнала сброса у AVR, PIC, Cygnal - низкий. В семейстсве MCS51 - высокий. Вопрос - связано ли это с повышением помехоустойчивости (как у ТТЛ-входа) или что-то другое?
defunct
Apr 20 2007, 13:04
Цитата(RomanRom @ Apr 20 2007, 10:41)

В семейстсве MCS51 - высокий. Вопрос - связано ли это с повышением помехоустойчивости (как у ТТЛ-входа) или что-то другое?
На мой взгляд это связано с временами когда проектировался MCS51 (40 лет назад), видать ядро строилось на XИЛИ-НЕ наборе, как более простом в изготовлении.
Цитата(RomanRom @ Apr 20 2007, 11:41)

Активный уровень сигнала сброса у AVR, PIC, Cygnal - низкий. В семейстсве MCS51 - высокий. Вопрос - связано ли это с повышением помехоустойчивости (как у ТТЛ-входа) или что-то другое?
В 51 сериии вход reset использовался для перевода кристалла в пониженное энергопотребление помимо своего основного назначения ,при этом на входе поддерживалось напряжение питания,а само питание с контроллера отключалось.При этом содержимое памяти оставалось неизменным.
Цитата(RomanRom @ Apr 20 2007, 12:41)

Активный уровень сигнала сброса у AVR, PIC, Cygnal - низкий. В семейстсве MCS51 - высокий. Вопрос - связано ли это с повышением помехоустойчивости (как у ТТЛ-входа) или что-то другое?
Другое. Первые 8051 (без буквы C в названии) делались по технологии nMOS, которая потребляла ток и в статике, в отличие от более поздней CMOS. Для реализации режима пониженного потребления (сохранение информации в ОЗУ) был применен следующий трюк - подавалось резервное питание на вход сброса, а основное питание снималось. Поэтому сброс и был сделан высоким уровнем.
RomanRom
Apr 20 2007, 15:42
Спасибо, классно просветили по истории.
Но если с MCS51 понятно, то получается, что переход от высокого активного уровня к низкому все-таки связан с повышением помехоустойчивости? А как быть с КМОП уровнями, которые идут посрединке питания с 30% разбросом?
SasaVitebsk
Apr 20 2007, 22:53
Цитата(RomanRom @ Apr 20 2007, 15:42)

Спасибо, классно просветили по истории.
Но если с MCS51 понятно, то получается, что переход от высокого активного уровня к низкому все-таки связан с повышением помехоустойчивости? А как быть с КМОП уровнями, которые идут посрединке питания с 30% разбросом?
Честно говоря не совсем понял вопроса. КМОП, как раз за счёт своих уровней считается более помехозащищённой.
RomanRom
Apr 21 2007, 19:57
Подробнее.
1) Исходные данные – исторически первыми появились контроллеры MCS51 со сбросом высоким активным уровнем. Как выяснилось, это была технологическая необходимость. Затем все изготовители перешли на КМОП и сброс почему-то массово стал не высоким, а низким уровнем. Ведь можно было бы оставить высокий, хотя бы для единообразия?
2) Теперь данные на AVR из Datasheet – по входу RESET напряжение нуля=0,1 от VCC, а напряжение единицы=0,9 от VCC. Вопрос – какая разница для помехи прыгнуть вверх от нуля до 0,9 VCC или прыгнуть от питания вниз до 0,1 VCC? То есть получается, что можно RESET было делать и низким, и высоким, но почему-то фирмы выбрали именно низкий уровень.
SasaVitebsk
Apr 21 2007, 22:29
Да разницы нет вобщем то. (Я думаю) Как правило помеха вообще по земле возникает. Точнее даже для неё земля и питание это один провод. Для простоты картины прикинь ёмкость м/у землёй и питанием. А помеха - переменный сигнал по сути. Вот и получается что ей до лампочки. Мне кажется, что изменения были слеланы не из-за помех. Хотя, на самом деле я этого не знаю.
rezident
Apr 21 2007, 22:35
Цитата(RomanRom @ Apr 21 2007, 22:57)

Вопрос – какая разница для помехи прыгнуть вверх от нуля до 0,9 VCC или прыгнуть от питания вниз до 0,1 VCC? То есть получается, что можно RESET было делать и низким, и высоким, но почему-то фирмы выбрали именно низкий уровень.
Активный уровень сигнала RESET не позволяет стартовать управляющей программе, неконтролируемое выполнение которой может привести к аварии всего устройства в котором применяется данный МК и/или запортить содержимое Flash/EEPROM. Обычно на вход RESET подают сигнал от супервизора питания (при отсутствии встроенного BOD/BOR), который снимает активный сигнал при достижении величины питания рабочего уровня или наоборот устанавливает активный уровень при снижении питания ниже нормы. Теперь встречный вопрос: как по-вашему, какой активный уровень проще сформировать при снижении/нарастании питания, от которого работают оба - и МК и супервизор?
CD_Eater
Apr 21 2007, 23:59
Цитата
Теперь данные на AVR из Datasheet – по входу RESET напряжение нуля=0,1 от VCC, а напряжение единицы=0,9 от VCC. Вопрос – какая разница для помехи прыгнуть вверх от нуля до 0,9 VCC или прыгнуть от питания вниз до 0,1 VCC?
Вы, мне кажется, немного не так поняли данные ДШ. Вот, например, по ДШ мега48 пороговое напряжение Vrst срабатывания сброса может находиться в пределах от 0.2 до 0.9 Vcc, и "прыгать" придётся не до 0.2 Vcc, а ближе. И гистерезис там, скорее всего, порядка 0.1 вольта, как на остальных ножках.
А вот для борьбы с помехами сделана задержка срабатывания - линия должна удерживаться ниже Vrst в течение примерно 2 мкс.
rezident
Apr 22 2007, 00:36
CD_Eater, у RomanRom вопрос не про величину и/или наличие гистерезиса, а про полярность сигнала RESET.
CD_Eater
Apr 22 2007, 01:04
Я не про гистерезис, а про уровни срабатывания.
rezident
Apr 22 2007, 01:20
Цитата(CD_Eater @ Apr 22 2007, 04:04)

Я не про гистерезис, а про уровни срабатывания.
Странная какая-то атмега. Может вы что-то сами не поняли?
CD_Eater
Apr 22 2007, 03:45
2 rezident
Совершенно верно, это та самая таблица. В ней указаны диапазоны напряжений, гарантированно воспринимаемые атмегой как низкий и высокий потенциалы, до 0.2 Vcc и от 0.9 Vcc соответственно, как я и говорил. Реальный порог Vrst лежит где-то между 0.2 Vcc и 0.9 Vcc. В чём Вы увидели противоречие?
RomanRom
Apr 22 2007, 18:48
Еще одна вводная (разные контроллеры имеют разные уровни)
0,1-0,85 VCC ATmega325
0,2-0,85 VCC ATmega162
0,1-0,9 VCC ATmega 8
0,3-0,85 VCC AT90S2313
0,2-0,8 VCC PIC16F
В части супервизоров. Технически нет большой разницы, какой уровень сделать внутри супервизора (контроллера) активным - низкий или высокий. Существуют микросхемы супервизоров и мониторов питания и с низким, и с высоким, и с обоими сразу.
Начальный вопрос у меня действительно был не о напряжениях, а о причинах, по каким разработчики разных платформ дружно исповедуют низкий уровень RESET.
Причина одна-единственная - питание начинает нарастать не сверху вниз, а снизу вверх, и для исключения зоны неопределенности на переходной период гораздо проще, естественнее и логичнее обеспечить ОТКЛЮЧЕНИЕ чего-либо (в данном случае RESETа) до достижения порога, чем ВКЛЮЧЕНИЕ чего-либо на раннем участке нарастания
VladimirYU
Apr 23 2007, 08:46
Полностью согласен.
RomanRom
Apr 24 2007, 12:39
Терзают смутные сомнения...
1) Рассуждения о росте питании снизу-вверх срабатывают, если контроллер работает от нуля до Uпит. По Datasheet гарантируется от Uмин до Uпит, а это не одно и то же.
2) Рассматриваю AT89C2051 и AVR. Одна и та же фирма, одна и та же технология. По RESET AT89C стоит полупроводниковый pull-down резистор 50-300 кОм, по RESET AVR - pull-up 30-80 кОм. Внутри контроллера они подключены наверное к затворам NMOS и PMOS-транзисторов и при включении питания что-то там блокируют, ожидая внешнего сброса.
3) Сигнал сброса поступает от супервизора, который состоит грубо из стабилитрона и ключа. В зависимости от типа ключа NMOS или PMOS замыкаться он будет или на общий провод, или на питание. Это справедливо тоже для диапазона питания супервизора Uмин-Uпит, который совпадает с контроллером. Рассматривать кусок от 0 до Uмин нет смысла, поскольку контроллер в нем не должен функционировать.
4) AT89C2051 на практике устойчиво сбрасывается, цена у него малая. Не видно причин, почему он хуже (дороже, нетехнологичнее), чем AVR.
5) Нет ли в низком активном уровне RESET более простого объяснения типа патентных отличий от Intel (MCS51)?
GrayCat
Apr 24 2007, 16:09
Видимо, со времен ТТЛ сложилось, что "по умолчанию" на входах - "1", а "активный" уровень, соответственно, "0". Так же и любимый тогда "открытый коллектор" работал. Так что сброс "единицей" у 51-х -- это, скорее, исключение
Угу, из-за этого исключения буквально на днях поимел небольшой гемор. Заменяем в одном из устройств 89C52 на Мегу162-ю. Час сидел чесал репу почему это у меня прога отработает кусок и виснет в середине цикла, ну не должна она там виснуть, не не чем.
... Твою за ногу!!! Ну да правильно! Пока супервизор держит схему в ресете оно работает, как отпускает...
Пришлось контроллер от супервизора оторвать, благо POR у Меги вроде стабильно работает. Хотя супервизор и с обоими ресетами оставил болтаться в воздухе.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.