Комментарии 31
А если пошариться на сайте марсохода, то можно найти и программатор для ПЛИС Altera на этом же модуле.
Решил рассказать об этом в следующей статье, а то получается слишком много все за раз.
Я сел писать эту статью в 12 ночи и планировал написать обо всех опробованных мной способах применения FT232H, но написание затянулось до 2 и я сдался, оставив JTAG на следующий раз.
Много получилось в первую очередь для меня — давно не писал больших текстов на русском.
Прошу меня простить, в следующий подумаю еще разок, прежде чем садиться писать на Хабр перед сном.
Нельзя написать хорошую техническую статью меньше чем за 5-10 часов.
Согласен. Но бывает появляется вдохновение, садишься писать, пару часов пописал — выдохся, и дальше тащить тяжело, и бросить уже жалко. А тут просто победил сон. Постараюсь написать про JTAG-отладку более вдумчиво и начать не так поздно.
Курица по зёрнышку клюёт. Я пишу по нескольку часов каждый день. За неделю набегает статья.


Лично у меня на хорошую статью уходит минимум 3 дня, максимум недели три.
Минусуют видимо те, кто не пишут технических статей о пайке на хабр… Только девайс будет паять пару дней.
Я конечно не могу отвечать за всех, но минусуют скорее те, кому лень в ответ постить картинку с аккордеоном или подобным музыкальным инструментом.
Ну буду умнее, я тут не петросяна изображал, а просто подкрепил своё мнение картинкой.
Пусть эти минусующие теперь сходят вот сюда и почитают, что имел в виду этой картинкой автор мунусуемого комментария.
FPGA Xilinx тоже можно программировать. Проверено на семействе Spartan 6 — камень забитый на половину прошивается за 6-7 сек. Подробнее можно почитать здесь
PIC'и и сами шить умеются, взять какой-нибудь PIC18F25K50. Плюс не требуют кварца внешнего, а стоят — $2-3.
Ну это не интересно. Я про ISP полноценный для всего семейства.
По работе имею дело с этим чипом. Никак не могу понять, возможно ли реализовать получение прерываний от подчинённого устройства SPI? Хочется чтобы поток чтения с устройства приостонавливался до тех пор, пока не придёт прерывание от устройства (так оно сообщает о появлении новых данных). В документации о прерываниях говорится мало и в других режимах. Как получить прерывания по GPIO — не понятно.
Кто-нибудь знает?
А как именно физически реализован сигнал о прерывании? Если выставлением высокого\низкого уровня на ноге, то достаточно соединить её с любым свободным входом GPIO (ACBUS7 вполне подойдет), и периодически читать состояние этой ноги опкодом GPIOReadLB (0x81). Варианта с полной остановкой потока чтения я не знаю. В документации есть режимы Wait On I/O High/Low (опкоды 0х88 и 0х89), но их не использовал ни разу, поэтому ничего об их работе сказать не могу.
Путём подачи импульса прерывания, он не такой уж и длинный, постоянным чтением ноги его не поймать.
Я тоже надеюсь на этот режим ожидания I/O, проблема в том, что в документации сказано про «GPIOL1 (JTAG) or I/O1 (CPU)», но ничего не сказано про SPI. Похоже что для SPI такая команда недоступна, тогда всё печально.
Надо тестировать, возможно, команда работает во всех режимах, но в документации это не описано (она вообще не очень, честно говоря).
Опять же, можно написать напрямую в FTDI, есть ненулевая вероятность, что помогут.
Есть еще вариант использовать другой канал специально для ловли этого прерывания, но тут уже слишком большой оверхед получается.
Кстати, прерывания действильно успешно работают для MPSSE-режима (то есть и SPI), хотя об этом явно в документации не сказано. Работает на ножке GPIOL1.
Работат чётко, как указано в документации. То есть приостанавливает выполнение посланной ему последовательности команд до тех пор, пока не придёт прерывание на ножку.
Наверняка кому-нибудь это тоже интересно.
На мой взгляд, обзор характеристик устройств стоит дополнить, сказав, что буковка H в конце названия неспроста — эти чипы поддерживают USB Hi speed.
Ну и вообще, говоря, чипы весьма сильно между собой отличаются поддержкой различных режимов кроме MPPSE.
4-х портовый чип самый старый из тройки *H и особо не интересен, кроме самого факта наличия 4х портов.
А вот FT232H и FT2232H поддерживают режим синхронной передачи данных (FIFO synchronous mode), обеспечивающий скорость передачи порядка 30-35 мбайт/с — мы его используем для подключения разрабатываемых железяк к PC.
FT232H, кстати, самой новый из всех — у него получше временные характеристики и добавлен какой-то еще режим по сравнению с 2232H.
Согласен со всем, но для DIY-железа, на мой взгляд, скоростные характеристики не очень важны, а даташит на конкретный чип все равно потом читать придется. Но замечание резонное, спасибо.
Давно вот собираюсь такую дощечку прикупить, а то всяких JTAGов тучи разных и дорогих, а вот такой универсальный девайс был бы полезен.
Как то давно делал spi адаптер из сторой ftdi'ки, но в ней не хватало скорости, чтобы слать (почти)непрерывный поток на высоком битрейте. В 232H такой проблемы уже нет?
Ограничение неожиданное может быть со стороны USB-шины, которая может стать причиной разрывов в непрерывном потоке данных.
Буквально сегодня выяснил что чудо-устройство не поддерживает 1й и 3й режимы работы SPI. Это очень печально, ведь мне как раз 3й режим крайне необходим для работы. И как теперь быть?
В Интернете есть какие-то мутные упоминания о том, как это «частично» можно реализовать, но конкретных примеров я не нашёл.
Скажите, а вас можно нанять на то, что бы сделать готовую плату + подобрать софт для прошивки Winbond W25Q64?

SPI флешка впаяна на плату, программатор EZP2010 её то прошивает, то нет. Хочется что бы прошивал и не из под виндовс, а из под линукса/макоси.
Нанять меня сейчас нельзя, а вот посоветовать пару хороших ISP-программаторов с поддержкой Linux/OSX я могу:
1. MiniPro TL866A, если не пугает его китайское происхождение. А еще для него есть качественный открытый софт.
2. Dediprog SF-100, если не пугает его цена. В Linux/OSX он поддерживается утилитой flashrom.
Я тестировал оба, и ни разу ни один из них не отказался шить чип, находящийся на плате, что нередко бывает на более дешевых программаторах.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.