Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: SIM900 + 2 микроконтроллера.
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
F E N I X
Необходимо подключить к SIM900 2 микроконтроллера, да так чтобы с обоих можно было управлять им AT командами. Но неодновременно.

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

есть вопрос
1) Как сделать так чтобы имелся доступ к уарту SIM 900 со второго проца? (Производители предлагают писать прошивку для модуля чтобы задействовать I2C)
Палыч
Как вариант:
1. Непосредственный доступ к СИМ900 имеет только второй МК (слэйв)
2. Первый МК (мастер) в рабочем режиме общается (отправляет команды, принимает ответ) с СИМ900 через второй МК. Например, если второй МК нужен исключительно для перепрошивки первого, то первый МК (мастер) может и не "знать", что он с СИМ900 общается через посредника (просто отправляет и принимает символы/байты по UART). Добавлено позже: Второй МК в этом случае должен быть с двумя UART: один используется для связи с СИМ900, второй - с мастером. Ежели второй МК в рабочем режиме тоже чтото делает, то для обмена между МК, не связанной с управлением СИМ900, можно использовать другой интерфейс (SPI, I2C, параллельный...).
3. В случае перепрошивки второй МК и так имеет доступ к СИМ900.
Frolov Kirill
Цитата(F E N I X @ Aug 30 2011, 12:01) *
Логика такая - есть проц - мастер, он постоянно общается с модулем, но, наступает необходимость перепрошить мастера, тогда в дело включается слейв, он закачивает прошивку во влеш память, вводит мастера в бут режим и заливает ее. Во время прошивки мастера слейв должен иметь связь с сотовой сетью.


Достаточно одного процессора. Умеющего себя перепрошивать по-частям. И достаточного объёма внешней Flash памяти для хранения прошивки процессора (её изменяемой части). Алгоритм такой: вначале прошивка принимается через модем и сохраняется в Flash-памяти. Потом копируется из Flash-памяти в память микроконтроллера. Последнее занимает несколько секунд, когда прибор не будет выполнять возложенные на него функции (а если это недопустимо -- тут-то и нужен второй контроллер, для критичных функций, либо один контроллер с возможностью выполнением кода из ОЗУ, либо один контроллер с двумя раздельными банками Flash-памяти программ). Разумеется, программа должна предусматривать пропадаение питания в момент перезаписи памяти и в таком случае начинать перезапись с начала... Можно использовать NOR-flash типа SST25VFxxx, например, подключается просто, стоит дёшево.
F E N I X
Цитата(Палыч @ Aug 30 2011, 12:18) *
Как вариант:
1. Непосредственный доступ к СИМ900 имеет только второй МК (слэйв)
2. Первый МК (мастер) в рабочем режиме общается (отправляет команды, принимает ответ) с СИМ900 через второй МК. Например, если второй МК нужен исключительно для перепрошивки первого, то первый МК (мастер) может и не "знать", что он с СИМ900 общается через посредника (просто отправляет и принимает символы/байты по UART). Добавлено позже: Второй МК в этом случае должен быть с двумя UART: один используется для связи с СИМ900, второй - с мастером. Ежели второй МК в рабочем режиме тоже чтото делает, то для обмена между МК, не связанной с управлением СИМ900, можно использовать другой интерфейс (SPI, I2C, параллельный...).
3. В случае перепрошивки второй МК и так имеет доступ к СИМ900.


Хороший вариант, только вот с надежностью беда - когда связь с внешним миром идет через 2 последовательно соединенных контроллера ...
Это все делается для надежности - параллельно нагруженный резерв (помоему так) и если у нас с боевым процом (мастером) что то случается, мы всегда сможем через слейв восстановить его работу, либо на худой конец сказать что проц помер.

Сейчас у нас AT45DB юзается
stream
Как я понял из задачи, один из контроллеров обязательно молчит, так что одновременная передача в модуль исключена. И что, два диода и правильные подтяжки не помогут?
molecul
Цитата(F E N I X @ Aug 30 2011, 12:01) *
Необходимо подключить к SIM900 2 микроконтроллера, да так чтобы с обоих можно было управлять им AT командами. Но неодновременно.

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

есть вопрос
1) Как сделать так чтобы имелся доступ к уарту SIM 900 со второго проца? (Производители предлагают писать прошивку для модуля чтобы задействовать I2C)

Альтернативы SIM900 не рассматриваются? Есть аналогичные по цене модули с двумя UARTами..
F E N I X
Цитата(stream @ Aug 30 2011, 13:20) *
Как я понял из задачи, один из контроллеров обязательно молчит, так что одновременная передача в модуль исключена. И что, два диода и правильные подтяжки не помогут?


Чего то не соображу как ... Напиши пожалуйста подробнее, что ты имел ввиду.

Тут проблема в разграничении работы МК-ов, один вешаем ресетом - и он все ноги кверху подтягивает, а второй в этот момент должен работать.
Палыч
Цитата(F E N I X @ Aug 30 2011, 14:44) *
Чего то не соображу как ...
Вам предлагается:
1) выходы передатчиков МК объединить через диоды и завести на вход приёмника СИМ;
2) выход передатчика СИМ раздвоить и через резисторы завести на входы приёмников МК.
stream
Цитата(F E N I X @ Aug 30 2011, 14:44) *
Чего то не соображу как ... Напиши пожалуйста подробнее, что ты имел ввиду.

На RS-232 активное состояние - 0. Так что берешь два диода (или один сдвоенный), общим анодом на RXD модуля, катодами - на TXD каждого из процессоров. Для RXD модуля теперь нужна подтяжка, если ее нет внутри модуля, берешь ее со Status SIM900 или чего-то аналогичного, чтобы избежать фантомного питания.

TXD модуля можно тупо соединить со входами RXD процессоров параллельно. Вопрос теоретической возможности фантомной запитки через подтяжки входов для простоты не рассматриваем (а то скатимся с этими фантомами в сплошную эзотерику, да и опять же от модуля зависит).
Цитата
Тут проблема в разграничении работы МК-ов, один вешаем ресетом - и он все ноги кверху подтягивает, а второй в этот момент должен работать.

Если ноги МК в этот момент будут входы с подтяжкой наверх - то все должно работать (можно, конечно, токи подтяжки проверить, чтобы ток нуля на TXD модуля не перетянуло)
Romashki
У СИМ900 для подтяжек есть V_EXT, только нужно расчитать резисторы, чтоб суммарное потребление с этого выаода не превысило 10 мА.
В целов с диодами (LL4148) - как развязочніе по питанию - работает без проблем - проверено.
F E N I X
Цитата(Romashki @ Aug 30 2011, 15:54) *
У СИМ900 для подтяжек есть V_EXT, только нужно расчитать резисторы, чтоб суммарное потребление с этого выаода не превысило 10 мА.
В целов с диодами (LL4148) - как развязочніе по питанию - работает без проблем - проверено.


А ты именно такую схему пробовал? т.е. с 2 МК?
MKdemiurg
F E N I X

Поставте аналог вот такой микрухи (запитаете от V_EXT, жрёт меньше 5мА)

К217ЛД2

Нажмите для просмотра прикрепленного файла

И будет вам счастье.

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

А можно вообще поставить 217ЛБ1А(Б) - получите ещё и развязку от фантомного питания.
Romashki
Цитата(F E N I X @ Aug 30 2011, 16:16) *
А ты именно такую схему пробовал? т.е. с 2 МК?

именно с 2мя мк не пробывал, но пробывал сим300 и параллельно уартом управляли двумя интерфейсами RS232 (через max232) и RS485 (через adm485).
F E N I X
Супер, все заработало!!! Всем спасибо.
=F8=
Если НЕ одновременно то вообще не понимаю в чем проблема? Переводите ножку TX в 3-е состояние и все, никакого проводного ИЛИ как бы и не нужно.
PS А интересно с чем связана идея использовать для прошивки второй контроллер? Почему бы ему самому себя не прошивать?
Палыч
Цитата(=F8= @ Sep 1 2011, 16:04) *
А интересно с чем связана идея использовать для прошивки второй контроллер?
Выше ТС это объяснял: для повышения надежности работы устройства второй МК контролирует первый и, в случае необходимости, восстанавливает его работоспособность, в т.ч. и восстанавливает прошивку, получая её через модуль СИМ900. Однако, имхо, такая структура к повышению надёжности работы устройства не ведёт: в случае выхода из строя второго (контролирующего) МК может быть нарушена работоспособность первого, с которым - "всё в порядке" (например, на ногу RESET первого МК может быть выдан сигнал сброса со второго МК).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.