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

 
 
> STM32F4 USART посылка данных, Не отсылаются все байты
BlackOps
сообщение May 26 2013, 18:04
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 618
Регистрация: 7-06-08
Из: USSR
Пользователь №: 38 121



вот моя настройка УСАРТ:
CODE
uint32_t config_usart3(void)
{

//=============================================================================
// USART3 Related configuration
//=============================================================================
// enable clock
RCC->APB1ENR |= RCC_APB1ENR_USART3EN;


// 1) Setting UE, amd M bits
USART3-> CR1 |= 0x2000; // UE = 1

// 2) Programming number of stop bits if needed


// 3) Enable DMA if needed


// 4) set the Baud Rate
// BAUD = fck / ( 8 * (2 - OVER8) * USARTDIV )
// fck = 42MHz,
// OVER8 = 0
// Choose BAUD = 115200
// then: USARTDIV = fck / ( 8 * (2 -OVER8) * BAUD = 22.75
// BRR = (22 << 4) | ( 0.75 * 16) = 364,
// or: BRR = fck / BAUD = 42MHz / 115200 = 364
USART3->BRR = 364;


// enable transmitter
USART3->CR1 |= USART_CR1_TE;

// enable receiver
USART3->CR1 |= USART_CR1_RE;

return 0;
}



а вот собственно код отсылки:
CODE
uint8_t mem_read_gyro(USART_TypeDef *USART_ID )
{

int i=0; // loop var


//send read buffer to USART
for(i=0;i<=17281024;i++)
{
// check if TXE bit is set
while((!(USART_ID->SR & USART_SR_TXE)) );


USART_ID->DR = 0x5d;//mem_gyro_buf[i]; // sending a byte
// check if TC bit is set
while((!(USART_ID->SR & USART_SR_TC)) );

}



return 0;
}



как видите проверяю TC и TXE, цикл ожидания бесконечный, так что если с битами была бы проблема код застрял бы на цикле. Но в моем случае вся функция исполняыется в коде успешно, но когда проверяю на компе то программа регистрирует меньшее количество байт например: 15 547 966(столько же байт и вижу в бинарном файле), а должно 17 281 024 байт.

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

в чем тут еще может быть проблема? вот настройки терминала:
Baud:115200
DataSize: 8
parity: none
Handshake: off
mode: free



что тут еще может быть нетак?

Сообщение отредактировал IgorKossak - May 26 2013, 18:27
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!!!


--------------------
Нажми на кнопку - получишь результат, и твоя мечта осуществится
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
BlackOps
сообщение May 27 2013, 17:34
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 618
Регистрация: 7-06-08
Из: USSR
Пользователь №: 38 121



а вот и то как ФТДИ это описывает: http://www.ftdichip.com/Support/FAQs.htm#HwGen3
CTS/RTS у них впрямь не работает как положено!

а именно:
Цитата
"If CTS# is logic 1 it is indicating the external device cannot accept motre data. the FTxxx will stop transmitting within 0~3 characters, depending on what is in the buffer.

This potential 3 character overrun does occasionally present problems. Customers shoud be made aware the FTxxx is a USB device and not a "normal" RS232 device as seen on a PC. As such the device operates on a packet basis as opposed to a byte basis."


это думаю все и обЪясняет, правда данная ситуация описывала вариант где ФТДИ отправлял данные прибору, но думаю аналогичное тогда будет верно и в обратном случае.

Побродил по форумам Silabs, увидел аналогичную тему тоже, и аналогичное описание проблемы с CP2102.

Так что, мне кажется тут два пути:

1) усложнить отправку и протоколизировать как вы сказали

2) просто добавить задержку после отправки скажем каждых 256 байт с СТМ32, в конце концов все эти побочные эффекты из-за того что переходник не может принять быстрый поток байт, т.е. просто сделать поток медленным должно сработать.


--------------------
Нажми на кнопку - получишь результат, и твоя мечта осуществится
Go to the top of the page
 
+Quote Post
DmitryM
сообщение May 27 2013, 17:41
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840



Цитата(BlackOps @ May 27 2013, 21:34) *
а вот и то как ФТДИ это описывает: http://www.ftdichip.com/Support/FAQs.htm#HwGen3

Не сходится про отправку wink.gif
If RTS# is logic 0 it is indicating the FTxxx device can accept more data on the RXD pin.
If RTS# is logic 1 it is indicating the FTxxx device cannot accept more data.
RTS# changes state when the chip buffer reaches its last 32 bytes of space to allow time for the external device to stop sending data to the FTxxx device.
Цитата
1) усложнить отправку и протоколизировать как вы сказали

Вот это надежнее
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- BlackOps   STM32F4 USART посылка данных   May 26 2013, 18:04
- - Flexz   А что именно на принимающей стороне? какая ОС, com...   May 26 2013, 18:22
- - BlackOps   вот кабель который я использую, USB-FTDI cable : ...   May 26 2013, 19:01
|- - mdmitry   Цитата(BlackOps @ May 26 2013, 23:01) вот...   May 27 2013, 16:52
- - BlackOps   я решил проверить какое минимальное количество бай...   May 26 2013, 21:00
- - Genadi Zawidowski   Попробуйте мою терминалку. Настройки - Alt+F3. Нач...   May 26 2013, 21:25
- - BlackOps   не могу запустить программу Вашу, говорит: telnet3...   May 26 2013, 21:47
- - Genadi Zawidowski   Похоже было обе 64-х битных версии... Скомпилирова...   May 26 2013, 21:55
- - BlackOps   значок поменялся, появилась иконка у программы, но...   May 26 2013, 22:13
- - BlackOps   я просто не понимаю в чем еще там может быть пробл...   May 27 2013, 02:27
- - BlackOps   я например понимаю если бы это был прием данных бо...   May 27 2013, 05:27
- - Golikov A.   буфер со стороны компа где то килобайта 2. Какие б...   May 27 2013, 05:46
- - BlackOps   я сейчас сделал именно так как вы сказали, соедени...   May 27 2013, 06:11
|- - DmitryM   Цитата(BlackOps @ May 27 2013, 10:11) я с...   May 27 2013, 06:20
- - BlackOps   замкнул контрольные пины тоже, проверил, с контрол...   May 27 2013, 06:36
|- - DmitryM   Цитата(BlackOps @ May 27 2013, 10:36) зам...   May 27 2013, 07:33
|- - ar__systems   Цитата(BlackOps @ May 27 2013, 01:36) зам...   Jun 8 2013, 12:17
- - BlackOps   Xon/Xoff режим вообще делает так что программа тер...   May 27 2013, 07:43
|- - DmitryM   Цитата(BlackOps @ May 27 2013, 11:43) Xon...   May 27 2013, 09:34
- - Golikov A.   Погодите погодите! когда вы замыкаете контрол...   May 27 2013, 10:02
|- - BlackOps   Цитата(Golikov A. @ May 27 2013, 15:02) П...   May 27 2013, 10:13
- - BlackOps   еще такой вопрос, для того чтоб стм32 использовал ...   May 27 2013, 10:05
- - Golikov A.   есть хороший терминал, называется com terrminal v1...   May 27 2013, 10:07
- - Golikov A.   А... прошу прощения, я думал у вас так и сделано, ...   May 27 2013, 10:18
- - BlackOps   нет.., у меня плата Stm32Discovery, и от нее прово...   May 27 2013, 10:21
- - Golikov A.   Ножки РТС/CTR это ножки уровня прибора. То есть эт...   May 27 2013, 10:23
- - BlackOps   так вот ворос тогда: в моем случае ФТДИ если набир...   May 27 2013, 10:24
- - Golikov A.   Все тогда я все правильно понял.... странно конечн...   May 27 2013, 10:27
- - BlackOps   странно... вот это например из мануала СТМ32 Цитат...   May 27 2013, 10:27
- - Golikov A.   если бы ФТДИ был конечным прибором, то да. Но фтди...   May 27 2013, 10:32
- - BlackOps   а как насчет ругих решений которые нормально работ...   May 27 2013, 10:39
|- - DmitryM   Цитата(BlackOps @ May 27 2013, 14:39) исх...   May 27 2013, 16:54
- - Golikov A.   У меня всегда УАРТ был с протоколом. Обычно РС485+...   May 27 2013, 10:57
|- - vptr   Цитата(BlackOps @ May 27 2013, 20:34) Так...   May 28 2013, 11:00
- - Golikov A.   странно это вообще... неужели если это переходник...   May 28 2013, 05:58
- - Сергей Борщ   QUOTE (BlackOps @ May 27 2013, 13:05) еще...   May 28 2013, 06:25
- - Dopler   Удивительные вещи народ рассказывает про компьютер...   Jun 7 2013, 20:01
|- - Golikov A.   Цитата(Dopler @ Jun 8 2013, 00:01) Удивит...   Jun 9 2013, 18:51
|- - vptr   Цитата(Dopler @ Jun 8 2013, 00:01) Удивит...   Jun 10 2013, 11:53
- - Golikov A.   может у них 2090-ые, параллельная реальность... в...   Jun 10 2013, 17:13
|- - vptr   Цитата(Golikov A. @ Jun 10 2013, 21:13) м...   Jun 10 2013, 20:32
||- - Сергей Борщ   QUOTE (vptr @ Jun 10 2013, 23:32) максима...   Jun 11 2013, 06:07
|- - jcxz   Цитата(Golikov A. @ Jun 10 2013, 23:13) м...   Jun 11 2013, 04:20
- - Golikov A.   через драйвер или как виртуальный ком порт? А у м...   Jun 11 2013, 05:16
|- - jcxz   Цитата(Golikov A. @ Jun 11 2013, 11:16) ч...   Jun 11 2013, 08:20
||- - Golikov A.   Цитата(jcxz @ Jun 11 2013, 12:20) Драйвер...   Jun 11 2013, 08:58
|- - Dopler   Цитата(Golikov A. @ Jun 11 2013, 09:16) ч...   Jun 12 2013, 12:40
|- - jcxz   Цитата(Dopler @ Jun 12 2013, 18:40) COM-п...   Jun 12 2013, 17:36
|- - Dopler   Цитата(jcxz @ Jun 12 2013, 21:36) Здорово...   Jun 12 2013, 19:10
|- - jcxz   Цитата(Dopler @ Jun 13 2013, 01:10) ADUM4...   Jun 13 2013, 07:14
- - Golikov A.   езернет оптику! 100% развязка от всего) Пра...   Jun 12 2013, 20:45
|- - Dopler   Цитата(Golikov A. @ Jun 13 2013, 00:45) х...   Jun 13 2013, 08:01
- - Golikov A.   ну я бы говорил прикинуться Масс Тораже - то есть...   Jun 13 2013, 12:45


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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