Jump to content

    

rat

Свой
  • Content Count

    552
  • Joined

  • Last visited

Community Reputation

0 Обычный

About rat

  • Rank
    Знающий

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

4734 profile views
  1. Кубом пользуюсь, тока если работодатель настаивает, вообще предпочитаю регистры.
  2. Основной стм32 и ИАР, тут просто угораздило вляпаться в атмэл.
  3. Причина найдена, всем большое спасибо за участие. Дело в моей невнимательности, забыл wait states изменить с 0 на 1.
  4. Выше я привел принтскрин из отладчика и в нем отображены всего 2 ID, сейчас как раз пытаюсь расшифровать этот скрин.
  5. Разумеется, когда я пытался подключать на пин генератор 0, # define CONF_CLOCK_GCLK_0_OUTPUT_ENABLE я ставил в true Я впервые работаю с микрочипстудией и этим процессором, я пока не понял соответствие отображаемых студией ID и реальных настроек.
  6. Согласно коду, он настроен. Или возможны косяки ASF? Я сам больше люблю работать с регистрами, но на этом месте работы принято работать на ASF, плюс сроки дичайше ограничены, а для ASF мне предоставили много примеров. Если в ближайшее время не разберусь, возможно, буду писать на регистрах, но, имхо, для этого потребуется больше времени и риск не уложиться в сроки возрастет.
  7. Не понял, что Вы хотели сказать. GCLK1 выводится без проблем на PB15. GCLK0 не выводится.
  8. 64. SAMD21J18A. Пробовал на PA27 и PA28. Не заработало. Я впервые работаю с микрочиповскими армами, думал мож, что общеизвестное для тех, кто в теме, сразу и подскажут.
  9. На назначенном пине нет клока, почему, пока не удалось выяснить, причем я перепробовал несколько пинов, GCLK generator 1 выводится, а GCLK generator 0 нет. config_pinmux.mux_position = PINMUX_PB15H_GCLK_IO1; config_pinmux.direction = SYSTEM_PINMUX_PIN_DIR_OUTPUT; config_pinmux.input_pull = SYSTEM_PINMUX_PIN_PULL_NONE; system_pinmux_pin_set_config(PIN_PB15H_GCLK_IO1, &config_pinmux); /*config_pinmux.mux_position = PINMUX_PB22H_GCLK_IO0; config_pinmux.direction = SYSTEM_PINMUX_PIN_DIR_OUTPUT; config_pinmux.input_pull = SYSTEM_PINMUX_PIN_PULL_NONE; system_pinmux_pin_set_config(PIN_PB22H_GCLK_IO0, &config_pinmux);*/ Фрагменты кода для 0 и 1 генераторов, для 1 работает, для 0 (закомментаренный фрагмент) не работает.
  10. Его вывести мне не удалось, хотя делал все так же, как и для GCLK generator 1, поэтому я не уверен, что главный клок у меня 48МГц
  11. Да, в регистрах систика все норм.
  12. День добрый. С STM32 на новой работе пришлось пересаживаться на SAMD21, использую ASF. Запустил проц на 48МГц (как я думаю). Цепочка такая - 12МГц XOSC подается на DPLL, с него на GCLK generator 1, затем на GCLK generator 0. GCLK generator 1 вывожу на внешний пин и на нем вижу осциллографом 48МГц. /* SYSTEM_CLOCK_SOURCE_DPLL configuration - Digital Phase-Locked Loop */ # define CONF_CLOCK_DPLL_ENABLE true # define CONF_CLOCK_DPLL_ON_DEMAND true # define CONF_CLOCK_DPLL_RUN_IN_STANDBY false # define CONF_CLOCK_DPLL_LOCK_BYPASS false # define CONF_CLOCK_DPLL_WAKE_UP_FAST true//false # define CONF_CLOCK_DPLL_LOW_POWER_ENABLE false # define CONF_CLOCK_DPLL_LOCK_TIME SYSTEM_CLOCK_SOURCE_DPLL_LOCK_TIME_8MS # define CONF_CLOCK_DPLL_REFERENCE_CLOCK SYSTEM_CLOCK_SOURCE_DPLL_REFERENCE_CLOCK_XOSC # define CONF_CLOCK_DPLL_FILTER SYSTEM_CLOCK_SOURCE_DPLL_FILTER_DEFAULT # define CONF_CLOCK_DPLL_REFERENCE_FREQUENCY 12000000 # define CONF_CLOCK_DPLL_REFERENCE_DIVIDER 6 # define CONF_CLOCK_DPLL_OUTPUT_FREQUENCY 48000000 /* DPLL GCLK reference configuration */ # define CONF_CLOCK_DPLL_REFERENCE_GCLK_GENERATOR GCLK_GENERATOR_1//CONF_CLOCK_DPLL_REFERENCE_CLOCK//GCLK_GENERATOR_1 /* DPLL GCLK lock timer configuration */ # define CONF_CLOCK_DPLL_LOCK_GCLK_GENERATOR GCLK_GENERATOR_1 /* Set this to true to configure the GCLK when running clocks_init. If set to * false, none of the GCLK generators will be configured in clocks_init(). */ # define CONF_CLOCK_CONFIGURE_GCLK true /* Configure GCLK generator 0 (Main Clock) */ # define CONF_CLOCK_GCLK_0_ENABLE true # define CONF_CLOCK_GCLK_0_RUN_IN_STANDBY false # define CONF_CLOCK_GCLK_0_CLOCK_SOURCE GCLK_GENERATOR_1//SYSTEM_CLOCK_SOURCE_DPLL # define CONF_CLOCK_GCLK_0_PRESCALER 1 # define CONF_CLOCK_GCLK_0_OUTPUT_ENABLE false /* Configure GCLK generator 1 */ # define CONF_CLOCK_GCLK_1_ENABLE true # define CONF_CLOCK_GCLK_1_RUN_IN_STANDBY false # define CONF_CLOCK_GCLK_1_CLOCK_SOURCE SYSTEM_CLOCK_SOURCE_DPLL//SYSTEM_CLOCK_SOURCE_XOSC # define CONF_CLOCK_GCLK_1_PRESCALER 1 # define CONF_CLOCK_GCLK_1_OUTPUT_ENABLE true Затем в main инициализирую Systick timer int main (void) { system_init(); SysTick_Config(480000); system_interrupt_enable(SYSTEM_INTERRUPT_SYSTICK); NVIC_EnableIRQ(SysTick_IRQn); /* Insert application code here, after the board has been initialized. */ for(;;) { } } В обработчике инвертирую пин void SysTick_Handler(void) { port_pin_toggle_output_level(PIN_PA01); } Ожидаю на осцоллографе увидеть 10Гц, но реально вижу 8,3Гц Вопрос: 1) Задавая в SysTick_Config(480000); я вообще должен видеть 100Гц, потому как промахнулся на один 0, но реально вижу 8,3Гц 2) Если я задаю в SysTick_Config(400000); то вижу 10 Гц, такое впечатление, что между главным клоком и клоком Systick timer стоит делитель на 12, но его там быть не должно.
  13. А STM умеет обновлять прошивку МК через bluetooth?