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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Проверка работоспособности stm32
anubis
сообщение Nov 5 2013, 10:02
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
BvDV
сообщение Nov 5 2013, 10:44
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 80
Регистрация: 8-12-12
Из: Б.М.
Пользователь №: 74 760



А что за платы,кто производитель? Опорное напряжение проверяли?
Go to the top of the page
 
+Quote Post
anubis
сообщение Nov 5 2013, 11:08
Сообщение #3


Участник
*

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



Проблемная плата:
http://www.kosmodrom.com.ua/el.php?name=ST...10X-ETH-HB-LITE
Vcc от программатора +3.3V
Go to the top of the page
 
+Quote Post
anubis
сообщение Nov 6 2013, 09:17
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 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);
Go to the top of the page
 
+Quote Post
Falkon_99
сообщение Nov 6 2013, 11:15
Сообщение #5


Частый гость
**

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



не встречал еще чтоб переферия не работала, либо порты выгорали в STM32. Если на первой плате все ОК работает, то играем в игру найти 10 отличий. от программы до проверки напряжений на всех ногах питания. может гдето непропай


Еще дебагер может попрсту глючить, как ведет себя проц без отладки?
Go to the top of the page
 
+Quote Post
anubis
сообщение Nov 6 2013, 11:37
Сообщение #6


Участник
*

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



Пины проверили все в порядке, везде есть напряжение где надо. (аналогично с первой платой)
Прошивка на платы заливается идентичная.

Отличия в них только в том что одна программируется через JTAG другая SWD
Go to the top of the page
 
+Quote Post
Harbour
сообщение Nov 7 2013, 07:50
Сообщение #7


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



Если не работает та что шилась через SWD, так может быть что SWD пин пересекается с DAC/ADC. Для этого в _init() вставляется что-то типа :

Код
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);


и незабыть сделать poweroff/poweron cycle wink.gif
Go to the top of the page
 
+Quote Post
anubis
сообщение Nov 7 2013, 10:49
Сообщение #8


Участник
*

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



на плате через SWD
к сожалению строчка не помогла, и DAC по прежнему отказывается выдавать сигнал(

Go to the top of the page
 
+Quote Post
Harbour
сообщение Nov 7 2013, 11:11
Сообщение #9


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



ok, если прошить первую плату через SWD, а вторую через JTAG - "неисправность" переходит ?

P.S. assuming что камни и паршивка одинаковые - если нет, то дело в паршивке, однозначно
Go to the top of the page
 
+Quote Post
anubis
сообщение Nov 7 2013, 11:40
Сообщение #10


Участник
*

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



Первая плата поддерживает SWD/JTAG
http://www.ebay.com/itm/Core107V-STM32F107...=item3a7996f954

Вторая только SWD
http://www.kosmodrom.com.ua/pic/STM32F10X-ETH-HB-LITE.jpg

Идентичная прошивка и на второй не работает. Если первую прошивать SWD/JTAG результат тот же.
Go to the top of the page
 
+Quote Post
Harbour
сообщение Nov 7 2013, 13:55
Сообщение #11


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



вот и ответ на вопрос - дело не в камне. правьте код
Go to the top of the page
 
+Quote Post
anubis
сообщение Nov 7 2013, 16:19
Сообщение #12


Участник
*

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



Через SWD с одинаковой прошивкой результаты те же, на второй плате АЦП/ЦАП не работают.
Go to the top of the page
 
+Quote Post
Harbour
сообщение Nov 7 2013, 16:24
Сообщение #13


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



ни фига непонятно wink.gif

дано:

- плата-1 (swd/jtag), паршивка-1 (рабочая)
- плата-2 (swd), паршивка-2 (не рабочая)

я так понял - если шьем паршивку-2 в плату-1, то не работает из чего понятно, что дело в паршивке-2. я бы еще прошил паршивку-1 в плату-2 и проверил результат - тогда тупая логика все расставит на свои места.
Go to the top of the page
 
+Quote Post
anubis
сообщение Nov 7 2013, 16:29
Сообщение #14


Участник
*

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



Прошивка одинаковая, в этом вся беда.
Если бы разная была, то понятно что в коде проблема...
Go to the top of the page
 
+Quote Post
Harbour
сообщение Nov 7 2013, 16:48
Сообщение #15


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



оk, теперь понятно что прошивка1 = прошивка2. тогда озвучьте результат прошивки шитой по SWD в плату-1. Также интересно чем шьем (jlink ?) и приведите лог прошивки первой и второй плат.
Go to the top of the page
 
+Quote Post
anubis
сообщение Nov 7 2013, 17:02
Сообщение #16


Участник
*

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



Прошивка на плате-1 работает нормально(DAC/ADC), шьем аналогом st-link.
Лог результата закачки прошивки будет завтра.
Go to the top of the page
 
+Quote Post
Harbour
сообщение Nov 7 2013, 17:19
Сообщение #17


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



если лог одинаковый, то все незадача все равно в прошиве. походу на плате 2 есть некая причина, которая вызывает клин STM32. это скорей всего не связано с DAC/ADC и просто совпадает по времени - нужно последовательно исключать блоки программы, оставляя только DAC/ADC часть. Весьма частая причина клина STM32 - непрочитанная errata на камень wink.gif
Go to the top of the page
 
+Quote Post
anubis
сообщение Nov 7 2013, 18:20
Сообщение #18


Участник
*

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



Так программа не виснет и вполне дебагается, но на выходе с DAC 0.
Go to the top of the page
 
+Quote Post
Falkon_99
сообщение Nov 8 2013, 09:23
Сообщение #19


Частый гость
**

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



Странно очень, а DAC на других пинах интересно работает?

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

сори, походу не работает на других пинах
Go to the top of the page
 
+Quote Post
Harbour
сообщение Nov 8 2013, 09:26
Сообщение #20


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



я бы написал/взял простой пример для DAC и прошил в обе платы, а так можно гадать долго
Go to the top of the page
 
+Quote Post
anubis
сообщение Nov 8 2013, 12:46
Сообщение #21


Участник
*

Группа: Участник
Сообщений: 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)
  {
  }
}
Go to the top of the page
 
+Quote Post
Harbour
сообщение Nov 8 2013, 13:20
Сообщение #22


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



навскидку :

- не проинициализирован полностью GPIO_InitStructure - нужно или вызывать GPIO_StructInit() или заполнять все поля
- не включен клок RCC_APB2Periph_AFIO для DAC

VREF на второй плате думаю проверяли.
Go to the top of the page
 
+Quote Post
anubis
сообщение Nov 14 2013, 12:28
Сообщение #23


Участник
*

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



Спасибо большое! Harbour и другие

проблема была в "висящих" ножках + подача Vref от внешнего источника


Помогите разобраться с ЦАП и АЦП, возможно ли их сделать биполярными?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 09:20
Рейтинг@Mail.ru


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