Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Сбой C8051F340
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры
asrael
При нестабильном питании периодически перестает загружаться контроллер. Что это может быть и как с этим бороться? В основном при исчезновении питания в самом начале загрузки (кратковременно воткнуть вилку в розетку и сразу вытащить).
Контроллер C8051F340
Andrewak
Цитата(asrael @ Nov 12 2007, 08:47) *
При нестабильном питании периодически перестает загружаться контроллер. Что это может быть и как с этим бороться? В основном при исчезновении питания в самом начале загрузки (кратковременно воткнуть вилку в розетку и сразу вытащить).
Контроллер C8051F340

ИМХО, Флэша бьется... Смотрите даташит, разделы 11.1 и 11.2. Если не поможет, то внешний супервизор должен спасти ситуацию...
asrael
А что означает:
"The VDD Monitor must be allowed to stabilize before it is selected as a reset source. Selecting the VDD monitor as a reset source before it has stabilized will generate a system reset." ?
Потому что этот ресет задействован, но может быть не правильно что-то настроено...
TBI
Цитата(asrael @ Nov 13 2007, 07:15) *
А что означает:
"The VDD Monitor must be allowed to stabilize before it is selected as a reset source. Selecting the VDD monitor as a reset source before it has stabilized will generate a system reset." ?
Потому что этот ресет задействован, но может быть не правильно что-то настроено...


Перевод:
VDD Monitor должен выйти на стабильный режим работы, перед тем как он будет выбран источником сброса. Выбор VDD Monitor в качестве источника сброса, перед тем как он выйдет на стабильный режим работы, вызовет сброс МК.

Необходимо сначала включить VDD Monitor. После этого подождать (временную задержку смотрите в datasheet) и только после этого выбрать VDD Monitor в качестве источника сброса.

Посмотрите еще внешние цепи сброса. Пример правильного построения сброса смотрите в документации на Evaluation Board.

Еще есть Watchdoc. Он по умолчанию включен. Его программно в самом начале необходимо выключить.
asrael
Внешний сброс мы не используем (пока). Watchdoc отключен.

Подобных проблем ни у кого не было? На одной плате у нас 2 контроллера. Второй MC9S12NE64, на том же питании. Программа на порядок меньше по объему. И он не сбоит. Все в порядке.

Какие вероятные причины такого поведения контроллера могут быть кроме питания?
TBI
Цитата(asrael @ Nov 13 2007, 14:21) *
Внешний сброс мы не используем (пока).


Внешние RC цепи сброса все равно должны быть.
asrael
А, вы это имеете ввиду. Проверю. Я подумал про внешний супервизор.
asrael
Внешний сброс в порядке, причем я перепробовал несколько комбинаций RC. Сейчас оставил 10k - 0.1 mkF.

Слетает прошивка при выключении. Включал вилку в розетку удерживая рукой кнопку сброса, затем отпускал. Два раза грузится программа, на третий - уже нет.
Все таки я думаю что это связано с VDD monitor или еще с чем нибудь подобным. Никаких экстремальных режимов нет. Блок питания импульсный, пятивольтовый, затем стоит стабилизатор на 3,3В.
Еще думаю может как-то влиять реле, обмотка которого питается от 5В... Оно включается после загрузки контроллера и отключается когда пропадает питание.
TBI
Цитата(asrael @ Nov 14 2007, 15:51) *
Слетает прошивка при выключении.


Что Вы имеете ввиду? C8051F340 содержит Flash память. После манипуляций со сбросом память стирается что ли?

Попробуйте не импульсный источник питания, а линейный.
asrael
Манипуляции со сбросом я придумал для того, чтобы выяснить, происходит сбой при включении устройства или при выключении. А происходит следующее: после сбоя устройство может не работать совсем, т.е. вести себя так, будто контроллер не запрограммирован, а может работать, но ЖК экран не инициализирует. Какой-то частичный сбой.
Источник то у нас импульсный, но он на 5 вольт. Поэтому для питания контроллера это напряжение преобразуем в 3,3 при помощи стабилизатора IRU1117. Там должно быть все линейно. По крайней мере на осциллографе никакой шерсти нет.
Shandy
Попробуйте прочитать флэш память после сбоя программатором и сравнить с тем, что туда заливалось. Может, появятся какие-то мысли. Нет ли у Вас в коде каких-либо функций, пишущих во флэш во время исполнения программы ?
asrael
Есть, но при исчезновении питания нет. Есть сигнал об исчезновении питания, и тогда всякие записи блокируются.
Сегодня на питание поставил конденсатор 470 пик, вызвать сбой не удалось, может это решение проблемы, но пока утверждать не стану.
Похоже идет ВЧ помеха по питанию...
Тема пока актуальна
TBI
А линейный преобразователь пробовал?
Kirill Frolov
Цитата(asrael @ Nov 13 2007, 14:21) *
Внешний сброс мы не используем (пока). Watchdoc отключен.
Какие вероятные причины такого поведения контроллера могут быть кроме питания?


У контроллера есть вход, разрешающи работу монитора питания аппаратно,
сразу при включении питания. Вроде, MON называется. Его куда-то нужно
присоединить.

Советы программного включения собаки и монитора питания архиглупые --
флеш [SENSORED] задолго до того, как программа дойдёт до этого участка кода.
TBI
Цитата(Kirill Frolov @ Nov 19 2007, 22:34) *
У контроллера есть вход, разрешающи работу монитора питания аппаратно,
сразу при включении питания. Вроде, MON называется. Его куда-то нужно
присоединить.


Это уже становится совсем интересно. Какой это вывод?
asrael
Нет возможности использовать линейный преобразователь. Это серийное устройство. Нужен дешевый блок питания.
Выводов монитора питания нет. Прошивка слетает все равно. Натренитровались так, что на это уходит 20 секунд.
Факт то, что монитор питания работает, но не помогает. На выводе /res/ устанавливается логический ноль при напряжении питания 2,5В. Сейчас заказал микросхемы внешнего сброса на 3,08В. Попробуем - отпишусь

Цитата(Kirill Frolov @ Nov 19 2007, 23:34) *
Советы программного включения собаки и монитора питания архиглупые --
флеш [SENSORED] задолго до того, как программа дойдёт до этого участка кода.


Прошивка слетает при ВЫКЛЮЧЕНИИ!
TBI
Семейство C8051F34x является довольно надежным. Я уже сделал не одно устройство на данном чипе.
Проблем особых не было.

Попробуйте запитаться от USB компьютера. В datasheet есть пример подключения. Из внешних элементов оставте только цепь сброса. Все остальное отключите физически. Если будет нормально работать, то подключайте поочереди остальные элементы схемы и определите причину. Если это не поможет - замените микросхему.
asrael
В общем решение нашлось. При снижении питания не срабатывает встроенный супервизор и контроллер в "бреду" стирает память. Когда убрали из кода прошивки все команды записи, сбоев не стало.
Поставили внешний супервайзер - помогло. Теперь сбоев нет вообще.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.