Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Виснет stm32f103 при включении DAC.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
-Игорь-
Как только начинаю использовать цап, что 1-й, что 2- канал, начинает подвисать контроллер. Подвисает почти сразу, но момент подвисания не точен, может чуть раньше может чуть позже. Явной зависимости нет.
Использую FSMC для жк, все 3 ацп, 1-й канал дма1, 5-й канал дма 2.
Инициализация Цап взята из примеров st.
Код
      /* Once the DAC channel is enabled, the corresponding GPIO pin is automatically
         connected to the DAC converter. In order to avoid parasitic consumption,
         the GPIO pin should be configured in analog */
      GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_5;
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
      GPIO_Init(GPIOA, &GPIO_InitStructure);
      /* DAC channel1 Configuration */
      DAC_InitStructure.DAC_Trigger = DAC_Trigger_Software;
      DAC_InitStructure.DAC_WaveGeneration = DAC_WaveGeneration_None;
      DAC_InitStructure.DAC_OutputBuffer = DAC_OutputBuffer_Enable;
      DAC_Init(DAC_Channel_2, &DAC_InitStructure);
      DAC_Cmd(DAC_Channel_2, ENABLE);
      DAC_SetChannel2Data(DAC_Align_12b_R, 0);
      DAC_SoftwareTriggerCmd(DAC_Channel_2, ENABLE);


Хватает этой инициализации, чтоб начались зависания. Без цап все работает беспроблемно.
Использую модуль STM32-LCD олимекса.
Сергей Борщ
Уточните, что такое "подвисания"? Если программа уходит куда-то и там зацикливается - надо смотреть отладчиком, куда ее унесло и думать, как она туда попала.
-Игорь-
Цитата(Сергей Борщ @ Feb 7 2013, 11:00) *
Уточните, что такое "подвисания"? Если программа уходит куда-то и там зацикливается - надо смотреть отладчиком, куда ее унесло и думать, как она туда попала.

Контроллер дергает ножкой в прерывании от АЦП по дергу и контролирую. Прерывания прекращаются. Несколько раз подвисание происходило при перерисовке жк, т.е. перерисовка замерзала в на полпути. Процентов 90% времени - перерисовка жк.
У меня есть stlink. Сейчас поищу как запустить его с отладчиком.

Похоже проблема не в цапе. Видимо включение цапа позволило выявить некорректную схемотехнику. Может из-за увеличающегося потребления, может еще из-за чего. Т.е. проблема не в контроллере, а скорее всего в разводке. Буду все перепроверять. Спасибо за участие.
Left Radio
Наверно нужно было сперва написать что конкретно за проц, а то в 103RB к примеру нет ЦАП, не удивительно что МК "виснет".
zheka
Цитата
а то в 103RB к примеру нет ЦАП, не удивительно что МК "виснет".


А я долго игрался с несуществующим ЦАП в 103RBT6, удивлялся почему он не работает. Но к зависанию это не приводило.
Left Radio
Возможно и не приводило, но вполне имело право приводить sm.gif У меня с ЦАП тоже чудеса наблюдались и так толком я их не победил, правда это было на 100С8 с одновременной работой АЦП, ЦАП двух каналов ПДП синхронно отправляющим байт в ЦАП и принимающим с АЦП, по таймеру инициализировались запросы к обеим каналам ПДП. Так вот нормальная работоспособность была если инициализировать все "правильно", чуть изменяешь последовательность инициализации и начинаются "чудеса" sm.gif , время от времени на генерируемом синусе появляются провалы и т.д. Но это ладно, а вот почему ПДП оканчивал передачу буфера в ЦАП каждый раз на разном значении счетчика буфера это для меня так и осталось непонятным, на осциллографе это выглядело как "плавание" постоянки между пачками генерируемого синуса. Пришлось перед каждой новой посылкой буфера обнулять счетчик переданных ПДП байт и только затем запускать новую передачу.
-Игорь-
Так и не победил до сих пор sad.gif Дело удивительное. Инициализацию не пытался тасовать - попробую. Самое отвратительное, что глюк не стабильный - плавающий.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.