реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Виснет stm32f103 при включении DAC.
-Игорь-
сообщение Feb 7 2013, 06:43
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 8-10-11
Пользователь №: 67 615



Как только начинаю использовать цап, что 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 олимекса.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Feb 7 2013, 08:00
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Уточните, что такое "подвисания"? Если программа уходит куда-то и там зацикливается - надо смотреть отладчиком, куда ее унесло и думать, как она туда попала.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
-Игорь-
сообщение Feb 7 2013, 09:17
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 8-10-11
Пользователь №: 67 615



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

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

Похоже проблема не в цапе. Видимо включение цапа позволило выявить некорректную схемотехнику. Может из-за увеличающегося потребления, может еще из-за чего. Т.е. проблема не в контроллере, а скорее всего в разводке. Буду все перепроверять. Спасибо за участие.
Go to the top of the page
 
+Quote Post
Left Radio
сообщение Feb 9 2013, 21:39
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 4-11-08
Пользователь №: 41 361



Наверно нужно было сперва написать что конкретно за проц, а то в 103RB к примеру нет ЦАП, не удивительно что МК "виснет".
Go to the top of the page
 
+Quote Post
zheka
сообщение Feb 9 2013, 22:00
Сообщение #5


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



Цитата
а то в 103RB к примеру нет ЦАП, не удивительно что МК "виснет".


А я долго игрался с несуществующим ЦАП в 103RBT6, удивлялся почему он не работает. Но к зависанию это не приводило.
Go to the top of the page
 
+Quote Post
Left Radio
сообщение Feb 10 2013, 06:17
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 48
Регистрация: 4-11-08
Пользователь №: 41 361



Возможно и не приводило, но вполне имело право приводить sm.gif У меня с ЦАП тоже чудеса наблюдались и так толком я их не победил, правда это было на 100С8 с одновременной работой АЦП, ЦАП двух каналов ПДП синхронно отправляющим байт в ЦАП и принимающим с АЦП, по таймеру инициализировались запросы к обеим каналам ПДП. Так вот нормальная работоспособность была если инициализировать все "правильно", чуть изменяешь последовательность инициализации и начинаются "чудеса" sm.gif , время от времени на генерируемом синусе появляются провалы и т.д. Но это ладно, а вот почему ПДП оканчивал передачу буфера в ЦАП каждый раз на разном значении счетчика буфера это для меня так и осталось непонятным, на осциллографе это выглядело как "плавание" постоянки между пачками генерируемого синуса. Пришлось перед каждой новой посылкой буфера обнулять счетчик переданных ПДП байт и только затем запускать новую передачу.

Сообщение отредактировал Left Radio - Feb 10 2013, 06:40
Go to the top of the page
 
+Quote Post
-Игорь-
сообщение Feb 13 2013, 03:59
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 8-10-11
Пользователь №: 67 615



Так и не победил до сих пор sad.gif Дело удивительное. Инициализацию не пытался тасовать - попробую. Самое отвратительное, что глюк не стабильный - плавающий.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 15:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.01387 секунд с 7
ELECTRONIX ©2004-2016