Перейти к содержанию
    

STM32F050F5P6 и USART на ногах PA2-PA3

Почему у меня РА2 - ТХ??? STM32F050F4...

 

Не знаю, почему. А почему? По первой таблице из даташита - да, должно так и быть. А вот по второй таблице, где ремап пинов на альтернативные функции - уже не так. И на практике у меня так, как в таблице с ремапом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

на практике у меня так, как в таблице с ремапом.

(рукалицо)

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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не знаю, почему. А почему? По первой таблице из даташита - да, должно так и быть. А вот по второй таблице, где ремап пинов на альтернативные функции - уже не так. И на практике у меня так, как в таблице с ремапом.

Косяк STM, ошиблись в документации. Придется вам выбрать новый микроконтроллер, из доступных в списках. А с этими дорожки перерезать, проводками перепаять. Программно USART сделать легко, если будет прерывание по таймеру с частотой, в 4 раза больше скорости передачи. Когда-то у Microchip была такая Application Note. Я делал, работало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что я смотрю не так и куда мне смотреть?

Заглянуть сюда.

А на самом деле все вы правильно смотрите и видете - в документации косячина.

Бог с ним с F050 (который, как известно, NRND), но в переименованном F031 (сейчас Active) - такое же безобразие.

Срочно переходите на F030 ))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Спасибо всем участникам, я просто хотел лишний раз убедиться, что это не я глючу, а реальный баг даташита.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот нашел у себя табличку с переименованиями:

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

PS: Заменил седня на STM32F030F4P6 - полет нормальный, уарт завелся на PA2 и PA3, даже без изменения прошивки - влил просто ту, которая не работала на 050. Такие дела...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Заменил седня на STM32F030F4P6 - полет нормальный, уарт завелся на PA2 и PA3, даже без изменения прошивки - влил просто ту, которая не работала на 050. Такие дела...

Прекратите врать и на этом закончим... По иронии судьбы у меня на столе валяется именно STM32F050F4... Специально UART проверял...

Никто персонально для вас кристалл с изменённой топологией выпускать не будет...

Ещё раз... загляните в даташиты других семейств... везде - РА2-РА3... Можете и дальше настаивать на чудесах... :cranky:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

В одном месте на PA1 - RTS, в другом на PA1 - TX

 

проверяйте

http://www.st.com/web/en/resource/technica.../DM00065136.pdf

 

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

 

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

Если беспокоит высказывание типа

По серии экспериментов получается, что USART1 реально находится на PA1 и PA2

напишите "нет вы не правы, у меня такой кристалл на нем все Ок., ошибка в другом месте" и человек скажет вам спасибо, а вы....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не понимаю

Значит не дано... типа "Не шмагла!"(С)... такое тоже бывает... :laughing:

Сами проверьте... на каких ногах UART у STM32F050F4... а потом пытайтесь дерзить по пионерски... Не можете??? Тогда - что эхо в лесу...

Ошибку в даташите никто не отрицает... но это ничего не меняет... UART, как и положено, на РА2-РА3... если вам и в десятый раз не понятно... там не может быть по другому... как бы вы не упирались...

Изменено пользователем HHIMERA

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сами проверьте... на каких ногах UART у STM32F050F4...

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

 

Однако, соглашусь, что pin2pin по заявлениям ТС теряется, и это не какая-нибудь опечатка в документе - а очень серьезная железная проблема.

Тут я на стороне HHIMERы и присоединяюсь к просьбе проверить назначение ног аккуратно. К сожалению, STM32F050F4 в наличии у самого нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

На всякий случай кусок говнокодеса инициализации, который работает и на 030f4 и на 050f4:

	/* 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
[codebox] для длинного кода, [code] - для короткого!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Победила дружба!

Уфф, как камень с плеч. Теперь все встало на свои места.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...