|
SIM900 + 2 микроконтроллера., Подключение 2х МК к модулю одновременно. |
|
|
|
Aug 30 2011, 08:01
|
Участник

Группа: Участник
Сообщений: 24
Регистрация: 21-07-10
Пользователь №: 58 544

|
Необходимо подключить к SIM900 2 микроконтроллера, да так чтобы с обоих можно было управлять им AT командами. Но неодновременно.
Логика такая - есть проц - мастер, он постоянно общается с модулем, но, наступает необходимость перепрошить мастера, тогда в дело включается слейв, он закачивает прошивку во влеш память, вводит мастера в бут режим и заливает ее. Во время прошивки мастера слейв должен иметь связь с сотовой сетью.
есть вопрос 1) Как сделать так чтобы имелся доступ к уарту SIM 900 со второго проца? (Производители предлагают писать прошивку для модуля чтобы задействовать I2C)
|
|
|
|
|
Aug 30 2011, 08:18
|

Гуру
     
Группа: Свой
Сообщений: 2 399
Регистрация: 10-05-06
Из: г. Новочеркасск
Пользователь №: 16 954

|
Как вариант: 1. Непосредственный доступ к СИМ900 имеет только второй МК (слэйв) 2. Первый МК (мастер) в рабочем режиме общается (отправляет команды, принимает ответ) с СИМ900 через второй МК. Например, если второй МК нужен исключительно для перепрошивки первого, то первый МК (мастер) может и не "знать", что он с СИМ900 общается через посредника (просто отправляет и принимает символы/байты по UART). Добавлено позже: Второй МК в этом случае должен быть с двумя UART: один используется для связи с СИМ900, второй - с мастером. Ежели второй МК в рабочем режиме тоже чтото делает, то для обмена между МК, не связанной с управлением СИМ900, можно использовать другой интерфейс (SPI, I2C, параллельный...). 3. В случае перепрошивки второй МК и так имеет доступ к СИМ900.
|
|
|
|
|
Aug 30 2011, 08:26
|
Местный
  
Группа: Участник
Сообщений: 212
Регистрация: 2-02-11
Пользователь №: 62 643

|
Цитата(F E N I X @ Aug 30 2011, 12:01)  Логика такая - есть проц - мастер, он постоянно общается с модулем, но, наступает необходимость перепрошить мастера, тогда в дело включается слейв, он закачивает прошивку во влеш память, вводит мастера в бут режим и заливает ее. Во время прошивки мастера слейв должен иметь связь с сотовой сетью. Достаточно одного процессора. Умеющего себя перепрошивать по-частям. И достаточного объёма внешней Flash памяти для хранения прошивки процессора (её изменяемой части). Алгоритм такой: вначале прошивка принимается через модем и сохраняется в Flash-памяти. Потом копируется из Flash-памяти в память микроконтроллера. Последнее занимает несколько секунд, когда прибор не будет выполнять возложенные на него функции (а если это недопустимо -- тут-то и нужен второй контроллер, для критичных функций, либо один контроллер с возможностью выполнением кода из ОЗУ, либо один контроллер с двумя раздельными банками Flash-памяти программ). Разумеется, программа должна предусматривать пропадаение питания в момент перезаписи памяти и в таком случае начинать перезапись с начала... Можно использовать NOR-flash типа SST25VFxxx, например, подключается просто, стоит дёшево.
Сообщение отредактировал Frolov Kirill - Aug 30 2011, 08:27
|
|
|
|
|
Aug 30 2011, 08:41
|
Участник

Группа: Участник
Сообщений: 24
Регистрация: 21-07-10
Пользователь №: 58 544

|
Цитата(Палыч @ Aug 30 2011, 12:18)  Как вариант: 1. Непосредственный доступ к СИМ900 имеет только второй МК (слэйв) 2. Первый МК (мастер) в рабочем режиме общается (отправляет команды, принимает ответ) с СИМ900 через второй МК. Например, если второй МК нужен исключительно для перепрошивки первого, то первый МК (мастер) может и не "знать", что он с СИМ900 общается через посредника (просто отправляет и принимает символы/байты по UART). Добавлено позже: Второй МК в этом случае должен быть с двумя UART: один используется для связи с СИМ900, второй - с мастером. Ежели второй МК в рабочем режиме тоже чтото делает, то для обмена между МК, не связанной с управлением СИМ900, можно использовать другой интерфейс (SPI, I2C, параллельный...). 3. В случае перепрошивки второй МК и так имеет доступ к СИМ900. Хороший вариант, только вот с надежностью беда - когда связь с внешним миром идет через 2 последовательно соединенных контроллера ... Это все делается для надежности - параллельно нагруженный резерв (помоему так) и если у нас с боевым процом (мастером) что то случается, мы всегда сможем через слейв восстановить его работу, либо на худой конец сказать что проц помер. Сейчас у нас AT45DB юзается
Сообщение отредактировал F E N I X - Aug 30 2011, 08:41
|
|
|
|
|
Aug 30 2011, 10:44
|
Участник

Группа: Участник
Сообщений: 24
Регистрация: 21-07-10
Пользователь №: 58 544

|
Цитата(stream @ Aug 30 2011, 13:20)  Как я понял из задачи, один из контроллеров обязательно молчит, так что одновременная передача в модуль исключена. И что, два диода и правильные подтяжки не помогут? Чего то не соображу как ... Напиши пожалуйста подробнее, что ты имел ввиду. Тут проблема в разграничении работы МК-ов, один вешаем ресетом - и он все ноги кверху подтягивает, а второй в этот момент должен работать.
|
|
|
|
|
Aug 30 2011, 11:35
|
Частый гость
 
Группа: Участник
Сообщений: 142
Регистрация: 20-08-07
Из: Тула
Пользователь №: 29 919

|
Цитата(F E N I X @ Aug 30 2011, 14:44)  Чего то не соображу как ... Напиши пожалуйста подробнее, что ты имел ввиду. На RS-232 активное состояние - 0. Так что берешь два диода (или один сдвоенный), общим анодом на RXD модуля, катодами - на TXD каждого из процессоров. Для RXD модуля теперь нужна подтяжка, если ее нет внутри модуля, берешь ее со Status SIM900 или чего-то аналогичного, чтобы избежать фантомного питания. TXD модуля можно тупо соединить со входами RXD процессоров параллельно. Вопрос теоретической возможности фантомной запитки через подтяжки входов для простоты не рассматриваем (а то скатимся с этими фантомами в сплошную эзотерику, да и опять же от модуля зависит). Цитата Тут проблема в разграничении работы МК-ов, один вешаем ресетом - и он все ноги кверху подтягивает, а второй в этот момент должен работать. Если ноги МК в этот момент будут входы с подтяжкой наверх - то все должно работать (можно, конечно, токи подтяжки проверить, чтобы ток нуля на TXD модуля не перетянуло)
|
|
|
|
|
Aug 30 2011, 14:16
|
Участник

Группа: Участник
Сообщений: 24
Регистрация: 21-07-10
Пользователь №: 58 544

|
Цитата(Romashki @ Aug 30 2011, 15:54)  У СИМ900 для подтяжек есть V_EXT, только нужно расчитать резисторы, чтоб суммарное потребление с этого выаода не превысило 10 мА. В целов с диодами (LL4148) - как развязочніе по питанию - работает без проблем - проверено. А ты именно такую схему пробовал? т.е. с 2 МК?
|
|
|
|
|
Aug 31 2011, 05:41
|
Знающий
   
Группа: Свой
Сообщений: 624
Регистрация: 15-06-10
Из: Россия
Пользователь №: 57 939

|
F E N I XПоставте аналог вот такой микрухи (запитаете от V_EXT, жрёт меньше 5мА) К217ЛД2
123.bmp ( 323.05 килобайт )
Кол-во скачиваний: 47И будет вам счастье. Сам использовал именно эту для того чтобы работать с модулем с компа и 2х МК одновременно (всмысле плдключённых одновременно, а так команды по времени надо разграничивать) . А можно конечно просто диодов насовать как выше советовали. А можно вообще поставить 217ЛБ1А(Б) - получите ещё и развязку от фантомного питания.
Сообщение отредактировал MKdemiurg - Aug 31 2011, 05:48
|
|
|
|
|
Aug 31 2011, 06:57
|
Местный
  
Группа: Участник
Сообщений: 209
Регистрация: 5-12-10
Пользователь №: 61 419

|
Цитата(F E N I X @ Aug 30 2011, 16:16)  А ты именно такую схему пробовал? т.е. с 2 МК? именно с 2мя мк не пробывал, но пробывал сим300 и параллельно уартом управляли двумя интерфейсами RS232 (через max232) и RS485 (через adm485).
|
|
|
|
|
Aug 31 2011, 13:37
|
Участник

Группа: Участник
Сообщений: 24
Регистрация: 21-07-10
Пользователь №: 58 544

|
Супер, все заработало!!! Всем спасибо.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|