Перейти к содержанию
    

День добрый, если он добрый... :help:

Вопрос на засыпку:

Может ли измениться ROM в PIC18F4520-I/P от каких-то помех?

Ситуация следующая:

Есть контроллер инкубатора, недавно работающий нормально и в какой-то момент (возможно при смене положения лотков) стал работать не стабильно, т.е. не правильно выполнять переход по меню, не в тех пределах изменять задаваемые параметры (пределы заданы #define) и т.д. Лотки ворочает 12В привод от стеклоподъемника ВАЗ-2110.

Не исправляет ситуацию даже выключение питания на длительное время.

Выкладываю схему и плату контроллера, может там баги..??

post-36629-1271835779_thumb.png

post-36629-1271835809_thumb.png

post-36629-1271835854_thumb.jpg

post-36629-1271836630_thumb.jpg

Изменено пользователем avartemiy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...Может ли измениться ROM в PIC18F4520-I/P от каких-то помех?...

Не исправляет ситуацию даже выключение питания на длительное время...

 

У 18-ой серии есть возможность перезаписывать программную память в процессе работы.

Если программу не писали вы, есть две возможности: Либо плохо написана программа (не исключена возможность случайной записи во FLASH), либо тот кто писал программу, поставил "time-bomb" - через некоторое время, программа "сбивается" и вы (по идее) должны ему позвонить, что бы он это исправил (за деньги, конечно). Во втором случае помогло бы перепрограммирование микроконтроллера (поскольку внешней памяти нет), если файл прошивки у вас имеется, конечно.

Если программу писали вы, второй возможности нету. ( :) , без обид!)

Попробуйте перепрограммировать PIC18F4520.

Ну и по схеме не видно что за блок питания там у вас. При включении двигателя возникает большой пусковой ток, превышающий номинальный в 10 - 20 раз...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Прогу писал я, но процедуры записи в ПЗУ не использовал вообще здесь.

2. БП трансформаторный с номинальным током обмотки транса 7А, причем обмотка питания для процессора отдельная.

Общую схему приложил.

post-36629-1271882349_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1. Прогу писал я, но процедуры записи в ПЗУ не использовал вообще здесь.

А в EEPROM пишете?

Power Up Timer включен?

Brown Out Detect?

2. БП трансформаторный с номинальным током обмотки транса 7А, причем обмотка питания для процессора отдельная.

Я бы убрал L1 и R11 (процессорный блок) и уменьшил R10 до 1к.

А что это за телефонный разъем?

В связи с этим задумайтесь, если в цепи +5В откуда ни возьмись появиться напряжение выше 5-ти, кто будет его ограничивать?

А у вас и управление нагрузками гальванически не развязано ...

Например, если получиться пик напряжения в цепи +5В, из-за L1 и C6 + C7 на выводе питания процессора существенного увеличения не произойдет, за то на вывод RST/Vpp получиться тот самый пик. Это может привести к вхождению в режим программирования.

Это общие рассуждения, раз вы сами делали весь проект, разберетесь.

Но самовольного стирания/изменения содержимого FLASH-а я не наблюдал.

 

ПП После 7805 рекомендуется хотя бы конденсатор 0,1мкФ ставить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А в EEPROM пишете?

Power Up Timer включен?

Brown Out Detect?

В EEPROM пишу.

Power Up Timer выключен, включить?

Brown Out Detect установлен на 2,7 В

 

А что это за телефонный разъем?

Датчики подключаются DS18B20 и аналоговый влажности HIH4000.

 

А у вас и управление нагрузками гальванически не развязано ...

Как не развязано? от 220В - оптроны, а от мощных 12В - реле. И резисторы в базах транзисторов и анодах оптронов должны гасить кратковременные помехи, идущие на PIC.

 

Например, если получиться пик напряжения в цепи +5В, из-за L1 и C6 + C7 на выводе питания процессора существенного увеличения не произойдет, за то на вывод RST/Vpp получиться тот самый пик. Это может привести к вхождению в режим программирования.

Присмотритесь, нога RST/Vpp подтягивается к той же цепи Vpp после L1, которая и пик питает... так что должно быть так, как вы сказали "на выводе питания процессора существенного увеличения не произойдет"

 

ПП После 7805 рекомендуется хотя бы конденсатор 0,1мкФ ставить.

Там он есть, но чуть дальше - возле разъема XS1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В EEPROM пишу.

WREN сбрасываете после записи?

Лучше сбрасывать, причем выставлять непосредственно до, и сбрасывать сразу после.

Power Up Timer выключен, включить?

Не помешало бы.

Как не развязано?

У меня был такой случай, ПИК включал напрямую мощную емкостную нагрузку через транзистор и реле. Ну именно как у вас. Каждый раз в момент включения реле, процессор сбрасывался. Оказалось совсем тривиальная причина - реле возвращает обратно как токовый трансформатор импульс, который по питанию сбрасывает систему. Да, но посмотрели мы этот импульс осциллографом, оказался совсем не хилый такой импульсЧег вольт эдак на 30. С тех пор всегда развязываю выходы процессора оптронами (мои устройства работают в промышленной среде). Может и чуть дороже, зато (тьфу тьфу) не было больше проблем.

Присмотритесь, нога RST/Vpp подтягивается к той же цепи Vpp после L1...

Да, но я все таки L1 убрал бы. Может многие не согласятся, но мне магнитные антенны в цепи питания процессора не нужны. Тем более после линейного стабилизатора...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, но я все таки L1 убрал бы. Может многие не согласятся, но мне магнитные антенны в цепи питания процессора не нужны. Тем более после линейного стабилизатора...

Я бы не убирал дроссель, а переставил его на вход линейного стабилизатора, который от НЧ помех избавит, а вот от ВЧ уже не сможет.

А проблема, мне кажется, чисто в программе. Не стабильно работает, потому что так написана.

Я не нашел, Вы сравнивали содержимое PIC после сбоев со своим кодом?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я бы не убирал дроссель, а переставил его на вход линейного стабилизатора...

 

Там хороший фильтр уже есть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, но я все таки L1 убрал бы. Может многие не согласятся, но мне магнитные антенны в цепи питания процессора не нужны. Тем более после линейного стабилизатора...

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

 

А отладочные средства есть какие-то в системе? Я делал несколько систем с сенсорами, и простейший сом-порт в который я выдаю всю необходимую инфу помагает при отладке чрезвычайно. Не говоря уже о тех случаях, когда плата не пашет нормально по вине клиента (дефекты сборки) -- подключаю комп к плате, и все им наглядно показыаю. А без этого была бы попа.... Предыдущий разработчик не предусмотрел такой функции, на чем и погорел, когда начались глюки (при чем не по его вине! -- был глючный сенсор).

 

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

 

ФЛЕШ из поломанной системы назад читать не пробовали?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ФЛЕШ из поломанной системы назад читать не пробовали?

 

FLASH не читал еще, та плата у клиента за 600 км, да и залочена от чтения мной же.

 

Возможно причина в том, что BODEN у меня был установлен на 2,7 В, а проц работает по даташиту от 4,2, от этого при броске FLASH может измениться?

 

Исходя из всех подсказок форумчан, сегодня поднял BODEN до 4,2В, посадил программно все не неиспользуемые ноги проца программно на землю и после программирования повесил MCLR джампером на +5В. Как думаете, этого достаточно в данной схеме?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

FLASH не читал еще, та плата у клиента за 600 км, да и залочена от чтения мной же.

 

Возможно причина в том, что BODEN у меня был установлен на 2,7 В, а проц работает по даташиту от 4,2, от этого при броске FLASH может измениться?

 

Исходя из всех подсказок форумчан, сегодня поднял BODEN до 4,2В, посадил программно все не неиспользуемые ноги проца программно на землю и после программирования повесил MCLR джампером на +5В. Как думаете, этого достаточно в данной схеме?

Как мертвому припарки.

Operating Voltage Range (V) 2 to 5.5

Flash наврядли может слететь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Лично мне попадались два PIC18F4585 у которых через какое-то время стиралась самопроизвольно ячейка Flash памяти, замена пика на новый устранила дефект.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость DL36
Есть контроллер инкубатора, недавно работающий нормально и в какой-то момент (возможно при смене положения лотков) стал работать не стабильно,

В разводке значительные ошибки, общие рекомендации "помехоустойчивые устройства"

Уже несколько раз лечил проекты начинающих подобные вещи переразводкой.

-очень желателен полигон под процессором.

-совершенно неправильно разведен разведен кварцевый генератор.

-под контроллером практически все пусто сделай земляной полигон в топе под контроллером

и пятивольтовый в боттоме. Вообще полигон далеко не лишняя вещь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кто-то защищал от записи FLASH в PIC18 путем установки битов конфигурации Table Write Protect ? Я смогу потом переписать потом его программатором, или уже нет? В даташите ничего по этому поводу не нашел...

Изменено пользователем avartemiy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...