[an error occurred while processing this directive]
|
Возможно это глюки не MCU или программы, а софта, который используется для моделирования. Но тем более хотелось бы разобраться...
В Proteus VSM v.6.95 моделирую работу дивайса на AT90S8535. Телефон подключен через переходник на COM1. Дивайс (модель) периодически шлет в COM1 команду (ATE0) и ловит "0x0D0x0A" в ответе. Если в течение некоторого времени такого ответа нет = таймаут. Несколько таймаутов => считаем, что телефон самоотключился. Тогда делается включение телефона (телефон = Сименс С45, с патчем, заставляющим его включаться при подключении зарядного устройства). Подаем зарядное напряжение, ждем некоторый таймаут (так положено по регламенту телефона) и снова начинаем слать ему "ATE0".
Ну так вот. Все это работает как настоящее. Мобильник отвечает, все чудесно. Но если я ставлю модель на паузу, выключаю мобильник (как-бы он самоотключился), снимаю с паузы программу, подаю напряжение заряда (пока сам, от блока питания), телефон исправно включается - а программа не видит ответа от телефона. Буфер приема из UART пустой... Перезапускаю модель - все шуршит прекрасно, все видится, все ловится.
Если я пытаюсь достучаться до телефона ComPortToolkit'ом - все замечательно. После включения от зарядника ответы даются.
Ну вот и вопрос к гуру: может ли такое быть на живом камне? Или это глюк модели?