Радиотракт брелков автомобильных сигнализаций.
В последнее время, меняется парк автомобильных сигнализаций на новые, более совершенные и защищенные от взлома, с диалоговым кодом и расширенным функционалом. Старые, остаются не у дел, но их вполне можно использовать для других нужд. Рассмотрим схемотехнику их радиотракта, которые работают на частоте 433,920 МГц, выделенной для этого в России.

Читать дальше

Читать дальше
Таймер для автомобильного подогревателя
Возникла задача, дистанционно запускать в автомобиле предпусковой обогреватель двигателя, работающего на жидком топливе.
Так как устройство, которое это делало раньше вышло из строя, то решено запуск производить с помощью автомобильной сигнализации,
подавая команду через «дополнительный канал».

Читать дальше
Так как устройство, которое это делало раньше вышло из строя, то решено запуск производить с помощью автомобильной сигнализации,
подавая команду через «дополнительный канал».

Читать дальше
Подключение дисплея UG-2896GDEAF11 к STM32L
Решил проверить качество и удобство использования современного небольшого OLED дисплея.

Читать дальше

Читать дальше
Блок электронного зажигания на STM32VL DISСOVERY
Давно хотел иметь работающий настольный сувенир, такой как двигатель внутреннего сгорания. Есть такие, продаются в магазинах и в интернете. Качество и красота присутствуют, но цена немного не подходящая. (Восстановил одну из первых своих статей за 2011 год.)

Читать дальше

Читать дальше
Проверка возможностей автомобильного генератора в качестве электродвигателя.
Решил провести эксперимент, по возможности использования генератора от легкового автомобиля, как тягового двигателя с прямым приводом на колесо, для велосипеда или что-либо подобного.
У меня как раз есть исправный генератор, но использовать его в автомобиль я не могу, как и некоторые другие вещи, но зато попробую провести этот эксперимент сам. В интернете на специализированных форумах есть размышления, что так не делают, что и в конструкции генератора специально особым образом подобраны формы ротора и статора, для работы его как генератора. Да и наличие отдельной катушки возбуждения усложняет конструкцию. Но из достоинств – генератор не создает практически никаких сопротивлений вращению, если на него не подан ток, и он есть за бесплатно. Заниматься самому математическим анализом реализации такой возможности, нет достаточного опыта и данных, пока (если кто разложит все по полочкам — буду признателен).
Схема подключения генератора:

Читать дальше
У меня как раз есть исправный генератор, но использовать его в автомобиль я не могу, как и некоторые другие вещи, но зато попробую провести этот эксперимент сам. В интернете на специализированных форумах есть размышления, что так не делают, что и в конструкции генератора специально особым образом подобраны формы ротора и статора, для работы его как генератора. Да и наличие отдельной катушки возбуждения усложняет конструкцию. Но из достоинств – генератор не создает практически никаких сопротивлений вращению, если на него не подан ток, и он есть за бесплатно. Заниматься самому математическим анализом реализации такой возможности, нет достаточного опыта и данных, пока (если кто разложит все по полочкам — буду признателен).
Схема подключения генератора:

Читать дальше
Фильтрация звука на STM32 с использованием КИХ фильтра
Давным-давно, в начале перестройки начали появляться у народа забавные тайваньские штучки, к примеру, часы электронные с кучей мелодий, или вот брелок к ключам, который на свист забывшего, где лежат эти ключи человека, откликался своим ответным пронзительным писком. В брелоке находился пьезо-излучатель, он же и микрофон, пара маленьких батареек и платка с залитой клеем микросхемой.

Читать дальше

Читать дальше
Использование модулей CAN на STM32 для разных целей
В последнее время, к сожалению, выросла цена на многие импортные радиодетали, в том числе и на отладочные платы с микроконтроллерами. А потребность в изготовлении разных поделок к счастью не пропала. Волей случая у меня в руках оказалось несколько интересных модулей от компании Starline, которая выпускает автомобильные сигнализации и много других полезных вещей (Можете поспрашивать у установщиков сигнализаций, или на сайте производителя). Целей раскрыть секреты работы этих модулей не стояло. Но ввиду их хорошего изготовления и оснащения оставить пропадать их без дела наше время тоже нехорошо.
Вкратце о модулях:
Модуль CAN — STM32F103RBT8 + SST25V016 + TJA1042, силовые ключи, микросхемы питания.
Модуль 2CAN — STM32F105RBT8 + SST25V032 + TJA1048, микросхемы питания.

Читать дальше
Вкратце о модулях:
Модуль CAN — STM32F103RBT8 + SST25V016 + TJA1042, силовые ключи, микросхемы питания.
Модуль 2CAN — STM32F105RBT8 + SST25V032 + TJA1048, микросхемы питания.

Читать дальше
Keil MDK Version 5 - бесплатно для STM32L0 and STM32F0
Пробовал Keil и случайно наткнулся на страницу на keil.com
Оказывается для STM32L0 и STM32F0 они дают среду бесплатно и без ограничений:
http://www2.keil.com/stmicroelectronics-stm32/mdk
Оказывается для STM32L0 и STM32F0 они дают среду бесплатно и без ограничений:
http://www2.keil.com/stmicroelectronics-stm32/mdk
- +3
- 17 февраля 2016, 02:10
- micbsv
- Оставить комментарий
STM32F030F4 задержки
Функция delay() при помощи таймера TIM16
Сперва инициализация
400 реально мэджик нумбер подобраный осцилографом. )) Как оно рассчитывается в теории понятно, но на практике что-то не очень. Вообщем это дает нам прерывание таймера каждые 100 микросекунд.
И собственно функции задержки:
Код мне кажется не очень оптимальным, — вот как чувствую грабли, — послушал бы ваши замечания.
Использвание (мигание светодиодом):
Сперва инициализация
void TIM16_init(void){
NVIC_InitTypeDef NVIC_InitStructure;
TIM_TimeBaseInitTypeDef TIM_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM16, ENABLE);
NVIC_InitStructure.NVIC_IRQChannel = TIM16_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPriority = 0x01;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
TIM_InitStructure.TIM_Period = 1;
TIM_InitStructure.TIM_Prescaler = 400;
TIM_InitStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_InitStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_InitStructure.TIM_RepetitionCounter = 0;
TIM_TimeBaseInit(TIM16, &TIM_InitStructure);
TIM_ITConfig(TIM16, TIM_IT_Update, ENABLE);
TIM_Cmd(TIM16, ENABLE);
}
400 реально мэджик нумбер подобраный осцилографом. )) Как оно рассчитывается в теории понятно, но на практике что-то не очень. Вообщем это дает нам прерывание таймера каждые 100 микросекунд.
static volatile uint16_t delay_counter = 0;
void TIM16_IRQHandler(void) {
if (TIM_GetITStatus(TIM16, TIM_IT_Update) != RESET) {
delay_counter++;
TIM_ClearITPendingBit(TIM16, TIM_IT_Update);
}
}
И собственно функции задержки:
void delay_100us(void) { // задержка 100 uS
delay_counter = 0;
while (!delay_counter);
}
void delay_ms(int ms) { // задержка N mS
int i;
for(i=0;i<ms*10;i++) {
delay_100us();
}
}
Код мне кажется не очень оптимальным, — вот как чувствую грабли, — послушал бы ваши замечания.
Использвание (мигание светодиодом):
while(1)
{
GPIO_SetBits(GPIOA, GPIO_Pin_4);
delay_ms(500);
GPIO_ResetBits(GPIOA, GPIO_Pin_4);
delay_ms(500);
}