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

 
 
3 страниц V  < 1 2 3 >  
Closed TopicStart new topic
> STM32F050F5P6 и USART на ногах PA2-PA3, То ли несоотвествие в даташите, то ли лыжи не едут...
Tronix286
сообщение Dec 26 2014, 17:48
Сообщение #16


Участник
*

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



Цитата(HHIMERA @ Dec 26 2014, 20:36) *
Почему у меня РА2 - ТХ??? STM32F050F4...


Не знаю, почему. А почему? По первой таблице из даташита - да, должно так и быть. А вот по второй таблице, где ремап пинов на альтернативные функции - уже не так. И на практике у меня так, как в таблице с ремапом.
Go to the top of the page
 
+Quote Post
HHIMERA
сообщение Dec 26 2014, 17:58
Сообщение #17


Местный
***

Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126



Цитата(Tronix286 @ Dec 26 2014, 20:48) *
на практике у меня так, как в таблице с ремапом.

(рукалицо)
Ага... STM запилили специально для вас "чудо-чип"... в единственном экземпляре... и сейчас смеются читая этот топик... Вот шалуны!!!

Go to the top of the page
 
+Quote Post
ViKo
сообщение Dec 26 2014, 19:26
Сообщение #18


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

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



Цитата(Tronix286 @ Dec 26 2014, 20:48) *
Не знаю, почему. А почему? По первой таблице из даташита - да, должно так и быть. А вот по второй таблице, где ремап пинов на альтернативные функции - уже не так. И на практике у меня так, как в таблице с ремапом.

Косяк STM, ошиблись в документации. Придется вам выбрать новый микроконтроллер, из доступных в списках. А с этими дорожки перерезать, проводками перепаять. Программно USART сделать легко, если будет прерывание по таймеру с частотой, в 4 раза больше скорости передачи. Когда-то у Microchip была такая Application Note. Я делал, работало.
Go to the top of the page
 
+Quote Post
adnega
сообщение Dec 26 2014, 19:27
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(Tronix286 @ Dec 26 2014, 21:23) *
Что я смотрю не так и куда мне смотреть?

Заглянуть сюда.
А на самом деле все вы правильно смотрите и видете - в документации косячина.
Бог с ним с F050 (который, как известно, NRND), но в переименованном F031 (сейчас Active) - такое же безобразие.
Срочно переходите на F030 ))
Go to the top of the page
 
+Quote Post
Tronix286
сообщение Dec 26 2014, 19:38
Сообщение #20


Участник
*

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



Да, решили просто поменять контроллер на stm32f030f4p6, потому что все остальные ноги тоже заняты и резать дороги и паять МГТФ просто некуда. Можно было конечно программный УАРТ завести, почитал - это действительно очень просто, но решили не костылить и делать по феншую до конца.

Спасибо всем участникам, я просто хотел лишний раз убедиться, что это не я глючу, а реальный баг даташита.
Go to the top of the page
 
+Quote Post
HHIMERA
сообщение Dec 26 2014, 21:17
Сообщение #21


Местный
***

Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126



Цитата(Tronix286 @ Dec 26 2014, 22:38) *
Да, решили просто поменять контроллер на stm32f030f4p6

И что изменится??? laughing.gif
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Dec 27 2014, 11:36
Сообщение #22


Гуру
******

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



Вот нашел у себя табличку с переименованиями:
Код
Previous        New
Part Number     Part Number
STM32F0506DIE1  STM32F0316DIE1
STM32F050C4T6   STM32F031C4T6
STM32F050C4T6TR STM32F031C4T6TR
STM32F050C6T6   STM32F031C6T6
STM32F050C6T6TR STM32F031C6T6TR
STM32F050C6T7   STM32F031C6T7
STM32F050F4P6   STM32F031F4P6
STM32F050F6P6   STM32F031F6P6
STM32F050F6P7   STM32F031F6P7
STM32F050G4U6   STM32F031G4U6
STM32F050G6U6   STM32F031G6U6
STM32F050K4U6   STM32F031K4U6
STM32F050K6U6   STM32F031K6U6
STM32F313CCT6   STM32F358CCT6
STM32F313RCT6   STM32F358RCT6
STM32F313VCT6   STM32F358VCT6
STM32F383CCT6   STM32F378CCT6
STM32F383RCT6   STM32F378RCT6
STM32F383VCT6   STM32F378VCT6


--------------------
На любой вопрос даю любой ответ
"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
Tronix286
сообщение Dec 27 2014, 20:49
Сообщение #23


Участник
*

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



От перестановки мест слагаемое не поменялось - прям на сайте для STM32F031F4 эррата девственно чиста, в даташите точно такое-же несоответствие таблиц, что и у 050f4p6. http://www.st.com/web/catalog/mmc/FM141/SC...74/LN7/PF259776

PS: Заменил седня на STM32F030F4P6 - полет нормальный, уарт завелся на PA2 и PA3, даже без изменения прошивки - влил просто ту, которая не работала на 050. Такие дела...
Go to the top of the page
 
+Quote Post
HHIMERA
сообщение Dec 27 2014, 22:11
Сообщение #24


Местный
***

Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126



Цитата(Tronix286 @ Dec 27 2014, 23:49) *
Заменил седня на STM32F030F4P6 - полет нормальный, уарт завелся на PA2 и PA3, даже без изменения прошивки - влил просто ту, которая не работала на 050. Такие дела...

Прекратите врать и на этом закончим... По иронии судьбы у меня на столе валяется именно STM32F050F4... Специально UART проверял...
Никто персонально для вас кристалл с изменённой топологией выпускать не будет...
Ещё раз... загляните в даташиты других семейств... везде - РА2-РА3... Можете и дальше настаивать на чудесах... cranky.gif
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Dec 28 2014, 10:12
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Не понимаю я чего эта химера такая борзая....

взял в яндексе написал название кристалла, открыл pdf с их сайта. Нажал поиск по PA1. И действительно в 2 местах этого pdf написано разное.
В одном месте на PA1 - RTS, в другом на PA1 - TX

проверяйте
http://www.st.com/web/en/resource/technica.../DM00065136.pdf

явная ошибка в описании, и повезло что первая таблица более правильна чем вторая. Я вот как программист смотрел бы на 2, настраивал бы альтернативные функции, и даже может начал бы просить поправить плату.

У человека проблемы, и он видит неточность в описании, поделился этим с нами, за что ему большое спасибо. А вы уже 3 или 4 пост на него наезжаете без причинно. Это как-то не профессионально, мне кажется...
Если беспокоит высказывание типа
Цитата
По серии экспериментов получается, что USART1 реально находится на PA1 и PA2

напишите "нет вы не правы, у меня такой кристалл на нем все Ок., ошибка в другом месте" и человек скажет вам спасибо, а вы....
Go to the top of the page
 
+Quote Post
HHIMERA
сообщение Dec 28 2014, 11:39
Сообщение #26


Местный
***

Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126



Цитата(Golikov A. @ Dec 28 2014, 13:12) *
Не понимаю

Значит не дано... типа "Не шмагла!"(С)... такое тоже бывает... laughing.gif
Сами проверьте... на каких ногах UART у STM32F050F4... а потом пытайтесь дерзить по пионерски... Не можете??? Тогда - что эхо в лесу...
Ошибку в даташите никто не отрицает... но это ничего не меняет... UART, как и положено, на РА2-РА3... если вам и в десятый раз не понятно... там не может быть по другому... как бы вы не упирались...

Сообщение отредактировал HHIMERA - Dec 28 2014, 11:41
Go to the top of the page
 
+Quote Post
adnega
сообщение Dec 28 2014, 12:31
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(HHIMERA @ Dec 28 2014, 15:39) *
Сами проверьте... на каких ногах UART у STM32F050F4...

Действительно, HHIMERA разошлась) Нужно быть сдержаннее.

Однако, соглашусь, что pin2pin по заявлениям ТС теряется, и это не какая-нибудь опечатка в документе - а очень серьезная железная проблема.
Тут я на стороне HHIMERы и присоединяюсь к просьбе проверить назначение ног аккуратно. К сожалению, STM32F050F4 в наличии у самого нет.
Go to the top of the page
 
+Quote Post
Tronix286
сообщение Dec 29 2014, 10:15
Сообщение #28


Участник
*

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



Итак, прям щаз ради интереса запаял обратно 050 на плату - и... и работает на PA2, PA3.. Действительно, хоть и в грубой форме, но HHIMERA оказался прав. Первый раз я видимо что-то не так заинициализил, ибо программер из меня тот еще..., и торопился...

В общем, в даташите есть ошибка, на практике оказалась верна первая таблица. USART у stm32f050f4p6 находится реально на PA2, PA3.

На всякий случай кусок говнокодеса инициализации, который работает и на 030f4 и на 050f4:
CODE
/* NVIC configuration */
/* Enable the USARTx Interrupt */
NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);

/* Writes data to the specified GPIO data port */
GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_1);

/* Connect PXx to USARTx_Rx */
GPIO_PinAFConfig(GPIOA, GPIO_PinSource3, GPIO_AF_1);


/* Configure USART Tx and Rx as alternate function push-pull */
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //GPIO_Speed_Level_3;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
GPIO_Init(GPIOA, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
GPIO_Init(GPIOA, &GPIO_InitStructure);

USART_InitStructure.USART_BaudRate = 1200;
USART_InitStructure.USART_WordLength = USART_WordLength_8b;
USART_InitStructure.USART_StopBits = USART_StopBits_1;
USART_InitStructure.USART_Parity = USART_Parity_No;
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
USART_Init(USART1, &USART_InitStructure);

//GPIO_ResetBits(GPIOF, GPIO_Pin_0);
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
USART_ITConfig(USART1, USART_IT_TXE, DISABLE);

USART_ITConfig(USART1, USART_IT_ORE, ENABLE);
USART_ITConfig(USART1, USART_IT_NE, ENABLE);
USART_ITConfig(USART1, USART_IT_FE, ENABLE);

/* Enable USART */
USART_Cmd(USART1, ENABLE);


Сообщение отредактировал IgorKossak - Dec 29 2014, 11:35
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!
Go to the top of the page
 
+Quote Post
adnega
сообщение Dec 29 2014, 10:28
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(Tronix286 @ Dec 29 2014, 14:15) *
Итак, прям щаз ради интереса запаял обратно 050 на плату - и... и работает на PA2, PA3.. Действительно, хоть и в грубой форме, но HHIMERA оказался прав.

Победила дружба!
Уфф, как камень с плеч. Теперь все встало на свои места.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Dec 29 2014, 12:12
Сообщение #30


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Блин все всегда было на своих местах.

И было весьма вероятно что у ТС ошибка, просто кое кому надо было не говном исходиться, а сказать что у него такой же камень и все работает на нужных ногах. Это кое кто сообщил даже не во 2 и не в 3 своем посте. В итоге человек даже микроконтроллер перепаял, потому что владельцы других сразу заявили что в них все Ок....



Go to the top of the page
 
+Quote Post

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

 


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


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