Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 07.10.2019
Сообщений: 1

2 микроконтроллера, 1 память

07.10.2019, 13:18. Показов 1731. Ответов 13

Студворк — интернет-сервис помощи студентам
День добрый! Есть задача: имеются два устройства - хилинький, но почти не требующий питания микроконтроллер и большой и мощный, но относительно прожорливый одноплатник (пусть raspberry, но не суть). Необходимо, чтобы микроконтроллер долго-долго набирал данные с датчика (не суть какого), сохранял это в какую-то память, и раз в какой-то период времени включал одноплатник, чтобы тот считывал эти данные, быстренько обрабатывал и отключался.
Вопрос: как реализовать решение с общей памятью? Есть брать какую-нибудь spi-flash, то как адекватно реализовать два мастера на одном spi? Или есть более разумные способы?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.10.2019, 13:18
Ответы с готовыми решениями:

Внешняя память PIC: как нарастить внутреннюю память данных?
Я только начал разбираться с ПИКами и пока не все понимаю. Мне нужно организовать систему сбора и обработки информации с газовых датчиков....

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

Корпус микроконтроллера
Для проекта использую микроконтроллер DA14531. При изучении документации столкнулся с таким вопросом: почему в разных корпусах разное...

13
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,928
07.10.2019, 15:00
Если данных много, лучше не flash, а ram, а то еще протрется до дыр не вовремя.
Есть ли запас у "слабого" контроллера по скорости и свободным ногам? Если есть, проще соединить с памятью только его, а данными пусть обменивается, скажем, по UART. То есть разбудил "мощного", дождался запроса данных и передает их. Реализовывать ожидание запроса придется, поскольку заранее не известно время запуска.
Это самый, на мой взгляд, разумный подход.
Но можно и поизвращаться: взять две микросхемы ОЗУ и пусть "слабый" работает с одной, а "мощный" с другой. Когда закончат - поменяются. Реализовать "перекидывание" четырех линий можно на внешней логике.
Извращение 2: пусть "слабый" контроллер подстраивается под "мощного", то есть пока с памятью общается тот - не мешать ему, когда "мощный" закончил, снял CS и перевел выводы в Z-состояние, можно подхватывать управление и писать туда то, что нужно. Конечно, внешнюю схему тут тоже придется налепить чтобы не было конфликтов.
1
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
07.10.2019, 16:41
Цитата Сообщение от volervagashim Посмотреть сообщение
Есть брать какую-нибудь spi-flash, то как адекватно реализовать два мастера на одном spi? Или есть более разумные способы?
штатный SPI не может иметь подключение нескольких мастеров на шине. Можно, конечно, колхозить что угодно - подключаться в момент, когда ни один из мастеров не работает, но это все равно чревато коллизией, хотя, и сильно маловероятно ввиду краткости использования.

поддержу схему COKPOWEHEU, трансфер данных с "мелкого" в "крупный" вполне оправдан. Мелкий может быть свободно любым serial/parrallel' слейвом для "главного", отдавая ему архивные данные.
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
07.10.2019, 19:24
Цитата Сообщение от Voland_ Посмотреть сообщение
штатный SPI не может иметь подключение нескольких мастеров на шине.
вообще то говорят что STM32 может работать в режиме мультимастера, но сам я не пробовал, где то читал в описаниях
0
4047 / 2658 / 583
Регистрация: 11.09.2009
Сообщений: 9,496
07.10.2019, 21:57
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Извращение 2: пусть "слабый" контроллер подстраивается под "мощного"
Почему "извращение" и зачем "подстраиваться", если по условию слабый управляет мощным?
Слабый перед включением мощного переводит линии управления памятью в третье состояние (освобождает шину), включает мощный, ждёт от него сигнала окончания, выключает его и снова забирает шину управления памятью. Никаких извратов...

И, видимо, ещё потребуется канал обмена данными с мощным. Ну там начальный адрес, размер записи передавать, ещё параметры какие-нибудь, получать ответные коды для обработки ошибок, результаты расчёта забирать...
0
Эксперт по электронике
6827 / 3252 / 337
Регистрация: 28.10.2011
Сообщений: 12,709
Записей в блоге: 7
07.10.2019, 23:05
А не проще мощный МК переводить в спящий режим когда не требуется работа? Тогда можно исключить "слабый" МК.
0
4047 / 2658 / 583
Регистрация: 11.09.2009
Сообщений: 9,496
08.10.2019, 01:36
Цитата Сообщение от locm Посмотреть сообщение
А не проще ..в спящий режим ...?
Видимо идея с двумя контроллерами и возникла из-за проблемы реализации "чтобы микроконтроллер долго-долго набирал данные с датчика" в спящем режиме.
0
пофигист широкого профиля
4770 / 3205 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
08.10.2019, 02:08
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Есть ли запас у "слабого" контроллера по скорости
На мой взгляд это важно. Из общих соображений по сформулированной задаче лично я делаю вывод, что "слабый" должен собирать данные постоянно. И это его главная задача, которой не должно мешать ничто. В частности периодическая передача данных в "сильный" контроллер.
0
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
08.10.2019, 08:59
Цитата Сообщение от ValeryS Посмотреть сообщение
вообще то говорят что STM32 может работать в режиме мультимастера, но сам я не пробовал, где то читал в описаниях
"ну, можно, конечно, и зайца научить курить" <c> просто, имхо, такой конфиг сводит все преимущества мощной SPI на "нет".
К тому же нет резона это делать. Потому что в практически любом МК общего назначения есть как минимум парочка быстрых интерфейсов, которыми можно свободно разделить функции. Допустим, посадить FLASH на SPI с мелким МК, и общаться по UART с верхним уровнем.

В данной задаче решений очень много, тут скорее всего можно полагаться из выбранной платформы - что может она, и за сколько ее можно купить ).
0
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,928
08.10.2019, 11:14
Цитата Сообщение от i8085 Посмотреть сообщение
Почему "извращение" и зачем "подстраиваться", если по условию слабый управляет мощным?
Потому что он им не управляет, естественно. Он его только запускает. В "мощном" своя ОС, свои драйвера, которые наверняка не реалтаймовые, то есть синхронизироваться просто не умеют.
Цитата Сообщение от i8085 Посмотреть сообщение
Слабый перед включением мощного переводит линии управления памятью в третье состояние (освобождает шину)
... и теряет все данные, собранные за время активности "мощного", просто потому что некуда их записывать.
Цитата Сообщение от locm Посмотреть сообщение
А не проще мощный МК переводить в спящий режим когда не требуется работа? Тогда можно исключить "слабый" МК.
Тут вопрос к ТСу, умеет ли его "мощный" контроллер достаточно крепко спать и не сильно ли вырастет суммарное потребление.
Цитата Сообщение от northener Посмотреть сообщение
И это его главная задача, которой не должно мешать ничто. В частности периодическая передача данных в "сильный" контроллер.
В общем случае согласен, ТС не сказал насколько "слабый" контроллер загружен. Но, скорее всего, данные приходят относительно редко и их можно повесить на прерывание, а обмен с "мощным" на аппаратный UART. А UART штука асинхронная, так что "мощный" вполне подождет пока "слабый" примет очередную порцию данных, прожует и выплюнет в буфер, после чего как ни в чем не бывало продолжит общение.
0
Эксперт по электронике
6827 / 3252 / 337
Регистрация: 28.10.2011
Сообщений: 12,709
Записей в блоге: 7
08.10.2019, 12:29
Цитата Сообщение от i8085 Посмотреть сообщение
Видимо идея с двумя контроллерами и возникла из-за проблемы реализации "чтобы микроконтроллер долго-долго набирал данные с датчика" в спящем режиме.
Разве микроконтроллер не может просыпаться на короткое время, собрать данные и дальше спать? Вот я и пишу что можно взять мощный МК, который собирает данные расходуя минимум энергии, а потом обрабатывает их.
0
08.10.2019, 12:43

Не по теме:

Есть чипы с мощными процессорами и микроконтроллерами на борту как раз для таких целей.

0
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,928
08.10.2019, 13:30
Цитата Сообщение от locm Посмотреть сообщение
Вот я и пишу что можно взять мощный МК, который собирает данные расходуя минимум энергии, а потом обрабатывает их.
ТС говорил, что "мощный" контроллер это что-то порядка raspberry pi, то есть уже не столько контроллер, сколько микрокомпьютер. Не уверен что они могут достаточно эффективно спать. А вот какая-нибудь ATmega48 - сколько угодно. Раз в минуту проснулась, опросила датчик и снова спать с потреблением меньше 1 мкА.
Конечно, конкретные контроллеры известны только ТСу, так что придется ждать пока он проснется.
0
Эксперт по электронике
6827 / 3252 / 337
Регистрация: 28.10.2011
Сообщений: 12,709
Записей в блоге: 7
08.10.2019, 13:41
Не знаю что требуется ТС. Я предлагал взять МК по мощнее, например STM32F407. В спящем режиме он потребляет несколько микроампер. К нему можно подключить внешнюю оперативную память до 128 МБ (если имеющихся 192 КБ мало) в которой хранить данные. При сборе данных МК просыпается (от внешнего сигнала или встроенного RTC), помещает данные в память и дальше спит. Когда необходимо собранные данные обрабатываются.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.10.2019, 13:41
Помогаю со студенческими работами здесь

Программирование микроконтроллера
Всем здравствуйте!) Очень нужна ваша помощь в лабораторной работе. У меня есть код (приведу ниже), нужно написать небольшую подпрограммку...

Выбор микроконтроллера
Всем доброе время суток. Стоит задача считать из микрофона сигнал (голос человека) - сжать его (любым алгоритмом) - отправить и обратная...

Программирование микроконтроллера
Друзья, доброго всем времени суток. У меня такая задача: необходимо описать в ассемблере измерение остаточного напряжения на аккумуляторе....

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

Клавиатура микроконтроллера
Добрый день, такой вопрос, никто не описывал клавиатуру в симуляторе MSC8052, для микроконтроллера семейства MCS-51??


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru