|
XMega - FT232RL - PS |
|
|
|
May 15 2012, 20:51
|

Гуру
     
Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106

|
Господа помогите. Мозг уже плавится. Схема: Xmega <-> FT232RL <-> PS. Нужно по запросу от PS (путём посылки байта 0x40) получить от иксмеги 32MB данных. Прогу на PS пишу на Delphi. Передавать решил пачками по 512 байт (т.е. 65536 транзакций). Скорость сом порта 2Mb/s. Всё вроде работает, но есть один нюанс (напишу позже). Вот так открываю порт: Код var h:thandle; ... h:=fileopen('COM7',fmOpenReadWrite); ... Вот процедура вычитки сом порта (максимально упростил для наглядности): Код procedure BUF_read; var i,k:dword;B:byte; BUF:array [0..511] of byte; begin B:=$40; for k:=0 to $FFFF do begin _hwrite(h,@B,1); for i:=0 to 511 do _hread(h,@buf0[i],1); end; end; RXD и TXD наблюдаю осциллографом. Сразу после передачи писишкой байта 0x40 иксмега передаёт в ответ 512 байт затем пауза примерно 17ms и цикл повторяется. Откуда эта пауза берётся? Как от неё избавиться?
|
|
|
|
|
 |
Ответов
|
May 15 2012, 21:17
|

Гуру
     
Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106

|
Цитата(_Артём_ @ May 16 2012, 00:08)  Может watchdog сбрасывает? watchdog в мк выключен. Проблема в том что писишка следющий байт запроса (0х40) передаёт после паузы. Задержка именно в писишке. мк отвечает сразу и нужным количеством байт, писишка их успешно принимает но следующий запрос передаёт после паузы! Пробывал играться с таймаутами но ниче не меняется
|
|
|
|
Guest_@Ark_*
|
May 15 2012, 21:25
|
Guests

|
Цитата(zombi @ May 16 2012, 01:17)  ... Задержка именно в писишке... Вы ничего не сказали про управление потоком. Какие настройки для COM-порта в PC? И как управляете этими сигналами со стороны UART FT232?
|
|
|
|
|
May 15 2012, 21:32
|

Гуру
     
Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106

|
Цитата(@Ark @ May 16 2012, 00:25)  Вы ничего не сказали про управление потоком. Наверное никак не управляю. Тупо сижу и жду когда придут все 512 байт. Цитата(@Ark @ May 16 2012, 00:25)  Какие настройки для COM-порта в PC? Getcommstate(h,DCB); DCB.BaudRate:=2000000; Setcommstate(h,DCB); Цитата(@Ark @ May 16 2012, 00:25)  И как управляете этими сигналами со стороны UART FT232? Какими сигналами? и как оными управлять?
|
|
|
|
Guest_@Ark_*
|
May 15 2012, 21:42
|
Guests

|
Цитата(zombi @ May 16 2012, 01:32)  Наверное никак не управляю. Тупо сижу и жду когда придут все 512 байт. Getcommstate(h,DCB); DCB.BaudRate:=2000000; Setcommstate(h,DCB); На счет Дельфи я Вам не подскажу, но желательно выставить режим порта 'без управления потоком', если этот механизм никак не используете. В принципе, винда (если речь о ней) может давать задержки от 10мс до 300мс (иногда и более), Вас ни спрашивая ни о чем, и ни о чем не уведомляя... Не реал-тайм эта система - имеет право, как говориться...
Сообщение отредактировал @Ark - May 15 2012, 21:44
|
|
|
|
|
May 15 2012, 21:57
|

Гуру
     
Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106

|
Цитата(@Ark @ May 16 2012, 00:42)  В принципе, винда (если речь о ней) О ней родимой. windows 7 Цитата(@Ark @ May 16 2012, 00:42)  На счет Дельфи я Вам не подскажу, но желательно выставить режим порта 'без управления потоком', если этот механизм никак не используете. Надо будет поискать что это за режим. Цитата(@Ark @ May 16 2012, 00:42)  В принципе, винда (если речь о ней) может давать задержки от 10мс до 300мс (иногда и более), Вас ни спрашивая ни о чем, и ни о чем не уведомляя... Не реал-тайм эта система - имеет право, как говориться... Настораживает завидное постоянство задержки ~17ms. Хотя небольшая девиация имеется ~0.4ms. При общем периоде транзакций ~20ms. Не может ли это быть как-то связано с RTC писишки? что то когдато слышал про какието вродебы 18ms?
|
|
|
|
Сообщений в этой теме
zombi XMega - FT232RL - PS May 15 2012, 20:51      @Ark Цитата(zombi @ May 16 2012, 01:57) Настор... May 15 2012, 22:11       zombi Цитата(@Ark @ May 16 2012, 01:11) Но нужн... May 15 2012, 22:28        @Ark Цитата(zombi @ May 16 2012, 02:28) Дык, с... May 15 2012, 22:39 V_G А вы попробуйте какой-нибудь терминалкой принять ф... May 15 2012, 22:55 @Ark Цитата(V_G @ May 16 2012, 02:55) А вы поп... May 15 2012, 23:12 V_G Так у топикстартера и есть двусторонний обмен, хот... May 16 2012, 01:07 dimka76 Цитата(V_G @ May 16 2012, 04:07) ....... ... May 16 2012, 05:04 AHTOXA Я может, что-то не понял, но при чём тут винда воо... May 16 2012, 03:42 V_G Нет, как раз пауза 17 мс может быть вызвана как то... May 16 2012, 03:59 zombi УРА! Нашел эту самую злополучную задержку... May 16 2012, 05:27 V_G Цитата(zombi @ May 16 2012, 16:27) Кстати... May 16 2012, 05:37  zombi Цитата(V_G @ May 16 2012, 08:37) У вас в ... May 16 2012, 05:45 dimka76 Цитата(zombi @ May 16 2012, 08:27) Как же... May 16 2012, 09:06  zombi Цитата(dimka76 @ May 16 2012, 12:06) Если... May 16 2012, 09:48 ReAl Цитата(zombi @ May 16 2012, 08:27) Постав... May 16 2012, 10:34  zombi Цитата(ReAl @ May 16 2012, 13:34) ...уста... May 16 2012, 18:01   ReAl Цитата(zombi @ May 16 2012, 21:01) Но у м... May 16 2012, 19:49    zombi Аглицкий со словарём и то со скрипом.
Цитата(ReAl ... May 16 2012, 20:16 XVR Вы когда отправляете запрос с ПС на МК пишете 1 ба... May 16 2012, 05:51 zombi Цитата(XVR @ May 16 2012, 08:51) Вы когда... May 16 2012, 06:13  XVR Цитата(zombi @ May 16 2012, 10:13) А где ... May 16 2012, 06:28   zombi Цитата(XVR @ May 16 2012, 09:28) тут и ту... May 16 2012, 06:35 XVR Еще тут посмотрите May 16 2012, 06:48 zombi Цитата(XVR @ May 16 2012, 09:28) тут и ту... May 16 2012, 07:07  XVR Цитата(zombi @ May 16 2012, 11:07) Шото н... May 16 2012, 09:53   zombi Цитата(XVR @ May 16 2012, 12:53) Я тоже, ... May 16 2012, 10:04 V_G Как вариант, настроить буфер на 64 байта и плюнуть... May 16 2012, 07:07 zombi Цитата(V_G @ May 16 2012, 10:07) Как вари... May 16 2012, 07:25
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|