tronix286 0 26 декабря, 2014 Опубликовано 26 декабря, 2014 · Жалоба Почему у меня РА2 - ТХ??? STM32F050F4... Не знаю, почему. А почему? По первой таблице из даташита - да, должно так и быть. А вот по второй таблице, где ремап пинов на альтернативные функции - уже не так. И на практике у меня так, как в таблице с ремапом. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HHIMERA 0 26 декабря, 2014 Опубликовано 26 декабря, 2014 · Жалоба на практике у меня так, как в таблице с ремапом. (рукалицо) Ага... STM запилили специально для вас "чудо-чип"... в единственном экземпляре... и сейчас смеются читая этот топик... Вот шалуны!!! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 26 декабря, 2014 Опубликовано 26 декабря, 2014 · Жалоба Не знаю, почему. А почему? По первой таблице из даташита - да, должно так и быть. А вот по второй таблице, где ремап пинов на альтернативные функции - уже не так. И на практике у меня так, как в таблице с ремапом. Косяк STM, ошиблись в документации. Придется вам выбрать новый микроконтроллер, из доступных в списках. А с этими дорожки перерезать, проводками перепаять. Программно USART сделать легко, если будет прерывание по таймеру с частотой, в 4 раза больше скорости передачи. Когда-то у Microchip была такая Application Note. Я делал, работало. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 26 декабря, 2014 Опубликовано 26 декабря, 2014 · Жалоба Что я смотрю не так и куда мне смотреть? Заглянуть сюда. А на самом деле все вы правильно смотрите и видете - в документации косячина. Бог с ним с F050 (который, как известно, NRND), но в переименованном F031 (сейчас Active) - такое же безобразие. Срочно переходите на F030 )) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tronix286 0 26 декабря, 2014 Опубликовано 26 декабря, 2014 · Жалоба Да, решили просто поменять контроллер на stm32f030f4p6, потому что все остальные ноги тоже заняты и резать дороги и паять МГТФ просто некуда. Можно было конечно программный УАРТ завести, почитал - это действительно очень просто, но решили не костылить и делать по феншую до конца. Спасибо всем участникам, я просто хотел лишний раз убедиться, что это не я глючу, а реальный баг даташита. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HHIMERA 0 26 декабря, 2014 Опубликовано 26 декабря, 2014 · Жалоба Да, решили просто поменять контроллер на stm32f030f4p6 И что изменится??? :laughing: Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 123 27 декабря, 2014 Опубликовано 27 декабря, 2014 · Жалоба Вот нашел у себя табличку с переименованиями: 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 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tronix286 0 27 декабря, 2014 Опубликовано 27 декабря, 2014 · Жалоба От перестановки мест слагаемое не поменялось - прям на сайте для STM32F031F4 эррата девственно чиста, в даташите точно такое-же несоответствие таблиц, что и у 050f4p6. http://www.st.com/web/catalog/mmc/FM141/SC...74/LN7/PF259776 PS: Заменил седня на STM32F030F4P6 - полет нормальный, уарт завелся на PA2 и PA3, даже без изменения прошивки - влил просто ту, которая не работала на 050. Такие дела... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HHIMERA 0 27 декабря, 2014 Опубликовано 27 декабря, 2014 · Жалоба Заменил седня на STM32F030F4P6 - полет нормальный, уарт завелся на PA2 и PA3, даже без изменения прошивки - влил просто ту, которая не работала на 050. Такие дела... Прекратите врать и на этом закончим... По иронии судьбы у меня на столе валяется именно STM32F050F4... Специально UART проверял... Никто персонально для вас кристалл с изменённой топологией выпускать не будет... Ещё раз... загляните в даташиты других семейств... везде - РА2-РА3... Можете и дальше настаивать на чудесах... :cranky: Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 28 декабря, 2014 Опубликовано 28 декабря, 2014 · Жалоба Не понимаю я чего эта химера такая борзая.... взял в яндексе написал название кристалла, открыл pdf с их сайта. Нажал поиск по PA1. И действительно в 2 местах этого pdf написано разное. В одном месте на PA1 - RTS, в другом на PA1 - TX проверяйте http://www.st.com/web/en/resource/technica.../DM00065136.pdf явная ошибка в описании, и повезло что первая таблица более правильна чем вторая. Я вот как программист смотрел бы на 2, настраивал бы альтернативные функции, и даже может начал бы просить поправить плату. У человека проблемы, и он видит неточность в описании, поделился этим с нами, за что ему большое спасибо. А вы уже 3 или 4 пост на него наезжаете без причинно. Это как-то не профессионально, мне кажется... Если беспокоит высказывание типа По серии экспериментов получается, что USART1 реально находится на PA1 и PA2 напишите "нет вы не правы, у меня такой кристалл на нем все Ок., ошибка в другом месте" и человек скажет вам спасибо, а вы.... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
HHIMERA 0 28 декабря, 2014 Опубликовано 28 декабря, 2014 (изменено) · Жалоба Не понимаю Значит не дано... типа "Не шмагла!"(С)... такое тоже бывает... :laughing: Сами проверьте... на каких ногах UART у STM32F050F4... а потом пытайтесь дерзить по пионерски... Не можете??? Тогда - что эхо в лесу... Ошибку в даташите никто не отрицает... но это ничего не меняет... UART, как и положено, на РА2-РА3... если вам и в десятый раз не понятно... там не может быть по другому... как бы вы не упирались... Изменено 28 декабря, 2014 пользователем HHIMERA Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 28 декабря, 2014 Опубликовано 28 декабря, 2014 · Жалоба Сами проверьте... на каких ногах UART у STM32F050F4... Действительно, HHIMERA разошлась) Нужно быть сдержаннее. Однако, соглашусь, что pin2pin по заявлениям ТС теряется, и это не какая-нибудь опечатка в документе - а очень серьезная железная проблема. Тут я на стороне HHIMERы и присоединяюсь к просьбе проверить назначение ног аккуратно. К сожалению, STM32F050F4 в наличии у самого нет. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
tronix286 0 29 декабря, 2014 Опубликовано 29 декабря, 2014 (изменено) · Жалоба Итак, прям щаз ради интереса запаял обратно 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); Изменено 29 декабря, 2014 пользователем IgorKossak [codebox] для длинного кода, [code] - для короткого!!! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 29 декабря, 2014 Опубликовано 29 декабря, 2014 · Жалоба Итак, прям щаз ради интереса запаял обратно 050 на плату - и... и работает на PA2, PA3.. Действительно, хоть и в грубой форме, но HHIMERA оказался прав. Победила дружба! Уфф, как камень с плеч. Теперь все встало на свои места. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 29 декабря, 2014 Опубликовано 29 декабря, 2014 · Жалоба Блин все всегда было на своих местах. И было весьма вероятно что у ТС ошибка, просто кое кому надо было не говном исходиться, а сказать что у него такой же камень и все работает на нужных ногах. Это кое кто сообщил даже не во 2 и не в 3 своем посте. В итоге человек даже микроконтроллер перепаял, потому что владельцы других сразу заявили что в них все Ок.... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться