кто порбовал переходник на FT232B с памятью и без - с какими МК работали (и работало) ???
Просто я пробовал применить переходник с МК(смотрите выше) который поддерживает только UART(хотя по своей невнимательности думал что AT89C52 поддерживает USART ) а в http://radiokot.ru/circuit/digital/pcmod/05/ написано что "любому МК с модулем USART (или даже с программно реализованным USART'ом)" вот разница - синхронный и асинхронный. Вот нифига и не работало
asteroid7 писал(а):Да, работал и не плохо разобрался. Если что, спрашивай.
На все функции с префиксом W32_ я забил. Без них всё летает. Их для там какой то совместимости ввели. А если присмотреться, то большинство из основных дублируются W32_.
На счёт ftd2xx.lib я не знал. Тут у меня пробел. Так издавна сложилось, что под контроллеры пишу на C/C++, а под win в delphi. Показалось, что в связке удобнее проекты отлаживать. При открытие окна сразу видно для чего открыл. Так и повелось. К тому же, на delphi все основные компоненты в тексте, а под borland они же откомпилированные.
Ну и ещё один плюс за delphi, как в данном случае, ему тупо нужна только одна dll.
Два технических вопроса:
1) Ты использовал промежуточный буфер для хранения данных поступивших в порт или обрабатывал сразу или ждал пока в буфере не набирется определенное число или работал по таймауту?
2) У них там максимальная скорость FT_BAUD_921600 .. а до 1,5М или 2Мегабит раскочегарить реально?
asdvas писал(а):...Просто я пробовал применить переходник с МК(смотрите выше) который поддерживает только UART(хотя по своей невнимательности думал что AT89C52 поддерживает USART )
Реализация USART (синхронного) требует по мимо RXD и TXD еще одной ноги синхронизации. На схемах этого нет. В описании про синхронизацию ничего не сказано. Получается, что это чистый UART. Да и в продуктах этой фирмы нет ни одного синхронного ( http://ftdichip.com/FTProducts.htm )
Где то у вас есть ещё ошибка.
DeltaQ
Небольшая просьба, давайте общаться на Вы. Мы с вами пиво ещё не пили.
DeltaQ писал(а):
1) Ты использовал промежуточный буфер для хранения данных поступивших в порт или обрабатывал сразу или ждал пока в буфере не набирется определенное число или работал по таймауту?
Да, буфер на стороне компа обязательно. А как ловить конец пакета - да как удобнее. Можно по размеру, можно и по таймауту приёма, а можно и софтварный таймер запустить. В последнем плохо, что шаг 10-16 мс. Туда-сюда обмен медленный будет. Мне понравилось отлавливать по конечному байту.
DeltaQ писал(а):
2) У них там максимальная скорость FT_BAUD_921600 .. а до 1,5М или 2Мегабит раскочегарить реально?
Больше 921600 не пробовал, но в ДШ есть такое:
The FT232R supports all standard baud rates and non-standard baud rates from 183 Baud up to 3 Mbaud.
asteroid7 Да прошу прощения. Могу пояснить причину перехода. Как-бы при общении с человеком на "Ты" подразумевается что человек для тебя более уважаем. Обращение на "Вы" применяется когда человека не совсем уважаешь. Ну на Руси всегда на "Ты" обращались к богам, к предкам, друзьям, в общем к близким и уважаемым тобой людьми, а к нечистой силе или те от кого держаться по дальше на "Вы".
Ну раз вам не приятно прошу прощения. Спасибо за ответ.
По поводу скорости в ДШ прочел что скорость 3М они подразумевают для RS422 / RS485.
Data transfer rates from 300 baud to 3 Megabaud (RS422 / RS485 and at TTL levels) and 300 baud to 1 Megabaud (RS232).
Поясню почем я интересуюсь большими скоростями.. мне надо понять смогу ли я передавать данные с 12 разрядного АЦП (AD7896) Скорость преобразования у него 8 мкс.
Уважаемый asteroid7, может подскажете как же мне проверить, и главное понять что не так, все это дело. Может быть написать порграмму которая будет возвращать отправленные на контроллер какие либо данные ?? и если они придут в целостности и сохранности то можно сказать что - УУУУУура работает.
А вот получается как то странно: пробовал с МАХ232 и контроллер начинает что то видеть но идет какая то путаница , может быть попробовать МАХ 245(вроде) или МАХ 213 для сопряжения. А то складывается у меня ощущение что вся проблема в логических уровнях ?? (вопрос возникший по ходу дела : а как проверить уровни лог сигналов и понять что они согласуются ?)
Data transfer rates from 300 baud to 3 Megabaud (RS422 / RS485 and at TTL levels) and 300 baud to 1 Megabaud (RS232).
Поясню почем я интересуюсь большими скоростями.. мне надо понять смогу ли я передавать данные с 12 разрядного АЦП (AD7896) Скорость преобразования у него 8 мкс.
Мда.. Хитро они написали. Это из какого документа?
Из свежего ДШ на ft232r:
Data transfer rates from 300 baud to 3 Mbaud (RS422, RS485, RS232 ) at TTL levels.
Был макет под рукой, попробовал установить ей скорость 3000000 (FT_SetBaudRate). Версия dll 3.1.18.0. Сделал обычную RX-TX петлю. Отправил и принял несколько байт. Осциллографом реально скорость не смотрел, но если работает, то вам передать 2 байта 125000 раз в секунду хватает с избытком. А вот справится ли компьютер с таким потоком, это вопрос.
Осциллограф делаете?
Давно интересовался, как Velleman, выпускающий USB осциллографы делает их с выборкой 50MSample/sec, если у них стоит FT245 (1MByte/sec). Нашел на их форуме ответ. Они используют внутреннюю память на 4кБ, как буфер. А передают, соответственно, с меньшей скоростью.
asteroid7 Выписка из ДШ версии - FT232R USB UART I.C. Datasheet Version 1.04
Нет не совсем осциллограф... точнее подобие осциллографа тока для нейронов, заказчик пожелал видеть красивые фронты импульсов нейронов а это от 10кГц дискретизации как минимум (Просто заказчик так же произнес фразу о 100кГц от чего я немного офигел и задумался).
Подумываю о том на сколько возможно данная реализации.
Ну на счет, что дешевле: иногда на отладку устройства денег можно потратить намного больше, да и мс в разных радиомагазинах даже в пределах одного города могут существенно различаться по цене (в моем городе между двумя магазинами разница в цене может достигать 70 рублей), поэтому, если не стоит цели сделать что-то полезное своими руками, я сходил бы в радиомагазин и поинтересовался ценой на интересующие вас мс и сравнил, что дешевле: сделать самому или купить готовое.
А вот я правильно делаю, что соединяю напрямую выходы RXd TXd на переходнике с RXd TXd выходами на контроллере at89c52 ??? ну и землю делаю общую ?
Смотря что за переходник.
Уровни должны быть согласованы. У контроллера - TTL-UART, LOG1 - +5 В, LOG0 - 0 В. А вот в стандарте RS-232 LOG1 - от -3 до -15 В, LOG0 - от +3 до +15 В. Потому если переходник с преобразователем уровней - напрямую соединять нельзя...
Разница между теорией и практикой на практике гораздо больше, чем в теории.