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

 
 
33 страниц V  « < 8 9 10 11 12 > »   
Closed TopicStart new topic
> STM32 – вопросы – проблемы - решения.
ViKo
сообщение Apr 14 2011, 12:03
Сообщение #136


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(ISK2010 @ Apr 14 2011, 13:54) *
Вот только теперь вопрос. Какой максимальный втекающий ток по reset у ULINK?
И еще. Вы с таким уже сталкивались?

Не знаю. Не сталкивался. Предложил, руководствуясь законом Ома. sm.gif
Go to the top of the page
 
+Quote Post
dac
сообщение Apr 14 2011, 14:41
Сообщение #137


Знающий
****

Группа: Свой
Сообщений: 600
Регистрация: 27-05-05
Пользователь №: 5 482



QUOTE (akimych @ Apr 14 2011, 07:57) *
Потому что симулятор кейла не умеет симулировать 107ой, а 103ий умеет. Для 107го только симулятор ядра.
Можно выбарть 103ий в настройках и симулировать, как 103ий.

keil не умеет для 107 симулировать ВСЮ периферию. а уж uart точно должен уметь, т.к. идентичен 103. проблема как раз не в симуляции периферии, а в симуляции ядра. симулятор запускает с 0 адреса вместо 0х8000000
Go to the top of the page
 
+Quote Post
akimych
сообщение Apr 17 2011, 16:02
Сообщение #138


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 7-01-11
Пользователь №: 62 073



А с чего он вдруг должен стартовать с 0х800000? Если он знать не знает, что там еще есть кроме ядра, а флеш частью ядра не является.
Дело в том как устроен симулятор кейла. Не умеет он симулировать по отдельности. Типа вот тут у нас уарты одинаковые - это я могу, а вот тут что-то другое не могу. Просто симулятор не знает
чипа stm32f107 вообще. Потому и ведет себя подобным образом, симулирует только ядро, стартует с 0 и т.д.
Если очень хочется, можно заставить симулятор ядра стартовать с 0х800000, да только какой смысл, если можно запустить симулятор как f103 и получить тоже самое + часть периферии, которая у f107 такая же.
Go to the top of the page
 
+Quote Post
dac
сообщение Apr 17 2011, 18:39
Сообщение #139


Знающий
****

Группа: Свой
Сообщений: 600
Регистрация: 27-05-05
Пользователь №: 5 482



QUOTE (akimych @ Apr 17 2011, 22:02) *
А с чего он вдруг должен стартовать с 0х800000? Если он знать не знает, что там еще есть кроме ядра, а флеш частью ядра не является.
Дело в том как устроен симулятор кейла. Не умеет он симулировать по отдельности. Типа вот тут у нас уарты одинаковые - это я могу, а вот тут что-то другое не могу. Просто симулятор не знает
чипа stm32f107 вообще. Потому и ведет себя подобным образом, симулирует только ядро, стартует с 0 и т.д.
Если очень хочется, можно заставить симулятор ядра стартовать с 0х800000, да только какой смысл, если можно запустить симулятор как f103 и получить тоже самое + часть периферии, которая у f107 такая же.

понятно. жаль конечно, всегда в железе отлаживал уже на заключительном этапе, либо придется симулировать для 103, а в железе уже 107 sad.gif и это хваленый кейл 1111493779.gif интересно когда поддержку 107 в симуляторе планируют?
Go to the top of the page
 
+Quote Post
akimych
сообщение Apr 18 2011, 12:40
Сообщение #140


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 7-01-11
Пользователь №: 62 073



Сомневаюсюь, что вообще планируют. F217 уже вроде как добавили, а он позже появился. Так же как и F100 уже давно могли бы добавить, там же различий почти нет с F101.
Забавно, что кейл почему-то думает, что у них симулятор поддерживает частично F107. На сайте написано и в настройках симулятора именно F107 выставляется, если его выбрать. С F100 честно пишут, что не поддерживается и в настройках симулятора сразу прописывается симулятор ядра.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Apr 20 2011, 09:10
Сообщение #141


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



В дополнение к разговору о битах, выкладываю свои макрофункции конфигурирования портов STM32 - модификации конфигурации одиночного бита, и записи конфигурации младшего или старшего байта порта целиком.
По-моему, простенько (и красиво)...
Код
/* Port bit configuration table */
typedef enum {
  IN_ANALG, GPO_PP10, GPO_PP02, GPO_PP50,  // Input Analog, GP Output Push-pull 10-2-50MHz
  IN_FLOAT, GPO_OD10, GPO_OD02, GPO_OD50,  // Input Float, GP Output Open-drain 10-2-50MHz
  IN_PD_PU, AFO_PP10, AFO_PP02, AFO_PP50,  // Input Pull-down/Pull-up, Alt Func Push-pull
  CFG_None, AFO_OD10, AFO_OD02, AFO_OD50   // none(illegal), Alt Func Open-drain 10-2-50MHz
} CFG_MODE;

/*!
*******************************************************************************
* @brief Port Low/High byte configuration
* @details Конфигурация байтов порта целиком
* @param PORT - имя порта (A..G)
* @param CM15..CM00 - конфигурация битов 15..0
* @return нет
* @note Используется перечисляемый тип CFG_MODE
* @note Для IN_PD_PU нужный pull-down, pull-up задается в ODR
*******************************************************************************/
#define GPIO_PORTL_CFG(PORT,CM07,CM06,CM05,CM04,CM03,CM02,CM01,CM00) \
GPIO##PORT->CRL = (CM07<<28|CM06<<24|CM05<<20|CM04<<16|CM03<<12|CM02<<8|CM01<<4|CM00)

#define GPIO_PORTH_CFG(PORT,CM15,CM14,CM13,CM12,CM11,CM10,CM09,CM08) \
GPIO##PORT->CRH = (CM15<<28|CM14<<24|CM13<<20|CM12<<16|CM11<<12|CM10<<8|CM09<<4|CM08)

/*!
*******************************************************************************
* @brief Bit of Low/High byte Port configuration
* @details Конфигурация одиночного бита порта
* @param PORT - имя порта (A..G)
* @param BIT - номер бита (0..15)
* @param CM - конфигурация бита
* @return нет
* @note Используется перечисляемый тип CFG_MODE
* @note Для IN_PD_PU нужный pull-down, pull-up задается в ODR
*******************************************************************************/
#define GPIO_LBIT_CFG(PORT,BIT,CM) \
GPIO##PORT->CRL = GPIO##PORT->CRL & (~(0xf<<BIT*4)) | (CM<<BIT*4)

#define GPIO_HBIT_CFG(PORT,BIT,CM) \
GPIO##PORT->CRH = GPIO##PORT->CRH & (~(0xf<<(BIT-8)*4)) | (CM<<(BIT-8)*4)


Добавлю пример использования
Код
  GPIO_LBIT_CFG(A,0,IN_FLOAT);
  GPIO_HBIT_CFG(A,8,AFO_PP50);
  GPIO_PORTL_CFG(B,IN_PD_PU,IN_PD_PU,IN_PD_PU,IN_PD_PU,IN_PD_PU,IN_PD_PU,IN_PD_PU,IN_PD_PU);
  GPIO_PORTH_CFG(B,GPO_PP10,GPO_PP10,GPO_PP10,GPO_PP10,GPO_PP10,GPO_PP10,GPO_PP10,GPO_PP10);
Go to the top of the page
 
+Quote Post
ARV
сообщение Apr 20 2011, 18:03
Сообщение #142


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



у меня вопрос тупой до безобразия... решил пойти в ногу с прогрессом и освоить ARM наконец-таки. для чего приобрел STM32vldiscovery, как наиболее дешевую платку. Скачал и установил Yagarto, плагин для Eclipse и наэтом подзастрял.
во-первых, смотрю в демо-проекты, скачанные с сайта ST, и не могу найти некоторых хидеров. куда они их позасунули? какова вообще структура библиотечных файлов поддержки камней STM32 "от производителя"? может, не стоит ими пользоваться? опыт WinAVR как-то не очень помогает - там все камушки описывались хидерами, лежащими в одной папке, поставляемой с WinAVR, генератор проекта позволял выбрать нужный кристалл - и аллес, на этом подготовка кончалась, оставалось только вспомнить, какая периферия доступна и пользоваться ею. пока что такой аналогии в STM32 не прослеживаю... научите, пожалуйста!

во-вторых, если у кого есть опыт работы со всем упомянутым счастьем именно в Eclipse, посоветуйте, что и как там настроить для комфортной работы? Может, есть толковые ссылки по этой теме, плагины какие-то особые? Скачал ARM Eclipse plugin - но, может, это не самое лучшее, что есть?

в общем, что-то я в тумане почище ежика... дайте толчок - дальше попробую сам... не смотря на то. что GCC считается кросс-компилятором, для всех таргетов свои фишки, голова пухнет sad.gif


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Apr 20 2011, 18:51
Сообщение #143


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(ARV @ Apr 21 2011, 00:03) *
в общем, что-то я в тумане почище ежика... дайте толчок - дальше попробую сам... не смотря на то. что GCC считается кросс-компилятором, для всех таргетов свои фишки, голова пухнет sad.gif

А ибо нефиг пользовать специализированные плагиныsm.gif
Если взять просто эклипс, и делать makefile-based проекты, то работа со всеми поддерживаемыми GCC таргетами практически идентична.

Что касаемо примеров от ST, то обычно там лежит их библиотека, по крайней мере во всех, что я видел - лежала.
Я лично её не использую, не нравится. Могу порекомендовать примеры от scmRTOS, четвёртый там точно под VL.

---
ЗЫ. Ещё вот тут постил пример, он вроде на сях и с ст-шной библиотекой.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
ARV
сообщение Apr 20 2011, 19:34
Сообщение #144


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



Цитата(AHTOXA @ Apr 20 2011, 22:51) *
А ибо нефиг пользовать специализированные плагины sm.gif
Если взять просто эклипс, и делать makefile-based проекты, то работа со всеми поддерживаемыми GCC таргетами практически идентична.

Что касаемо примеров от ST, то обычно там лежит их библиотека, по крайней мере во всех, что я видел - лежала.
Я лично её не использую, не нравится. Могу порекомендовать примеры от scmRTOS, четвёртый там точно под VL.

---
ЗЫ. Ещё вот тут постил пример, он вроде на сях и с ст-шной библиотекой.


во-первых, в примерах ST нет makefile. а сделать его самостоятельно, не имея прочных понятий в новой архитектуре и не будучи знакомым с новым компилятором, я не смогу.


во-вторых, если не ST-шная библиотека - то какая альтернатива? где вся ST-шная периферия описана хорошо? не самому же все эти бесчисленные GPIO и т.п. описывать?! не понимаю...

ну а ссылки - погляжу, спасибо, может, что прояснится...



--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Apr 20 2011, 19:53
Сообщение #145


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(ARV @ Apr 21 2011, 01:34) *
во-первых, в примерах ST нет makefile. а сделать его самостоятельно, не имея прочных понятий в новой архитектуре и не будучи знакомым с новым компилятором, я не смогу.

Ну так возьмите готовыйsm.gif В тех примерах, на которые я сослался, для добавления файла к проекту достаточно расположить его в каталоге src. А вообще - makefile и архитектура - вещи практически ортогональные.
Цитата(ARV @ Apr 21 2011, 01:34) *
во-вторых, если не ST-шная библиотека - то какая альтернатива? где вся ST-шная периферия описана хорошо? не самому же все эти бесчисленные GPIO и т.п. описывать?! не понимаю...

Альтернатива - ручками, через регистры. Доку про них всё равно придётся читать, что с библиотекой, что без.
А все регистры описаны в паре специальных файлов - stm32f10x.h и core_cm3.h. Они не являются частью FwLib, а входят в CMSIS.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Axel
сообщение Apr 21 2011, 07:59
Сообщение #146


Местный
***

Группа: Свой
Сообщений: 480
Регистрация: 21-11-04
Пользователь №: 1 188



Контроллер STM32F103RD. Не могу заставить ADC1 тактироваться от Timer2. Вариантов перепробовал ...очень много. В чем может быть фишка?
Go to the top of the page
 
+Quote Post
KARLSON
сообщение Apr 21 2011, 18:40
Сообщение #147


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 5-05-06
Из: Нижегородская обл.
Пользователь №: 16 819



Без кода инициализации, что у Вас сейчас, вряд ли поможем.


--------------------
Кризис - это не отсутствие денег, а отсутствие идей! Учитесь и никаких кризисов не будет.
Go to the top of the page
 
+Quote Post
Axel
сообщение Apr 22 2011, 03:32
Сообщение #148


Местный
***

Группа: Свой
Сообщений: 480
Регистрация: 21-11-04
Пользователь №: 1 188



Цитата(KARLSON @ Apr 21 2011, 21:40) *
Без кода инициализации, что у Вас сейчас, вряд ли поможем.


Вот один из вариантов:
CODE
void ADC1_Init()
{
ADC1->CR1 = ADC_CR1_DISCEN | ADC_CR1_EOCIE;
ADC1->CR2 = ADC_CR2_EXTSEL_0 | ADC_CR2_EXTSEL_1 | ADC_CR2_EXTTRIG;

ADC1->SQR1 = 0x00;
ADC1->SQR2 = 0x00;
ADC1->SQR3 = ADC_SQR3_SQ1_0;
ADC1->SMPR2 = ADC_SMPR2_SMP1_2; //0x08;

ADC1->CR2 |= ADC_CR2_ADON;
ADC1->CR2 |= ADC_CR2_RSTCAL;
while(ADC1->CR2 & ADC_CR2_RSTCAL);
ADC1->CR2 |= ADC_CR2_CAL;
while(ADC1->CR2 & ADC_CR2_CAL);
ADC1->SR = 0;
}

void TIM2_Init()
{
TIM2->CR1 = TIM_CR1_ARPE;
TIM2->SMCR = 0;
TIM2->ARR = 49;
TIM2->PSC = 0x47;
// TIM2->CCR2 = 50;

// TIM2->CCMR1 = TIM_CCMR1_OC2PE | TIM_CCMR1_OC2CE;
TIM2->CCMR1 = TIM_CCMR1_OC2M_0 | TIM_CCMR1_OC2M_1 | TIM_CCMR1_OC2PE;
// TIM2->CCMR1 = TIM_CCMR1_OC2CE;
TIM2->EGR = TIM_EGR_CC2G;
TIM2->DIER = TIM_DIER_CC2IE;
TIM2->CCER = TIM_CCER_CC2E;
}


Хедер прикрепил.
Прикрепленный файл  stm32f10x_map.zip ( 47.77 килобайт ) Кол-во скачиваний: 125

Go to the top of the page
 
+Quote Post
Alechin
сообщение Apr 22 2011, 10:27
Сообщение #149


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

Группа: Свой
Сообщений: 158
Регистрация: 27-06-05
Из: Химки, Моск.обл.
Пользователь №: 6 334



Не могу заставить процессор запускаться с программой из флеши. Писал-писал, отлаживался в IARе через ST-Link. А тут решил включить плату отдельно - не хочет запускать программу! ST-Link Utility показывает, что файл прошит. Но стартует программу только если нажать "Core Reset" В чем может быть причина?
Go to the top of the page
 
+Quote Post
Danis
сообщение Apr 23 2011, 15:40
Сообщение #150


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Цитата(Alechin @ Apr 22 2011, 13:27) *
Не могу заставить процессор запускаться с программой из флеши. Писал-писал, отлаживался в IARе через ST-Link. А тут решил включить плату отдельно - не хочет запускать программу! ST-Link Utility показывает, что файл прошит. Но стартует программу только если нажать "Core Reset" В чем может быть причина?


Проверьте пины BOOT проца.


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post

33 страниц V  « < 8 9 10 11 12 > » 
Closed TopicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 03:30
Рейтинг@Mail.ru


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