|
|
  |
STM32F050F5P6 и USART на ногах PA2-PA3, То ли несоотвествие в даташите, то ли лыжи не едут... |
|
|
|
Dec 26 2014, 17:48
|

Участник

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

|
Цитата(HHIMERA @ Dec 26 2014, 20:36)  Почему у меня РА2 - ТХ??? STM32F050F4... Не знаю, почему. А почему? По первой таблице из даташита - да, должно так и быть. А вот по второй таблице, где ремап пинов на альтернативные функции - уже не так. И на практике у меня так, как в таблице с ремапом.
|
|
|
|
|
Dec 26 2014, 17:58
|
Местный
  
Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126

|
Цитата(Tronix286 @ Dec 26 2014, 20:48)  на практике у меня так, как в таблице с ремапом. (рукалицо) Ага... STM запилили специально для вас "чудо-чип"... в единственном экземпляре... и сейчас смеются читая этот топик... Вот шалуны!!!
|
|
|
|
|
Dec 26 2014, 19:26
|

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

|
Цитата(Tronix286 @ Dec 26 2014, 20:48)  Не знаю, почему. А почему? По первой таблице из даташита - да, должно так и быть. А вот по второй таблице, где ремап пинов на альтернативные функции - уже не так. И на практике у меня так, как в таблице с ремапом. Косяк STM, ошиблись в документации. Придется вам выбрать новый микроконтроллер, из доступных в списках. А с этими дорожки перерезать, проводками перепаять. Программно USART сделать легко, если будет прерывание по таймеру с частотой, в 4 раза больше скорости передачи. Когда-то у Microchip была такая Application Note. Я делал, работало.
|
|
|
|
|
Dec 26 2014, 19:27
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(Tronix286 @ Dec 26 2014, 21:23)  Что я смотрю не так и куда мне смотреть? Заглянуть сюда. А на самом деле все вы правильно смотрите и видете - в документации косячина. Бог с ним с F050 (который, как известно, NRND), но в переименованном F031 (сейчас Active) - такое же безобразие. Срочно переходите на F030 ))
|
|
|
|
|
Dec 27 2014, 20:49
|

Участник

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

|
От перестановки мест слагаемое не поменялось - прям на сайте для STM32F031F4 эррата девственно чиста, в даташите точно такое-же несоответствие таблиц, что и у 050f4p6. http://www.st.com/web/catalog/mmc/FM141/SC...74/LN7/PF259776PS: Заменил седня на STM32F030F4P6 - полет нормальный, уарт завелся на PA2 и PA3, даже без изменения прошивки - влил просто ту, которая не работала на 050. Такие дела...
|
|
|
|
|
Dec 27 2014, 22:11
|
Местный
  
Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126

|
Цитата(Tronix286 @ Dec 27 2014, 23:49)  Заменил седня на STM32F030F4P6 - полет нормальный, уарт завелся на PA2 и PA3, даже без изменения прошивки - влил просто ту, которая не работала на 050. Такие дела... Прекратите врать и на этом закончим... По иронии судьбы у меня на столе валяется именно STM32F050F4... Специально UART проверял... Никто персонально для вас кристалл с изменённой топологией выпускать не будет... Ещё раз... загляните в даташиты других семейств... везде - РА2-РА3... Можете и дальше настаивать на чудесах...
|
|
|
|
|
Dec 28 2014, 10:12
|
Гуру
     
Группа: Свой
Сообщений: 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 напишите "нет вы не правы, у меня такой кристалл на нем все Ок., ошибка в другом месте" и человек скажет вам спасибо, а вы....
|
|
|
|
|
Dec 28 2014, 11:39
|
Местный
  
Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126

|
Цитата(Golikov A. @ Dec 28 2014, 13:12)  Не понимаю Значит не дано... типа "Не шмагла!"(С)... такое тоже бывает... Сами проверьте... на каких ногах UART у STM32F050F4... а потом пытайтесь дерзить по пионерски... Не можете??? Тогда - что эхо в лесу... Ошибку в даташите никто не отрицает... но это ничего не меняет... UART, как и положено, на РА2-РА3... если вам и в десятый раз не понятно... там не может быть по другому... как бы вы не упирались...
Сообщение отредактировал HHIMERA - Dec 28 2014, 11:41
|
|
|
|
|
Dec 29 2014, 10:15
|

Участник

Группа: Участник
Сообщений: 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] - для короткого!!!
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|