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

При нестабильном питании периодически перестает загружаться контроллер. Что это может быть и как с этим бороться? В основном при исчезновении питания в самом начале загрузки (кратковременно воткнуть вилку в розетку и сразу вытащить).
Контроллер C8051F340
ИМХО, Флэша бьется... Смотрите даташит, разделы 11.1 и 11.2. Если не поможет, то внешний супервизор должен спасти ситуацию...
asrael
Nov 13 2007, 04: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." ?
Потому что этот ресет задействован, но может быть не правильно что-то настроено...
Цитата(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
Nov 13 2007, 11:21
Внешний сброс мы не используем (пока). Watchdoc отключен.
Подобных проблем ни у кого не было? На одной плате у нас 2 контроллера. Второй MC9S12NE64, на том же питании. Программа на порядок меньше по объему. И он не сбоит. Все в порядке.
Какие вероятные причины такого поведения контроллера могут быть кроме питания?
Цитата(asrael @ Nov 13 2007, 14:21)

Внешний сброс мы не используем (пока).
Внешние RC цепи сброса все равно должны быть.
asrael
Nov 14 2007, 07:48
А, вы это имеете ввиду. Проверю. Я подумал про внешний супервизор.
asrael
Nov 14 2007, 12:51
Внешний сброс в порядке, причем я перепробовал несколько комбинаций RC. Сейчас оставил 10k - 0.1 mkF.
Слетает прошивка при выключении. Включал вилку в розетку удерживая рукой кнопку сброса, затем отпускал. Два раза грузится программа, на третий - уже нет.
Все таки я думаю что это связано с VDD monitor или еще с чем нибудь подобным. Никаких экстремальных режимов нет. Блок питания импульсный, пятивольтовый, затем стоит стабилизатор на 3,3В.
Еще думаю может как-то влиять реле, обмотка которого питается от 5В... Оно включается после загрузки контроллера и отключается когда пропадает питание.
Цитата(asrael @ Nov 14 2007, 15:51)

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

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

У контроллера есть вход, разрешающи работу монитора питания аппаратно,
сразу при включении питания. Вроде, MON называется. Его куда-то нужно
присоединить.
Это уже становится совсем интересно. Какой это вывод?
asrael
Nov 21 2007, 07:12
Нет возможности использовать линейный преобразователь. Это серийное устройство. Нужен дешевый блок питания.
Выводов монитора питания нет. Прошивка слетает все равно. Натренитровались так, что на это уходит 20 секунд.
Факт то, что монитор питания работает, но не помогает. На выводе /res/ устанавливается логический ноль при напряжении питания 2,5В. Сейчас заказал микросхемы внешнего сброса на 3,08В. Попробуем - отпишусь
Цитата(Kirill Frolov @ Nov 19 2007, 23:34)

Советы программного включения собаки и монитора питания архиглупые --
флеш [SENSORED] задолго до того, как программа дойдёт до этого участка кода.
Прошивка слетает при ВЫКЛЮЧЕНИИ!
Семейство C8051F34x является довольно надежным. Я уже сделал не одно устройство на данном чипе.
Проблем особых не было.
Попробуйте запитаться от USB компьютера. В datasheet есть пример подключения. Из внешних элементов оставте только цепь сброса. Все остальное отключите физически. Если будет нормально работать, то подключайте поочереди остальные элементы схемы и определите причину. Если это не поможет - замените микросхему.
asrael
Feb 29 2008, 17:41
В общем решение нашлось. При снижении питания не срабатывает встроенный супервизор и контроллер в "бреду" стирает память. Когда убрали из кода прошивки все команды записи, сбоев не стало.
Поставили внешний супервайзер - помогло. Теперь сбоев нет вообще.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.