|
Глюки у PIC18 |
|
|
|
Apr 21 2010, 07:58
|
Участник

Группа: Участник
Сообщений: 34
Регистрация: 9-04-08
Пользователь №: 36 629

|
День добрый, если он добрый... Вопрос на засыпку: Может ли измениться ROM в PIC18F4520-I/P от каких-то помех? Ситуация следующая: Есть контроллер инкубатора, недавно работающий нормально и в какой-то момент (возможно при смене положения лотков) стал работать не стабильно, т.е. не правильно выполнять переход по меню, не в тех пределах изменять задаваемые параметры (пределы заданы #define) и т.д. Лотки ворочает 12В привод от стеклоподъемника ВАЗ-2110. Не исправляет ситуацию даже выключение питания на длительное время. Выкладываю схему и плату контроллера, может там баги..??
Сообщение отредактировал avartemiy - Apr 21 2010, 08:00
Эскизы прикрепленных изображений
|
|
|
|
|
Apr 21 2010, 11:23
|

Местный
  
Группа: Свой
Сообщений: 206
Регистрация: 17-03-07
Из: Москва
Пользователь №: 26 266

|
Цитата(avartemiy @ Apr 21 2010, 12:13)  ...Может ли измениться ROM в PIC18F4520-I/P от каких-то помех?... Не исправляет ситуацию даже выключение питания на длительное время... У 18-ой серии есть возможность перезаписывать программную память в процессе работы. Если программу не писали вы, есть две возможности: Либо плохо написана программа (не исключена возможность случайной записи во FLASH), либо тот кто писал программу, поставил "time-bomb" - через некоторое время, программа "сбивается" и вы (по идее) должны ему позвонить, что бы он это исправил (за деньги, конечно). Во втором случае помогло бы перепрограммирование микроконтроллера (поскольку внешней памяти нет), если файл прошивки у вас имеется, конечно. Если программу писали вы, второй возможности нету. (  , без обид!) Попробуйте перепрограммировать PIC18F4520. Ну и по схеме не видно что за блок питания там у вас. При включении двигателя возникает большой пусковой ток, превышающий номинальный в 10 - 20 раз...
--------------------
УЭР
|
|
|
|
|
Apr 21 2010, 20:40
|
Участник

Группа: Участник
Сообщений: 34
Регистрация: 9-04-08
Пользователь №: 36 629

|
1. Прогу писал я, но процедуры записи в ПЗУ не использовал вообще здесь. 2. БП трансформаторный с номинальным током обмотки транса 7А, причем обмотка питания для процессора отдельная. Общую схему приложил.
Причина редактирования: Бездумное цитирование
Эскизы прикрепленных изображений
|
|
|
|
|
Apr 22 2010, 05:29
|

Местный
  
Группа: Свой
Сообщений: 206
Регистрация: 17-03-07
Из: Москва
Пользователь №: 26 266

|
Цитата(avartemiy @ Apr 22 2010, 00:55)  1. Прогу писал я, но процедуры записи в ПЗУ не использовал вообще здесь. А в EEPROM пишете? Power Up Timer включен? Brown Out Detect? Цитата(avartemiy @ Apr 22 2010, 00:55)  2. БП трансформаторный с номинальным током обмотки транса 7А, причем обмотка питания для процессора отдельная. Я бы убрал L1 и R11 (процессорный блок) и уменьшил R10 до 1к. А что это за телефонный разъем? В связи с этим задумайтесь, если в цепи +5В откуда ни возьмись появиться напряжение выше 5-ти, кто будет его ограничивать? А у вас и управление нагрузками гальванически не развязано ... Например, если получиться пик напряжения в цепи +5В, из-за L1 и C6 + C7 на выводе питания процессора существенного увеличения не произойдет, за то на вывод RST/Vpp получиться тот самый пик. Это может привести к вхождению в режим программирования. Это общие рассуждения, раз вы сами делали весь проект, разберетесь. Но самовольного стирания/изменения содержимого FLASH-а я не наблюдал. ПП После 7805 рекомендуется хотя бы конденсатор 0,1мкФ ставить.
--------------------
УЭР
|
|
|
|
|
Apr 22 2010, 07:28
|
Участник

Группа: Участник
Сообщений: 34
Регистрация: 9-04-08
Пользователь №: 36 629

|
Цитата(evc @ Apr 22 2010, 07:44)  А в EEPROM пишете? Power Up Timer включен? Brown Out Detect? В EEPROM пишу. Power Up Timer выключен, включить? Brown Out Detect установлен на 2,7 В Цитата(evc @ Apr 22 2010, 07:44)  А что это за телефонный разъем? Датчики подключаются DS18B20 и аналоговый влажности HIH4000. Цитата(evc @ Apr 22 2010, 07:44)  А у вас и управление нагрузками гальванически не развязано ... Как не развязано? от 220В - оптроны, а от мощных 12В - реле. И резисторы в базах транзисторов и анодах оптронов должны гасить кратковременные помехи, идущие на PIC. Цитата(evc @ Apr 22 2010, 07:44)  Например, если получиться пик напряжения в цепи +5В, из-за L1 и C6 + C7 на выводе питания процессора существенного увеличения не произойдет, за то на вывод RST/Vpp получиться тот самый пик. Это может привести к вхождению в режим программирования. Присмотритесь, нога RST/Vpp подтягивается к той же цепи Vpp после L1, которая и пик питает... так что должно быть так, как вы сказали "на выводе питания процессора существенного увеличения не произойдет" Цитата(evc @ Apr 22 2010, 07:44)  ПП После 7805 рекомендуется хотя бы конденсатор 0,1мкФ ставить. Там он есть, но чуть дальше - возле разъема XS1
|
|
|
|
|
Apr 22 2010, 09:39
|

Местный
  
Группа: Свой
Сообщений: 206
Регистрация: 17-03-07
Из: Москва
Пользователь №: 26 266

|
Цитата(avartemiy @ Apr 22 2010, 11:43)  В EEPROM пишу. WREN сбрасываете после записи? Лучше сбрасывать, причем выставлять непосредственно до, и сбрасывать сразу после. Цитата(avartemiy @ Apr 22 2010, 11:43)  Power Up Timer выключен, включить? Не помешало бы. Цитата(avartemiy @ Apr 22 2010, 11:43)  Как не развязано? У меня был такой случай, ПИК включал напрямую мощную емкостную нагрузку через транзистор и реле. Ну именно как у вас. Каждый раз в момент включения реле, процессор сбрасывался. Оказалось совсем тривиальная причина - реле возвращает обратно как токовый трансформатор импульс, который по питанию сбрасывает систему. Да, но посмотрели мы этот импульс осциллографом, оказался совсем не хилый такой импульсЧег вольт эдак на 30. С тех пор всегда развязываю выходы процессора оптронами (мои устройства работают в промышленной среде). Может и чуть дороже, зато (тьфу тьфу) не было больше проблем. Цитата(avartemiy @ Apr 22 2010, 11:43)  Присмотритесь, нога RST/Vpp подтягивается к той же цепи Vpp после L1... Да, но я все таки L1 убрал бы. Может многие не согласятся, но мне магнитные антенны в цепи питания процессора не нужны. Тем более после линейного стабилизатора...
--------------------
УЭР
|
|
|
|
|
Apr 22 2010, 14:04
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(evc @ Apr 22 2010, 12:54)  Да, но я все таки L1 убрал бы. Может многие не согласятся, но мне магнитные антенны в цепи питания процессора не нужны. Тем более после линейного стабилизатора... Я бы не убирал дроссель, а переставил его на вход линейного стабилизатора, который от НЧ помех избавит, а вот от ВЧ уже не сможет. А проблема, мне кажется, чисто в программе. Не стабильно работает, потому что так написана. Я не нашел, Вы сравнивали содержимое PIC после сбоев со своим кодом?
|
|
|
|
|
Apr 22 2010, 14:52
|

Местный
  
Группа: Свой
Сообщений: 206
Регистрация: 17-03-07
Из: Москва
Пользователь №: 26 266

|
Цитата(ViKo @ Apr 22 2010, 18:19)  Я бы не убирал дроссель, а переставил его на вход линейного стабилизатора... Там хороший фильтр уже есть.
--------------------
УЭР
|
|
|
|
|
Apr 22 2010, 15:06
|
self made
   
Группа: Свой
Сообщений: 855
Регистрация: 7-03-09
Из: Toronto, Canada
Пользователь №: 45 795

|
Цитата(evc @ Apr 22 2010, 04:54)  Да, но я все таки L1 убрал бы. Может многие не согласятся, но мне магнитные антенны в цепи питания процессора не нужны. Тем более после линейного стабилизатора... Я бы тоже убрал. Оно абсолютно лишнее и вредное. Не забывайте L стабилизирует ток, что при это проихсодит с напряжением его не волнует, а вас наоборот. А отладочные средства есть какие-то в системе? Я делал несколько систем с сенсорами, и простейший сом-порт в который я выдаю всю необходимую инфу помагает при отладке чрезвычайно. Не говоря уже о тех случаях, когда плата не пашет нормально по вине клиента (дефекты сборки) -- подключаю комп к плате, и все им наглядно показыаю. А без этого была бы попа.... Предыдущий разработчик не предусмотрел такой функции, на чем и погорел, когда начались глюки (при чем не по его вине! -- был глючный сенсор). Если есть возможность сделать двунаправленный ком-порт, тогда вообще красота. я вставлял в свои системы возможность читать и писать произвольные адреса памяти через него. Вот сейчас бы вам это пригодилось. ФЛЕШ из поломанной системы назад читать не пробовали?
|
|
|
|
|
Apr 22 2010, 18:45
|
Участник

Группа: Участник
Сообщений: 34
Регистрация: 9-04-08
Пользователь №: 36 629

|
Цитата(ar__systems @ Apr 22 2010, 17:21)  ФЛЕШ из поломанной системы назад читать не пробовали? FLASH не читал еще, та плата у клиента за 600 км, да и залочена от чтения мной же. Возможно причина в том, что BODEN у меня был установлен на 2,7 В, а проц работает по даташиту от 4,2, от этого при броске FLASH может измениться? Исходя из всех подсказок форумчан, сегодня поднял BODEN до 4,2В, посадил программно все не неиспользуемые ноги проца программно на землю и после программирования повесил MCLR джампером на +5В. Как думаете, этого достаточно в данной схеме?
|
|
|
|
|
Apr 23 2010, 00:56
|
self made
   
Группа: Свой
Сообщений: 855
Регистрация: 7-03-09
Из: Toronto, Canada
Пользователь №: 45 795

|
Цитата(avartemiy @ Apr 22 2010, 14:00)  FLASH не читал еще, та плата у клиента за 600 км, да и залочена от чтения мной же.
Возможно причина в том, что BODEN у меня был установлен на 2,7 В, а проц работает по даташиту от 4,2, от этого при броске FLASH может измениться?
Исходя из всех подсказок форумчан, сегодня поднял BODEN до 4,2В, посадил программно все не неиспользуемые ноги проца программно на землю и после программирования повесил MCLR джампером на +5В. Как думаете, этого достаточно в данной схеме? Как мертвому припарки. Operating Voltage Range (V) 2 to 5.5 Flash наврядли может слететь.
|
|
|
|
|
Apr 23 2010, 05:50
|
Участник

Группа: Участник
Сообщений: 34
Регистрация: 9-04-08
Пользователь №: 36 629

|
Цитата(ar__systems @ Apr 23 2010, 03:11)  Operating Voltage Range (V) 2 to 5.5 - Это для LF серии. Гляньте раздел ELECTRICAL CHARACTERISTICS, FIGURE 26-1
|
|
|
|
|
Apr 24 2010, 15:02
|
Местный
  
Группа: Свой
Сообщений: 460
Регистрация: 5-10-06
Из: Херсон
Пользователь №: 21 006

|
Цитата(avartemiy @ Apr 21 2010, 11:13)  Есть контроллер инкубатора, недавно работающий нормально и в какой-то момент (возможно при смене положения лотков) стал работать не стабильно, В разводке значительные ошибки, общие рекомендации "помехоустойчивые устройства"Уже несколько раз лечил проекты начинающих подобные вещи переразводкой. -очень желателен полигон под процессором. -совершенно неправильно разведен разведен кварцевый генератор. -под контроллером практически все пусто сделай земляной полигон в топе под контроллером и пятивольтовый в боттоме. Вообще полигон далеко не лишняя вещь.
|
|
|
|
|
Apr 24 2010, 16:12
|
Участник

Группа: Участник
Сообщений: 34
Регистрация: 9-04-08
Пользователь №: 36 629

|
Кто-то защищал от записи FLASH в PIC18 путем установки битов конфигурации Table Write Protect ? Я смогу потом переписать потом его программатором, или уже нет? В даташите ничего по этому поводу не нашел...
Сообщение отредактировал avartemiy - Apr 24 2010, 16:13
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|