|
Проверка работоспособности stm32 |
|
|
|
Nov 5 2013, 10:02
|
Участник

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

|
Приветствую всех. Возникла странная проблема, есть 2 платы с stm32f107. На первой все в порядке, а вот на второй плате не работают DAC/ADC. Инициализация DAC Код RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = (GPIO_Pin_4 ); GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_Init(GPIOA, &GPIO_InitStructure); DAC->CR |= DAC_CR_BOFF1; DAC->CR |= DAC_CR_EN1; Проверял DAC 1/2, ацп 1/2 (второй канал ацп не проходит калибровку - в дебаггере не идет дальше) Везде пусто. ps порт С как вход при этом работает нормально.
Сообщение отредактировал anubis - Nov 5 2013, 10:03
|
|
|
|
|
Nov 6 2013, 09:17
|
Участник

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

|
Как вы думаете в чем может быть проблема. При запуске дэбагера выдает следующее. Код Reading symbols from C:\CooCox\CoIDE\workspace\General_Project_1\General_Project_1\Debug\bin\General_Project_1.elf...done. file "C:/CooCox/CoIDE/workspace/General_Project_1/General_Project_1/Debug/bin/General_Project_1.elf" file "C:/CooCox/CoIDE/workspace/General_Project_1/General_Project_1/Debug/bin/General_Project_1.elf" set tdesc filename C:/CooCox/CoIDE/bin/target_desc/arm-with-m.xml target remote 127.0.0.1:2009 Default_Reset_Handler () at C:\CooCox\CoIDE\workspace\General_Project_1\cmsis_boot\startup\startup_stm32f10x_cl.c:222 222 { tbreak main continue Temporary breakpoint 4 at 0x8000666: file C:\CooCox\CoIDE\workspace\General_Project_1\main.c, line 43.
Temporary breakpoint 4, main () at C:\CooCox\CoIDE\workspace\General_Project_1\main.c:43 43 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
|
|
|
|
|
Nov 6 2013, 11:37
|
Участник

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

|
Пины проверили все в порядке, везде есть напряжение где надо. (аналогично с первой платой) Прошивка на платы заливается идентичная.
Отличия в них только в том что одна программируется через JTAG другая SWD
|
|
|
|
|
Nov 7 2013, 10:49
|
Участник

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

|
на плате через SWD к сожалению строчка не помогла, и DAC по прежнему отказывается выдавать сигнал(
|
|
|
|
|
Nov 7 2013, 16:19
|
Участник

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

|
Через SWD с одинаковой прошивкой результаты те же, на второй плате АЦП/ЦАП не работают.
|
|
|
|
|
Nov 7 2013, 16:29
|
Участник

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

|
Прошивка одинаковая, в этом вся беда. Если бы разная была, то понятно что в коде проблема...
|
|
|
|
|
Nov 7 2013, 17:02
|
Участник

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

|
Прошивка на плате-1 работает нормально(DAC/ADC), шьем аналогом st-link. Лог результата закачки прошивки будет завтра.
|
|
|
|
|
Nov 7 2013, 18:20
|
Участник

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

|
Так программа не виснет и вполне дебагается, но на выходе с DAC 0.
|
|
|
|
|
Nov 8 2013, 09:23
|

Частый гость
 
Группа: Участник
Сообщений: 169
Регистрация: 26-03-12
Из: Харьков
Пользователь №: 71 010

|
Странно очень, а DAC на других пинах интересно работает? Цитата(anubis @ Nov 5 2013, 12:02)  Проверял DAC 1/2, ацп 1/2 (второй канал ацп не проходит калибровку - в дебаггере не идет дальше) Везде пусто. ps порт С как вход при этом работает нормально. сори, походу не работает на других пинах
|
|
|
|
|
Nov 8 2013, 12:46
|
Участник

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

|
Доброго времени! Заливаем на плату 1 и 2 след прошивку. Прошу прощение за закорючки, это CoIDE, CooCox последней версии отображает кириллицу. пока чет это не пофиксили. Тем не менее обе через SWD. Первая выдает белый шум с PA4 вторая с того же порта "молчит". Код #include "stm32f10x.h" #include "stm32f10x_rcc.h" #include "stm32f10x_gpio.h"
int main(void) { GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); /* Включаем порт А */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); /* Включаем ЦАП */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE); /* Включаем таймер 6 */ RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6,ENABLE);
/* Настраиваем ногу ЦАПа */ GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_Init(GPIOA, &GPIO_InitStructure);
/* Настраиваем таймер так чтоб он тикал почаще */ TIM6->PSC = 0; TIM6->ARR = 500; TIM6->CR2=TIM_CR2_MMS_1; /* Таймер будет источником событий для ЦАПа */ TIM6->CR1 |= TIM_CR1_CEN; // Начать отсчёт!
/* Включить DAC1 */ DAC->CR |= DAC_CR_TEN1; /* Преобразование по возникновению события ... */ DAC->CR &= ~DAC_CR_TSEL1; /* ... от таймера 6*/ DAC->CR |= DAC_CR_WAVE1_0; /* Генерация шума */ // DAC->CR |= DAC_CR_WAVE1_1; /* Генерация сигнала треугольной формы */ DAC->CR |= DAC_CR_MAMP1; /* Максимальная амплитуда */ DAC->CR |= DAC_CR_EN1; /* Включить ЦАП1 */
/* Бесконечный цикл */ while (1) { } }
|
|
|
|
|
Nov 14 2013, 12:28
|
Участник

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

|
Спасибо большое! Harbour и другие
проблема была в "висящих" ножках + подача Vref от внешнего источника
Помогите разобраться с ЦАП и АЦП, возможно ли их сделать биполярными?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|