Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: ATMEGA16
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
ivainc1789
ATMEGA16 принимает меандр частотой 500 kHz через пин XCK/T0/PB0 (выв. 40). Меандр снимается с буферного элемента с высокой нагрузочной способностью (74VHC1G14-D). При подключении этого сигнала к выв. 40 меги амплитуда импульсов падает с 4V до 1V. Форма сигнала не изменяется. При этом втекаемый ток по данному выводу около 30 ma. Это странно, ведь порт B инициализирован как (PORTB=0xFC,DDRB=0xFC), т. е. PB0 является входом без pull-up. Кто-нибудь может подскажет в чем дело?
AndyBig
Проверьте - отключен ли USART?
Второй вариант - "сопля" на плате (соседний 39-й пин - GND).
Ну и последнее - горелый контроллер, я с таким сталкивался - от перегрева при выпайке выгорели схемы нескольких IO-выводов, при этом ядро контроллера оставалось рабочим.
ivainc1789
[quote=AndyBig,Jun 18 2005, 18:46]
Проверьте - отключен ли USART?
[/quote]
Разве по умолчанию не отключен? Биты RxEN и TxEN по умолчанию сброшены, поэтому дело наверно не в этом...
[/quote]
Второй вариант - "сопля" на плате (соседний 39-й пин - GND).
[/quote]

Соплей вроде тоже нет - проверено визуально и омметром.

[/quote]
Ну и последнее - горелый контроллер, я с таким сталкивался - от перегрева при выпайке выгорели схемы нескольких IO-выводов, при этом ядро контроллера оставалось рабочим.
*

[/quote]

Не хочется верить в неисправность контроллера. B есть основания. Если порт B проинициализировать DDRB0=0 и PORTB0=1, то есть разрешить pull-up на пины T0,T1 то на этих пинах появляется необходимое напряжение около 4.5v.
Если теперь подключить меандр к любому из пинов T0,T1 то размах импульсов имеет диапазон 3,5-4,5v.
Может все же не погорел кристалл? Тем более, что все другие пины работают корректно...
AndyBig
Ну тогда это просто загадка smile.gif.
Пин явно садит на землю при отключенном pull-up, а это в нормальном случае может быть только при включении пина в режим выхода и подачи на него нуля.
ivainc1789
Цитата(AndyBig @ Jun 18 2005, 23:53)
Ну тогда это просто загадка smile.gif.
Пин явно садит на землю при отключенном pull-up, а это в нормальном случае может быть только при включении пина в режим выхода и подачи на него нуля.
*


Сейчас проверил ток через включенные pull-up пинов T0,T1. Ток на землю с этих пинов при включенных pull-up десятки миллиампер. То есть получается так: конфигурация pull-up приводит к появлению +5v на этих пинах, а конфигурация высокого импеданса - к соед. с землей. Короче, две линии ввода/вывода потеряны. Хорошо, что счетчики все же работают и есть резерв по пинам.

А вот монтаж был сделан со всеми мерами предосторожности, тем более что данные пины изначально вообще никуда не были подключены. Есть еще два кристалла из этой же поставки, проверю и их.
Впервые пришлось наткнуться на неисправный кристалл за несколько лет работы с ATMEL...
AndyBig
Да, чип явно немсправен...
Вообще-то довольно редкий случай.
rat
Был похожий случай, тоже кстати с 16 мегой. У тебя что в этот бит записано? 0? У меня был записан 0 и напруга проседала, записал в этот бит единицу(настроен как вход) и усё заарбайтало.
AndyBig
Человек же писал
Цитата
Ток на землю с этих пинов при включенных pull-up десятки миллиампер.

При 50 килоомах (по даташиту) pull-up резисторов такого никак не может быть в исправном чипе.
А при записанном 0 в режиме входа пин должен быть в режиме tree-state, то есть иметь очень высокое сопротивление и по отношению к земле и по отношению к питанию.
yung
На всякий случай - погоняй в AVR Studio, может где-то в программе по ошибке идет присваивание DDRB вместо PORTB, особенно если ассемблерные вставки с непосредственными адресами используешь. Я больше пяти лет AVR применяю, ни разу с битыми портами не встречался даже при КЗ, а вот жертвой собственной невнимательности становился неоднократно.
AndyBig
Кстати, действительно, очень похоже что порт не переходит в режим входа.
ivainc1789
Цитата(AndyBig @ Jun 21 2005, 10:25)
Кстати, действительно, очень похоже что порт не переходит в режим входа.
*


Я даже просто делал ини портов (всех регистров) значением 0x00 после чего стоял замкнутый цикл, и это не помогало - на выводах T0,T1 уверенная земля! Сейчас проверю еще раз... Сопли на плате исключены - все капитально вокруг них зачищено. Ладно бы только T0 - там можно было бы USART заподозрить, так нет...
ivainc1789
Цитата(ivainc1789 @ Jun 21 2005, 16:55)
Цитата(AndyBig @ Jun 21 2005, 10:25)
Кстати, действительно, очень похоже что порт не переходит в режим входа.
*


Я даже просто делал ини портов (всех регистров) значением 0x00 после чего стоял замкнутый цикл, и это не помогало - на выводах T0,T1 уверенная земля! Сейчас проверю еще раз... Сопли на плате исключены - все капитально вокруг них зачищено. Ладно бы только T0 - там можно было бы USART заподозрить, так нет...
*



Глазам своим не поверил, когда простой код инициализации портов pull-up'ами нормально установил линии PB1,PB0. Дальнейший разбор полетов выявил подлую ошибку в модуле инициализации LCD, чья четырехпроводная шина также размещена на порту B.
А я уже начал сомневаться в надежности атмеловских портов. Они не подкачали и в этот раз, даже когда на их линии были поданы "аварийные" уровни напряжений. Браво Атмел! И всем ответившим спасибо!
AndyBig
Поздравляю smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.