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

Здравствуйте

Возникла следующая задача.

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

 

1.) Когда устройство переходит в режим ожидания (by software).

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

То есть физический толчок -> прерывание -> GPIO High -> контроллер или супервайзер -> загрузка SoC.

 

2.) В активном режиме работы, SoC должен по I2C / UART перепрограммировать таймер сброса(watchdog), каждые N секунд.

Если этого не происходит - считаем устройство зависшим и делаем аппаратный рестарт.

Было бы неплохо, сначала попробовать мягкий software рестарт (GPIO / I2C / whatever), подождать N секунд и рубануть уже EN или питание.

 

Я понимаю, что проблему можно решить выделенным микроконтроллером. Так же хотелось бы его шить по UART прямо с SoC.

Взываю к коллективному разуму, в поисках оптимального решения / микросхемы / возможных подводных камней.

 

P.S. Микроэлектроника, SMD, температура -40 ~ +125.

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

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


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

Только что, psyhologic сказал:

Я понимаю, что проблему можно решить выделенным микроконтроллером.

Какую проблему?

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


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

4 минуты назад, MegaVolt сказал:

Какую проблему?

Обе. Использовать как watchdog, им же ловить interrupt от IMU и запускать загрузку SoC.

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


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

44 минуты назад, psyhologic сказал:

Обе. Использовать как watchdog, им же ловить interrupt от IMU и запускать загрузку SoC.

Это не проблема. Это задача которую можно решать массой возможных способов начиная от микропроцессора до чего нибудь аналогового на россыпи операционников.
Проблема появляется там где наложенные ограничения не позволяют решить проблему имеющимися средствами.

Вот ограничений я пока не вижу. Не нравиться проц значит делать на жёсткой логике. Нужен меньше объём и не проц то CPLD какое нибудь. 

Т.е. где та проблема которую нужно решить???

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


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

30 минут назад, MegaVolt сказал:

Это не проблема. Это задача которую можно решать массой возможных способов начиная от микропроцессора до чего нибудь аналогового на россыпи операционников.
Проблема появляется там где наложенные ограничения не позволяют решить проблему имеющимися средствами.

Вот ограничений я пока не вижу. Не нравиться проц значит делать на жёсткой логике. Нужен меньше объём и не проц то CPLD какое нибудь. 

Т.е. где та проблема которую нужно решить???

Разумеется, неразрешимой проблемы тут нет.

Раздел вроде называется «В помощь начинающему», а так как я не являюсь специалистом по микроконтроллерам, я изложил своё видение «проблемы» и возможные варианты решения.

То, что вам кажется очевидным, не всегда очевидно новичку.

 

1.)    Реализация пробуждения устройства из standby режима по сигналу IMU.

  • a.)   Программируем IMU на отклик по акселерометру
  • b.)  Сообщаем контроллеру, что устройство переходит в standby.
  • c.)   Контроллер следит за INT2_XM и когда видит там HIGH – открывает mosfet питания.
  • d.)  Контроллер переходит в standby режим
  • e.)  SoC загружается 

2.)    Реализация watchdog.

  • a.)  SoC загружается и переводит контроллер в режим watchdog
  • b.)  Каждые N секунд, SoC должен послать контроллеру keepalive (I2C/UART)
  • c.)  Если контроллер видит X пропусков keepalive сигналов – подаёт LOW на EN вход SoC
  • d.)  Контроллер переходит в standby режим

Давайте я переформулирую изложенное в вопросы:

  1.     Есть ли альтернатива контроллеру для этих 2 задач ?
  2.     Какой микроконтроллер лучше выбрать? Хочется программировать по UART, чтобы не заморачиваться с прошивкой на фабрике (лишний тех. процесс). Температурный режим -40 / +125
  3.     Задачу c watchdog наверняка можно решить готовым чипом, если да то каким ?
  4.     Задачу c standby наверняка можно решить готовым чипом, если да то каким ?
  5.     Возможно, кто то сталкивался с подобной задачей, если да - как вы её решали ?
  6.     Корректна ли вышеизложенная логика работы контроллера на ваш взгляд ?

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


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

46 минут назад, MegaVolt сказал:

Это не проблема.

Это таки проблема, потому что у автора устройство, требующее аж сперва лишь "попробовать сбросить", а ежели не помогло, то и выключения питания, которое ведь тоже имеет право не помочь.

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


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

Только что, Plain сказал:

Это таки проблема, потому что у автора устройство, требующее аж сперва лишь "попробовать сбросить", а ежели не помогло, то и выключения питания, которое ведь тоже имеет право не помочь.

Устройство которое это делает не является проблемой. Можно даже поднимать трупик не один раз :))) Но тогда придётся ставить свой процессор со своей логикой обработки.

Вот например https://www.analog.com/media/en/technical-documentation/data-sheets/ADM8316_8318_8319_8320_8321_8322.pdf
Решает все вопросы кроме двойного способа оживления.

Ещё тут https://www.digikey.com/products/en/integrated-circuits-ics/pmic-supervisors/691?FV=2dc09fb%2C3f0001b%2C3f002ce%2C3f002df%2Cffe002b3&quantity=1&ColumnSort=1000011&page=2&stock=1&k=watchdog&pageSize=25&pkeyword=watchdog

Если же есть задача всё же изощрённого оживления то любой проц с подходящим энергопотреблением и мелким корпусом.
Конкретика проца больше зависит от местности и удобство доставаемости, а так же знаний программера.

Процики тут: https://www.digikey.com/products/en/integrated-circuits-ics/embedded-microcontrollers/685?k=controller&k=&pkeyword=controller&sv=1&sf=0&FV=3f003fa%2C3f00420%2C3f00425%2C3f00446%2C3f0001b%2C3f002ce%2C3f002d5%2C3f002df%2C3f002e0%2C3f002e6%2C3f002e9%2C3f00376%2C3f00393%2C4880065%2C4880013%2C4880003%2C4880041%2C488005e%2Cii4|2208%2Cii5|2208%2Cii6|2208%2Cffe002ad&quantity=1&ColumnSort=1000011&page=1&stock=1&pageSize=25

 

Но вот на счёт программирования на лету watchdog таймера это нужно будет сильно подумать чтобы он не сбросил устройство во время перепрограммирования.

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


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

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

Разумеется, неразрешимой проблемы тут нет.

Раздел вроде называется «В помощь начинающему», а так как я не являюсь специалистом по микроконтроллерам, я изложил своё видение «проблемы» и возможные варианты решения.

Ага. Только забыли задать вопросы :) ПО этому я и уточнял что из всего этого является проблемой.

Цитата
  1.     Есть ли альтернатива контроллеру для этих 2 задач ?
  2.     Какой микроконтроллер лучше выбрать? Хочется программировать по UART, чтобы не заморачиваться с прошивкой на фабрике (лишний тех. процесс). Температурный режим -40 / +125
  3.     Задачу c watchdog наверняка можно решить готовым чипом, если да то каким ?
  4.     Задачу c standby наверняка можно решить готовым чипом, если да то каким ?
  5.     Возможно, кто то сталкивался с подобной задачей, если да - как вы её решали ?
  6.     Корректна ли вышеизложенная логика работы контроллера на ваш взгляд ?

1. Если хитрым перезапуском который вначале мягкий потом питанием то скорее всего нет. Если отказаться от этого то чуть выше я кинул ссылки. Но процик может выйти дешевле. Либо делать на россыпи.

2. Ссылки кинул. Но перепрограммировать watchdog таймер на лету может оказаться не очень простой задачей.

3. Выше ссылки.

4. Тем же.

6. Логика вполне корректна на мой взгляд.

 

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


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

ИМХО, в реализации Watchdog есть слабое место - "SoC загружается и переводит контроллер в режим watchdog". А если не загрузится?

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

основного ПО таймер мешает. С учетом требований, если и найдется что-то готовое, то будет во-первых экзотично, а во-вторых,

заметно дороже мелкого МК.

Когда-то собирался применить для похожих целей STM8 (как раз по причине наличия человеческого загрузчика и низкой цены), но

в результате ужал "хотелки" и обошелся парой транзисторов.

 

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


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

1 час назад, Plain сказал:

которое ведь тоже имеет право не помочь.

Мудрая мысль... а если живы контроллер и модем, можно диагностировать проблемы с SoC. Надо думать.

Те чипы, что прислал MegaVolt похоже решат на сейчас все мои проблемы с головой.

 

2 часа назад, Plain сказал:

сперва лишь "попробовать сбросить"

FS sync / FS unmount / restart попробовать минимально выполнить.

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


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

1 час назад, MegaVolt сказал:

Устройство которое это делает не является проблемой. Можно даже поднимать трупик не один раз :))) Но тогда придётся ставить свой процессор со своей логикой обработки.

Вот например https://www.analog.com/media/en/technical-documentation/data-sheets/ADM8316_8318_8319_8320_8321_8322.pdf
Решает все вопросы кроме двойного способа оживления.

Ещё тут https://www.digikey.com/products/en/integrated-circuits-ics/pmic-supervisors/691?FV=2dc09fb%2C3f0001b%2C3f002ce%2C3f002df%2Cffe002b3&quantity=1&ColumnSort=1000011&page=2&stock=1&k=watchdog&pageSize=25&pkeyword=watchdog

Если же есть задача всё же изощрённого оживления то любой проц с подходящим энергопотреблением и мелким корпусом.
Конкретика проца больше зависит от местности и удобство доставаемости, а так же знаний программера.

Процики тут: https://www.digikey.com/products/en/integrated-circuits-ics/embedded-microcontrollers/685?k=controller&k=&pkeyword=controller&sv=1&sf=0&FV=3f003fa%2C3f00420%2C3f00425%2C3f00446%2C3f0001b%2C3f002ce%2C3f002d5%2C3f002df%2C3f002e0%2C3f002e6%2C3f002e9%2C3f00376%2C3f00393%2C4880065%2C4880013%2C4880003%2C4880041%2C488005e%2Cii4|2208%2Cii5|2208%2Cii6|2208%2Cffe002ad&quantity=1&ColumnSort=1000011&page=1&stock=1&pageSize=25

 

Но вот на счёт программирования на лету watchdog таймера это нужно будет сильно подумать чтобы он не сбросил устройство во время перепрограммирования.

Спасибо огромное, думаю эти чипы решат мои проблемы !

А чем эти процики шьються на фабрике и дома поиграться ? они вроде не EEPROM.

 

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


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

1 час назад, aaarrr сказал:

ИМХО, в реализации Watchdog есть слабое место - "SoC загружается и переводит контроллер в режим watchdog". А если не загрузится?

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

основного ПО таймер мешает. С учетом требований, если и найдется что-то готовое, то будет во-первых экзотично, а во-вторых,

заметно дороже мелкого МК.

Когда-то собирался применить для похожих целей STM8 (как раз по причине наличия человеческого загрузчика и низкой цены), но

в результате ужал "хотелки" и обошелся парой транзисторов.

 

Про производства / отладки да - проблемы с watchdog актуальны, подумаю как. На дев борде можно вместо мосфета  R0 перемычку бросить для отладки я думаю.

Боюсь транзисторами не обойдусь.

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


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

2 часа назад, psyhologic сказал:

Спасибо огромное, думаю эти чипы решат мои проблемы !

А чем эти процики шьються на фабрике и дома поиграться ? они вроде не EEPROM.

Вроде бы в опциях я выбирал Flash чтобы были. Они разные по этому шьются по разному и нужно каждое семейство отдельно разбираться. Ну или кто подскажет.
А обычно они используют те же пользовательские ножки но для программирования. Это если ножек мало может быть проблемой для перепрошивке в схеме. 

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


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

А подскажите что-то из недорогих контроллеров automotive класса с выделенным UART для перепрошивки (dev board) до 5$ ?

Для production ATtiny - "не в бровь, а в глаз", смотрю пока как их шить.

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


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

20 часов назад, MegaVolt сказал:

Вроде бы в опциях я выбирал Flash чтобы были. Они разные по этому шьются по разному и нужно каждое семейство отдельно разбираться. Ну или кто подскажет.
А обычно они используют те же пользовательские ножки но для программирования. Это если ножек мало может быть проблемой для перепрошивке в схеме. 

Остановился на STM8, так как их банально намного проще шить. Ещё раз, спасибо вам большое за подсказку с ADM8316 !

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


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

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

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

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

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

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

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

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

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

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