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

Проблемы с FT232BM

Сделал устройство FT232BM + ATMega8535.

Работают на скорости 0.5 Mbit (такт МК 4MHz).

 

Когда связь идет без аппаратного flow control - все идеально. Только на больших объемах данных (порядка 10кб от МК в компза одно обращение) глохнет.

Сделал flow control CTS/RTS:

 

// прием байта из USART
byte uartBufferGetchar ( void )
{
byte data;

RTS = 1;        // МК готов к приему 

// ждем прихода символа
// Если UCSRA.RXC == 0 - символа нет
while ( UCSRA.RXC == 0 );

// считать принятый байт из регистра данных USART
data = UDR;

RTS = 0;        // МК не готов к приему 
return data;
} // uartBufferGetchar

// передача байта в USART
void uartBufferPutchar ( byte c )
{
// ждать опустошения буфера передатчика
while ( UCSRA.UDRE == 0 );

// ждать готовности FT232BM
// CTS == 1 - FT232BM готова к приему, 0 - не готова;
while ( CTS == 0 );

UDR = c;
} // uartBufferPutchar

 

Реакции - ноль.

FT232 конфигурируется так:

    // RTS/CTS flow control
    ftStatus = FT_SetFlowControl ( ftHandle, FT_FLOW_RTS_CTS, 0, 0 );
    if ( ftStatus != FT_OK )
    {
        FT_Close ( ftHandle );
        printf ( "FT_SetFlowControl failed \n" );

        return 1;
    } // if

 

В чем беда? Не пойму.

Смотрел примеры, вроде также...

 

Еще одна трабла непонятная.

 

Когда к девайсу не обращаешься минут 20 (примерно, точно не засекал), оно не отвечает.

FT_OpenEx/FT_Open дает ошибку.

Приходится отключать и повторно включать USB разъем.

 

Это что все USB девайсы такие? у меня есть USB-мыша. Тоже отключается. только не через 20 мин, а когда как.

 

На FT стоит EEPROM. Питание от шины.

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


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

Что ьам с flow control, не знаю, а по поводу отключения проверь, как сконфигурено в PC управление питанием, не разрешено ли отключать USB устройства при паузе.

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


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

Возможно Ваши проблемы не в программе, а в помехах по шине USB. Сам налетал на подобное, првда с FT245BM.

Рекомендации от FTDI: http://www.ftdichip.com/Support/Knowledgeb...5workwhenco.htm полностью решили проблему, да и в любом случае на мой взгляд стоит использовать эту рекомендацию.

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


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

Спасибо.

Управление питанием нашел, повыключал галочки "Разрешать отключать ...".

Если не поможет, буду ставить эти кондеры по FTDI-шным рекомендациям.

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


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

Для справки: у меня переходник COM-USB на PL2303, купленный в магазине, тоже отключается через 20 минут.

И второе: аппаратный флоу контролл в виндах работает как-то коряво, он выставляет сигнал RTS и все... это я когда делал переходник rs232-rs485 напоролся( может просто плохо вкурил тему), но в итоге я сделал свой переходник без управления RTS.

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


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

была такая трабла...это помехи вырубают фтшку...драйвер криво писан...помехи рублю так....RC цепочка 50 Ом и 360 пФ последовательная....резистор на данные конденсатор на землю...пики срубает на три пятнадцать и не давит скорость передачи...

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

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


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...