Jump to content

    

MaksR

Участник
  • Content Count

    6
  • Joined

  • Last visited

Community Reputation

0 Обычный

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Подключил от двух USB кабелей и все равно такая ситуация. На плате есть еще специальный разъем под питание 7-15V. Остается только найти блок питания и попробовать запитать через него)
  2. flash.log выдает Сейчас буду разбираться
  3. Здравствуйте! Есть набор для разработки. Пытаюсь загрузить дистрибутив ubilinux по инструкции. Установка, вроде, проходит корректно, но возникает такая проблема, что ранее установленная система Yocto linux все равно запускается после перезагрузки (через клавишу reset на плате, например). Возможно, нужно как-то предварительно очистить flash устройства или что-то подобное... Подскажите, пожалуйста, что делаю неверно? Новичок в Unix-подобных системах...
  4. Миландр 1986ВЕ1Т

    Darth Vader, огромное спасибо за адекватную помощь и подсказки! Насчет моргания светодиодом это да, при частоте 1 КГц незаметно ничего, но на данном этапе при моей текущей настройке тактовых частот мерцание происходит где-то с частотой 0,5 Гц, что достаточно заметно глазу, что говорит о том, что настройка тактирования совсем неверна. В настройке таймера ошибся, этот момент уже поправил.
  5. Миландр 1986ВЕ1Т

    Всем доброго времени суток! Хотел данную проблему поднять на форуме Миландра, но там активация аккаунта что-то затягивается... жду ответа от админов форума. Есть Отладочный комплект для микроконтроллера 1986ВЕ1Т. Пытаюсь настроить тактирование камня на частоте 80 МГц (внешний кварц 8 МГц). Делаю так: /* Включаем генератор на внешнем кварце (8 МГц) */ RST_CLK_HSEconfig(RST_CLK_HSE_ON); while (RST_CLK_HSEstatus() != SUCCESS); /* Ждем стабилизации частоты */ /* Настраиваем источник и коэффициент умножения PLL * (CPU_C1_SEL = HSE / 1 * 10 = 8 МГц / 1 * 10 = 80 МГц) */ RST_CLK_CPU_PLLconfig(RST_CLK_CPU_PLLsrcHSEdiv1, RST_CLK_CPU_PLLmul10); /* Включаем PLL, но еще не подключаем к кристаллу (Блок умножения частоты) */ RST_CLK_CPU_PLLcmd(ENABLE); while (RST_CLK_CPU_PLLstatus() != SUCCESS); /* Ждем стабилизации */ /* Делитель С3 (CPU_C3_SEL = CPU_C2_SEL) */ RST_CLK_CPUclkPrescaler(RST_CLK_CPUclkDIV1); /* На С2 идет с PLL, а не напрямую с С1 (CPU_C2_SEL = PLL) */ RST_CLK_CPU_PLLuse(ENABLE); /* CPU берет тактирование с выхода С3 * (HCLK_SEL = CPU_C3_SEL = 80 МГц) */ RST_CLK_CPUclkSelection(RST_CLK_CPUclkCPU_C3); Проверить пытаюсь так: void delay_ms(volatile uint64_t milisec) { milisec *= 80000; /* CLK_CPU = 80 MHz -> 80000 - 1ms */ while (milisec) milisec--; } .... int main(void) { freq_init(); /* 80 МГц */ tmr_init(); while(1) { delay_ms(1000); } } Еще настраиваю таймер на прерывание каждую миллисекунду (на вход модуля должно быть 80 МГц после настройки частот): /* Модуль tmr.c */ #define CLOCK_PCLK RST_CLK_PCLK_TIMER1 #define TIMERn MDR_TIMER1 #define TIMER_IRQ TIMER1_IRQn /* 1 ms */ void tmr_init(void) { TIMER_CntInitTypeDef tmr; RST_CLK_PCLKcmd(CLOCK_PCLK, ENABLE); /* Тактирование таймера */ /* 80 MHz на вход. Настройка на 1ms */ tmr.TIMER_ETR_Prescaler = TIMER_ETR_Prescaler_None; /* Не делить входную частоту */ tmr.TIMER_Prescaler = 8000; tmr.TIMER_Period = 10; /* Дойдя до этого значения - перезагружаем таймер */ tmr.TIMER_CounterMode = TIMER_CntMode_ClkFixedDir; /* Фиксированное направление счета */ tmr.TIMER_CounterDirection = TIMER_CntDir_Up; /* счет вверх */ tmr.TIMER_ARR_UpdateMode = TIMER_ARR_Update_On_CNT_Overflow; /* Обновление по переполнению */ tmr.TIMER_IniCounter = 0; TIMER_CntInit(TIMERn, &tmr); TIMER_ITConfig(TIMERn, TIMER_STATUS_CNT_ZERO | TIMER_STATUS_CNT_ARR, ENABLE); NVIC_EnableIRQ(TIMER_IRQ); TIMER_Cmd(TIMERn, ENABLE); } void TIMER1_IRQHandler(void) { TIMER_ClearFlag(TIMERn, TIMER_STATUS_CNT_ZERO | TIMER_STATUS_CNT_ARR); led_set(LED_1, led_get(LED_1) ^ 1); /* Блинк светодиодом */ } Но не получаю частоты 80 МГц даже близко... Подскажите, возможно, я жестко косячу...
  6. CANopenNode

    Здравствуйте. Сейчас занимаюсь освоением CAN стека CANopenNode. Можете подсказать как настроить этот стек, как настроить словарь и как взаимодействовать с ним? Сконфигурировал стек с настройкой CO_NO_SDO_CLIENT = 0 (так понял, что так просто Client без Master). Запустил стек на STM32F407 без каких-либо других изменений. Смотрю данные с шины через Марафоновский USB-CAN и приложением CANWise. Все, что я вижу в CANwise'е это Heartbeat'ы с состоянием 0x5 и PDO запросы (0x1B0+NodeID(0x30), 0x2B0+NodeID(0x30), 0x3B0+NodeID(0x30)).