Jump to content

    

Vittok007

Участник
  • Content Count

    11
  • Joined

  • Last visited

Community Reputation

0 Обычный
  1. Здравствуйте! Помогите найти рабочую библиотеку для подключения индикатора 16х2(на HD44780) к микроконтроллеру stm32f407. Пробовал подключать разные библиотеки но они толком не работают, либо иероглифы выводят, либо вообще ничего на экране не отображается. Может у кого-нибудь есть готовая, рабочая библиотека? Если есть скиньте, пожалуйста!
  2. Привет всем. Подскажите как с помощью таймера в stm32 менять состояние вывода микроконтроллера на противоположное с достаточно высокой частотой(порядка 10 МГц)??? Делал вот так: #define TIM8_OUT_FREQ 1000000 //Настраивем таймер void TIM8_Config(void) { uint16_t PrescalerValue; RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM8, ENABLE); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); //Enable the TIM8 gloabal Interrupt NVIC_InitStructure.NVIC_IRQChannel = TIM8_UP_TIM13_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); //Вычисляем значение предделителя PrescalerValue = (uint16_t)((SystemCoreClock / TIM8_OUT_FREQ) - 1); //Настраиваем таймер TIM_TimeBaseStructInit(&TIM_TimeBaseStructure); TIM_TimeBaseStructure.TIM_Period = 1; TIM_TimeBaseStructure.TIM_Prescaler = PrescalerValue; TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM8, &TIM_TimeBaseStructure); //Prescaler configuration // TIM_PrescalerConfig(TIM8, PrescalerValue, TIM_PSCReloadMode_Immediate); //Разрешаем прерывание по обновлению TIM_ITConfig(TIM8, TIM_IT_Update, ENABLE); //Врубаем таймер TIM_Cmd(TIM8, ENABLE); //Разрешаем обработку прерывания по переполнению счетчика TIM8 NVIC_EnableIRQ(TIM8_UP_TIM13_IRQn); } //Обработчик прерывания void TIM8_UP_TIM13_IRQHandler() { if (TIM_GetITStatus(TIM8, TIM_IT_Update) != RESET) { //Очищаем бит обрабатываемого прерывания TIM_ClearITPendingBit(TIM8, TIM_IT_Update); //Инвертируем сомтояние порта GPIO_Write(GPIOC, GPIO_ReadOutputData(GPIOC) ^ (GPIO_Pin_6)); } } Работает, но выходная частота не поднимается выше 428,5кГц(???), даже если задаю 1мегагерц, например. А если задаю более низкую частоту(например, 200кГц), то частота на выходе в 4 раза меньше(50кГц). В чем причина?
  3. Это далеко не так. Про бутстрепное питание читал достаточно
  4. схема собрана уже. Хотелось бы этот драйвер завести.
  5. Здраствуйте. Нужно управлять мощной нагрузкой(электродвигателем) с помощью МК.Идея такая: микроконтроллер формирует ШИМ сигнал(частота 62.5 кГц) далее эти импульсы поступают на оптопару с ее выхода на драйвер(см. схему). На выходе оптопары и входе драйвера присутствуют импульсы заданной частоты и скважности. А вот на выводе HO - все глухо. Напряжение между выводами HO и VS при подключенной нагрузке составляет ~3В, без нагрузки 0. Напряжение между VS и VB - примерно напряжение питания драйвера. При этом транзистор греется как печка если нагрузка подключена, а на выходе порядка 15В(т.е напр. пит. драйвера), причем вне зависимости от того подключен бутстрепный кондер или нет. В качестве бутстрепного конденсатора стоит электролит 1мкФ 400В, диод ultrafast(45нс, 600В). В чем может быть причина, почему на выходе драйвера нет импульсов? Вроде бы все как надо сделал.
  6. Здравствуйте. Есть опорный генератор частотой 20МГц, форма сигнала - синус, амплитуда - 0,3В. Нужно поделить этот сигнал так, чтобы получить сетку стабильных частот: 10МГц, 5МГц, 1МГц и 100кГц. Подскажите пожалуйста микросхемы-делители с коэффициентом деления 2 и 10 на эту частоту.