Всем привет!
Вопрос скорее не по технике связи, а по схемотехнике, но думаю разделом не ошибся.
В общем возникла мысль сделать для своей Webasto Thermo Top E GSM управление, ну раз возникла, значит надо делать. Сказано сделано - все собрано и прекрасно работает, на столе

GSM модуль собран на STM32F100C4T6+SIM900D. Пришла пора ставить в авто, и тут небольшой облом

У меня в модуле предусмотрен запуск Webasto двумя способами: 1) подачей +12 В непосредственно на 1 пин Webasto; 2) кратковременной подачей логического нуля в контрольную точку штатного таймера, эта процедура эквивалентна нажатию кнопки принудительного включения отопителя на таймере.
Так вот со вторым вариантом и вышел облом. Для подачи логического нуля использую схему с открытым стоком на внешнем полевом транзисторе VT5, кусочек схемы прилагаю.
При подключении стока в контрольную точку таймера, таймер сбрасывается, как будто ему обрубили питание, соответственно все настройки сбрасываются, далее все работает как и задумывалась, но в момент подключения происходит вот такая фигня

Не знаю как реализована схема второго канала в сигнализации, по идее там тот же открытый коллектор, но при подсоединении его в эту же контрольную точку, сброса таймера не наблюдается. Подскажите пожалуйста, что я сделал не так?
Вывод PA6 контроллера инициализирован следующим образом:
|
Код:
|
/*Enable or disable APB2 peripheral clock */
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_AP B2Periph_GPIOB, ENABLE);
/*Configure GPIO pin : PA */
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_WriteBit(GPIOA, GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6, Bit_RESET);
GPIO_Init(GPIOA, &GPIO_InitStruct); |
Может его как OD надо инициализировать? Теряюсь в догадках если честно.