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

 
 
 
Reply to this topicStart new topic
> ft232h в режиме синхронного FIFO, прошу тех, кто знает, помочь
billidean
сообщение Oct 15 2017, 17:47
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 238
Регистрация: 4-10-10
Из: г. Екатеринбург
Пользователь №: 59 925



Привет всем.

Делаю управление ПЛИСкой со стороны ПК с применением FT232H в режиме синхронного FIFO. Данные могут быть от одного до 1000 байт.
В сторону ПЛИС данные идут стабильно, ПЛИС их читает, все нормально.
Но вот обратно из ПЛИС не получается выдать ни одного байта ((

Вроде все делаю стандартно:
- проверяю TX# чтобы был 0
- ставлю WR#=0 и на каждом такте CLK (от FTDI) подставляю байты
- по окончании данных ставлю WR#=1

...Пока пытаюсь передать 4 байта.

На ПК код такой:
Код
    ftStatus = FT_Write(ftHandle, byOutputBuffer, dwNumBytesToSend, &dwNumBytesSent);
    if( (ftStatus != FT_OK) || (dwNumBytesSent != dwNumBytesToSend) ) // Did the write-command execute OK?
    {
        mdebug("Error in FT_Write");
        return -1; // Exit with error
    }

        while(1)
        {
            qApp->processEvents();

//            ftStatus = FT_GetStatus(ftHandle,&RxBytes,&TxBytes,&EventDWord);
            ftStatus = FT_GetQueueStatus(ftHandle,&RxBytes);
            if( (ftStatus != FT_OK) ) // Did the FT_GetStatus-command execute OK?
            {
                mdebug("Error in FT_GetStatus");
                return -1; // Exit with error
            }

            mdebug("RxBytes=" + QString::number(RxBytes) + "\tTxBytes=" + QString::number(TxBytes) + "\tEventDWord=" + QString::number(EventDWord));
            Sleep(1000);

            // проверяем наличие данных в приемном буфере микросхемы
            if (RxBytes > 0)
            {
                ftStatus = FT_Read(ftHandle,RxBuffer,RxBytes,&BytesReceived); // по этой команде считываем данные
                                                                              // из микросхемы, RxBuffer содержит сами данные,
                                                                              // RxBytes — количество доступных для чтения данных,
                                                                              // BytesReceived — число принятых данных
                if (ftStatus == !FT_OK)
                {
                    mdebug("Error in FT_GetStatus");
                    return -1; // Exit with error
                }
                else
                {
                    mdebug("Data is OK");
                    return 0;
                }
            }
        }


Сигналтапом в ПЛИСке вижу, что сигналы TX# и WR# имеют запланированные уровни. Но прога на ПК висит в цикле и пишет, что RxBytes = 0.

Все связи прозвонил...уже не знаю, к чему придраться...

Кто работал с такими микросхемами, подскажите плз, что может быть не так у меня.

Буду очень благодарен за рабочие проектики по подобной теме.

Прикрепленное изображение

Вот картина на сигналтапе, здесь я пытаюсь выдать 12 байт 0xFF (не спрашивайте зачем...так надо)
Видно, что циклограмма "рабочая"...

...но ПК не видит данных в буфере FT232H...
Go to the top of the page
 
+Quote Post
billidean
сообщение Oct 16 2017, 07:19
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 238
Регистрация: 4-10-10
Из: г. Екатеринбург
Пользователь №: 59 925



Ахахахах...как часто бывает, причина - плохой контакт/непропай sm.gif

Получилось так, что соединив платы ПЛИС и FTDI я прозвонил все линии между платами (с обратной стороны разъемов)...и делал это раза три...

Сегодня к плате FTDI подцепил еще одну ПЛИСку с проектом АЛЯ-осциллограф и увидел, что сигнал WR# не приходит на FTDI, хотя сигналтап на ПЛИСке-отправителе присуствовал...
Не знаю, может порт вылетел или еще чего, но особо выяснять не стал, взял перекинул линию на другой порт...и всё стало норм.

Всем спасибо за советы и удачи ))

UPD:

Позже перепаялся обратно, все стало нормально.

Т.е. получилось так, что для прозвонки контакта между штекером разъема и проводом хватало, а вот для нормальной передачи короткого импульса - не хватало.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th November 2017 - 12:12
Рейтинг@Mail.ru


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