psyhologic 0 14 февраля, 2019 Опубликовано 14 февраля, 2019 (изменено) · Жалоба Здравствуйте Возникла следующая задача. Есть устройство, которое необходимо переводить в режим ожидания (фактически отключать все основные потребители - 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. Изменено 14 февраля, 2019 пользователем psyhologic Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MegaVolt 28 14 февраля, 2019 Опубликовано 14 февраля, 2019 · Жалоба Только что, psyhologic сказал: Я понимаю, что проблему можно решить выделенным микроконтроллером. Какую проблему? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
psyhologic 0 14 февраля, 2019 Опубликовано 14 февраля, 2019 · Жалоба 4 минуты назад, MegaVolt сказал: Какую проблему? Обе. Использовать как watchdog, им же ловить interrupt от IMU и запускать загрузку SoC. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MegaVolt 28 14 февраля, 2019 Опубликовано 14 февраля, 2019 · Жалоба 44 минуты назад, psyhologic сказал: Обе. Использовать как watchdog, им же ловить interrupt от IMU и запускать загрузку SoC. Это не проблема. Это задача которую можно решать массой возможных способов начиная от микропроцессора до чего нибудь аналогового на россыпи операционников. Проблема появляется там где наложенные ограничения не позволяют решить проблему имеющимися средствами. Вот ограничений я пока не вижу. Не нравиться проц значит делать на жёсткой логике. Нужен меньше объём и не проц то CPLD какое нибудь. Т.е. где та проблема которую нужно решить??? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
psyhologic 0 14 февраля, 2019 Опубликовано 14 февраля, 2019 · Жалоба 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 режим Давайте я переформулирую изложенное в вопросы: Есть ли альтернатива контроллеру для этих 2 задач ? Какой микроконтроллер лучше выбрать? Хочется программировать по UART, чтобы не заморачиваться с прошивкой на фабрике (лишний тех. процесс). Температурный режим -40 / +125 Задачу c watchdog наверняка можно решить готовым чипом, если да то каким ? Задачу c standby наверняка можно решить готовым чипом, если да то каким ? Возможно, кто то сталкивался с подобной задачей, если да - как вы её решали ? Корректна ли вышеизложенная логика работы контроллера на ваш взгляд ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 195 14 февраля, 2019 Опубликовано 14 февраля, 2019 · Жалоба 46 минут назад, MegaVolt сказал: Это не проблема. Это таки проблема, потому что у автора устройство, требующее аж сперва лишь "попробовать сбросить", а ежели не помогло, то и выключения питания, которое ведь тоже имеет право не помочь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MegaVolt 28 14 февраля, 2019 Опубликовано 14 февраля, 2019 · Жалоба Только что, 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 таймера это нужно будет сильно подумать чтобы он не сбросил устройство во время перепрограммирования. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MegaVolt 28 14 февраля, 2019 Опубликовано 14 февраля, 2019 · Жалоба 18 минут назад, psyhologic сказал: Разумеется, неразрешимой проблемы тут нет. Раздел вроде называется «В помощь начинающему», а так как я не являюсь специалистом по микроконтроллерам, я изложил своё видение «проблемы» и возможные варианты решения. Ага. Только забыли задать вопросы :) ПО этому я и уточнял что из всего этого является проблемой. Цитата Есть ли альтернатива контроллеру для этих 2 задач ? Какой микроконтроллер лучше выбрать? Хочется программировать по UART, чтобы не заморачиваться с прошивкой на фабрике (лишний тех. процесс). Температурный режим -40 / +125 Задачу c watchdog наверняка можно решить готовым чипом, если да то каким ? Задачу c standby наверняка можно решить готовым чипом, если да то каким ? Возможно, кто то сталкивался с подобной задачей, если да - как вы её решали ? Корректна ли вышеизложенная логика работы контроллера на ваш взгляд ? 1. Если хитрым перезапуском который вначале мягкий потом питанием то скорее всего нет. Если отказаться от этого то чуть выше я кинул ссылки. Но процик может выйти дешевле. Либо делать на россыпи. 2. Ссылки кинул. Но перепрограммировать watchdog таймер на лету может оказаться не очень простой задачей. 3. Выше ссылки. 4. Тем же. 6. Логика вполне корректна на мой взгляд. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 14 февраля, 2019 Опубликовано 14 февраля, 2019 · Жалоба ИМХО, в реализации Watchdog есть слабое место - "SoC загружается и переводит контроллер в режим watchdog". А если не загрузится? По опыту могу сказать, что всякие готовые внешние WD создают проблемы при производстве, т.к. во время тестирования и загрузки основного ПО таймер мешает. С учетом требований, если и найдется что-то готовое, то будет во-первых экзотично, а во-вторых, заметно дороже мелкого МК. Когда-то собирался применить для похожих целей STM8 (как раз по причине наличия человеческого загрузчика и низкой цены), но в результате ужал "хотелки" и обошелся парой транзисторов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
psyhologic 0 14 февраля, 2019 Опубликовано 14 февраля, 2019 · Жалоба 1 час назад, Plain сказал: которое ведь тоже имеет право не помочь. Мудрая мысль... а если живы контроллер и модем, можно диагностировать проблемы с SoC. Надо думать. Те чипы, что прислал MegaVolt похоже решат на сейчас все мои проблемы с головой. 2 часа назад, Plain сказал: сперва лишь "попробовать сбросить" FS sync / FS unmount / restart попробовать минимально выполнить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
psyhologic 0 14 февраля, 2019 Опубликовано 14 февраля, 2019 · Жалоба 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
psyhologic 0 14 февраля, 2019 Опубликовано 14 февраля, 2019 · Жалоба 1 час назад, aaarrr сказал: ИМХО, в реализации Watchdog есть слабое место - "SoC загружается и переводит контроллер в режим watchdog". А если не загрузится? По опыту могу сказать, что всякие готовые внешние WD создают проблемы при производстве, т.к. во время тестирования и загрузки основного ПО таймер мешает. С учетом требований, если и найдется что-то готовое, то будет во-первых экзотично, а во-вторых, заметно дороже мелкого МК. Когда-то собирался применить для похожих целей STM8 (как раз по причине наличия человеческого загрузчика и низкой цены), но в результате ужал "хотелки" и обошелся парой транзисторов. Про производства / отладки да - проблемы с watchdog актуальны, подумаю как. На дев борде можно вместо мосфета R0 перемычку бросить для отладки я думаю. Боюсь транзисторами не обойдусь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MegaVolt 28 14 февраля, 2019 Опубликовано 14 февраля, 2019 · Жалоба 2 часа назад, psyhologic сказал: Спасибо огромное, думаю эти чипы решат мои проблемы ! А чем эти процики шьються на фабрике и дома поиграться ? они вроде не EEPROM. Вроде бы в опциях я выбирал Flash чтобы были. Они разные по этому шьются по разному и нужно каждое семейство отдельно разбираться. Ну или кто подскажет. А обычно они используют те же пользовательские ножки но для программирования. Это если ножек мало может быть проблемой для перепрошивке в схеме. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
psyhologic 0 14 февраля, 2019 Опубликовано 14 февраля, 2019 · Жалоба А подскажите что-то из недорогих контроллеров automotive класса с выделенным UART для перепрошивки (dev board) до 5$ ? Для production ATtiny - "не в бровь, а в глаз", смотрю пока как их шить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
psyhologic 0 15 февраля, 2019 Опубликовано 15 февраля, 2019 · Жалоба 20 часов назад, MegaVolt сказал: Вроде бы в опциях я выбирал Flash чтобы были. Они разные по этому шьются по разному и нужно каждое семейство отдельно разбираться. Ну или кто подскажет. А обычно они используют те же пользовательские ножки но для программирования. Это если ножек мало может быть проблемой для перепрошивке в схеме. Остановился на STM8, так как их банально намного проще шить. Ещё раз, спасибо вам большое за подсказку с ADM8316 ! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться