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

PIC18 сбои при работе I2C

повторный повтор повтора

Если Ваш slave после START не откликается на свой адрес, это означает, что он или "в завесе" (достаточно маловероятно), или что-то накосячено с аппаратной частью, схема включения FM31256. Кварц 32768 работает устойчиво ? Там есть контрольно-калибровочный выход. Адреса A1 A2 на GND ? итд Ваша принципиальная схема  включения мс. Батарея подключена ?

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


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

Припоминаю, что как-то была похожая проблема с микросхемой RTC (правда, насколько помню, она тупо не отзывалась на команду).

Просто заменил на другой чип (в смысле не экземпляр, а партнамбер), и выпускали в серию лет шесть.

Сэмпл покупали в Мегеэлектронике, так что возможно дело было в китайской подделки (поскольку использовалась 100 скорость, грешить на тормознутость не приходится).

 

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


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

On 7/22/2022 at 3:25 AM, k155la3 said:

повторный повтор повтора

Если Ваш slave после START не откликается на свой адрес, это означает, что он или "в завесе" (достаточно маловероятно), или что-то накосячено с аппаратной частью, схема включения FM31256. Кварц 32768 работает устойчиво ? Там есть контрольно-калибровочный выход. Адреса A1 A2 на GND ? итд Ваша принципиальная схема  включения мс. Батарея подключена ?

Вот схема включения

RTC.thumb.png.d7c85bf3cf987dd8ed4e41940a3cada6.png

Батарея подключена. Кварц стабилен.

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


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

58 минут назад, sidy сказал:

. . . Батарея подключена. Кварц стабилен.

Если вход PFI не используется, он дб подключен на gnd.

Цитата

Note PFI input voltage must not exceed 4.5 V.

Какие номиналы R6, R7.

Питание PIC18 очевидно тоже 5 В.

Проверьте, снимается ли затык ответа слейва по его аппаратному сбросу через вход ~RST.

Длина линий 44, 45 небольшая ?

ps есть еще узел WDT назначение которого я не стал исследовать. Но по функциональной схеме он может влиять на блок интерфейса I2C и "тупить" его ответ. Можно посмотреть осциллографом, что творится на "выходе" ~RST

Спойлер

image.thumb.png.05605930dbbe83bd5a2e0503d6bf4ff2.png

 

Изменено пользователем k155la3
дополнение ps

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


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

Второй блокировочный конденсатор отсутствует — каким образом мыслится работа КМОП схемы при таком питании?

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


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

On 7/22/2022 at 9:47 AM, k155la3 said:

Если вход PFI не используется, он дб подключен на gnd.

Какие номиналы R6, R7.

Питание PIC18 очевидно тоже 5 В.

Проверьте, снимается ли затык ответа слейва по его аппаратному сбросу через вход ~RST.

Длина линий 44, 45 небольшая ?

ps есть еще узел WDT назначение которого я не стал исследовать. Но по функциональной схеме он может влиять на блок интерфейса I2C и "тупить" его ответ. Можно посмотреть осциллографом, что творится на "выходе" ~RST

  Reveal hidden contents

image.thumb.png.05605930dbbe83bd5a2e0503d6bf4ff2.png

 

 

Да, действительно - PFI переподключил на землю. (Не помогло)

R6, R7 1 кОм

Питание PIC18 тоже +5 В.

Он не виснет намертво - следующий запрос может пройти нормально. Раз 10 за минуту происходит такой затык.

Длина линий небольшая.

Вот что на выходе RST (написано, что если не используется оставьте не подключенным)

RST.png.4ee24867482a35a5c62e5f6f8c49bac7.png

On 7/22/2022 at 9:52 AM, Plain said:

Второй блокировочный конденсатор отсутствует — каким образом мыслится работа КМОП схемы при таком питании?

Какой второй блокировочный конденсатор? По питанию батареи?

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


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

В 22.07.2022 в 10:16, sidy сказал:

Вот что на выходе RST

Так получается, что девайс регулярно ресетится.

P.S.: А вот если бы был логический анализатор, то было бы сразу видно, в какие моменты это происходит. :yes3:

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


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

32 минуты назад, sidy сказал:

. . .

R6, R7 1 кОм

. . . 

Он не виснет намертво - следующий запрос может пройти нормально. Раз 10 за минуту происходит такой затык.

Вот что на выходе RST . . . 

Если частота SCL небольшая, до 500 кГц, достаточно R = 4.7 к  (есть ф-ла расчета)

Судя по симптомам, периодически отрабатывает узел WDT/LVD, кто из них непонятно. Если запрос попадает на это время (выдачи ресета), естественно слейв не ответит. Как часто - зависит от соотношения частот обращения и возникновения ресета.

Это или WDT включен по-умолчанию, или LVD отрабатывает. Отключить настройками WDT полностью.

Период 5.2 с выдачи ресета держится стабильно ?  Тогда см. процессы в системе, которые идут с этим периодом.

 

12 минут назад, Smen сказал:

. . . P.S.: А вот если бы был логический анализатор, то было бы сразу видно, в какие моменты это происходит. :yes3:

Достаточно поставить осциллограф в режим отслеживания пиковых сигналов, и промониторить в ждущем от ~RST режиме линию питания. Если сброс "программный" - да, лог. анализатором будет удобнее. Хотя такую ситуацию можно вылавливать на отладчике или аналитически.

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


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

On 7/22/2022 at 10:43 AM, k155la3 said:

Если частота SCL небольшая, до 500 кГц, достаточно R = 4.7 к  (есть ф-ла расчета)

Судя по симптомам, периодически отрабатывает узел WDT/LVD, кто из них непонятно. Если запрос попадает на это время (выдачи ресета), естественно слейв не ответит. Как часто - зависит от соотношения частот обращения и возникновения ресета.

Это или WDT включен по-умолчанию, или LVD отрабатывает. Отключить настройками WDT полностью.

Период 5.2 с выдачи ресета держится стабильно ?  Тогда см. процессы в системе, которые идут с этим периодом.

Проверил линию питания и сигнал ~RST:

1347499505_5.png.feb7453f9967640e2bef60a608cd284e.png

Питание стабильно. (Значит получается, что LVD не причем?)

Да период получается всегда около ~5 сек.

С началом обмена по i2c сброс не связан (верхний луч ~RST нижний SCL):

1.png.3719dcecf7d90559f5c39badbc6f251d.png  2.png.ce0d5f3c11a61e5b8de7f261cf239a5e.png

Остается еще проверить WDT - но по описанию у него максимальный период 3 сек.

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


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

У этой мс есть варианты резервирования питания или на батарею, или на конденсатор/ионистор. 

В док 

Цитата

бит VBC - VBAK Charger Control. Setting VBC to ‘1’ causes a 15 µA trickle charge current to be supplied on VBAK. Clearing VBC to ‘0’ disables the charge current. Nonvolatile, read/write.

Это дает настройку, нужен ли зарядный ток на Vbak

Надо проверить инициализацию, возможно настройки на ионистор, а подключена батарея.

Думаю связано что-то с узлом контроля питания мс. Вот схема из хорошо запрятанных AN 

A Design Guide to I2C F-RAM™ Processor Companions  pdf    В нем есть ссылки на другие AN по этой серии мс.

Попробуйте убрать батарею и вместо нее поставить конденсатор (обязательно снять остаточный заряд)

Спойлер

image.thumb.png.885351d889595613d1be577597e26cd2.png

ps попробуйте поменять уровни, заданные битами VTP. Если период импульсов внутреннего ресета изменится - значит проблема скорее всего в правильности настроек инициализации для данной схемы.

Параллельно батарее поставьте емкость 0.1 как на схеме выше.

Изменено пользователем k155la3
дополнение ps

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


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

On 7/22/2022 at 12:19 PM, k155la3 said:

У этой мс есть варианты резервирования питания или на батарею, или на конденсатор/ионистор. 

В док 

Это дает настройку, нужен ли зарядный ток на Vbak

Надо проверить инициализацию, возможно настройки на ионистор, а подключена батарея.

Думаю связано что-то с узлом контроля питания мс. Вот схема из хорошо запрятанных AN 

A Design Guide to I2C F-RAM™ Processor Companions  pdf    В нем есть ссылки на другие AN по этой серии мс.

Попробуйте убрать батарею и вместо нее поставить конденсатор (обязательно снять остаточный заряд)

  Hide contents

image.thumb.png.885351d889595613d1be577597e26cd2.png

 

Я прочитал регистр 0х0А - Watchdog Control - значение 0х9E или 0b1001 1110 - т.е. получается, что WDT включен

Прочитал еще регистр 0х0B - Companion Control - там все нули.

И еще дополню. Процессы в программе не причем - я проверил это путем удерживание МК в состоянии сброс. А на выходе ~RST микросхемы все равно продолжает с той же периодичностью появляться сигнал.

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


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

18 минут назад, sidy сказал:

Я прочитал регистр 0х0А - Watchdog Control - значение 0х9E или 0b1001 1110 - т.е. получается, что WDT включен . . . 

Выключить WDT,  в регистр 0x0A записать 0x1F

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


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

On 7/22/2022 at 1:10 PM, k155la3 said:

Выключить WDT,  в регистр 0x0A записать 0x1F

Выключил WDT. Сигнал RST исчез. Обмен работает исправно.

k155la3 выражаю Вам благодарность! Спасибо. Очень помогли.

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


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

3 часа назад, Smen сказал:

А вот если бы был логический анализатор, то было бы сразу видно, в какие моменты это происходит. :yes3:

Как видите, ТС обошёлся без логического анализатора :biggrin:

 

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


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

42 минуты назад, sidy сказал:

. . . Обмен работает исправно. . . .

Не понятно только, откуда взялся период 5.2с, если настройки таймера максимум 3.  Удачи !

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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