Search
Write a publication
Pull to refresh
310
22.1
Николай Шлей @CodeRush

Firmware Security Engineer

Send message
Код у FTDI, к сожалению, получается много хуже чем устройства.
Не думаю, что наткнулся бы на этот баг, ибо об использовании их библиотек даже мысли в голову не приходили — прямая работа с D2XX или libftdi не намного сложнее, но все равно спасибо огромное.
Если бы я сейчас покупал борду, купил бы BusBlaster v4, на котором, благодаря CPLD, можно эмулировать не только CoLink, но и черта лысого. :)
А отсюда можно понять, насколько SPI простой сам по себе.
Вышли тому, кто продемонстрирует на LCD, а то в консоли — это не спортивно.
Мой LCD сейчас на работе, а те, что доступны в «удаленной лаборатории» моего ПТУ, подключены к Stellaris Launchpad и Infineon XE167FM EasyKit, запуск Linux на которых — еще больший хардкор, а через мой драйвер дисплея это писать еще менее спортивно, чем в консоль.
Два символа: [b
И 2 совета:
1. Поставь в свою IDE плагин для проверки орфографии в комментариях и строках
2. Не оставляй комментариев на русском, пожалей наших англоязычных товарищей

Тоже вариант, только лучше тогда сразу на основе libftdi, чтобы с лицензиями проблем не было.
Надо будет проделать с подобным LCD все то же самое, только без собственных драйверов и через USB в рамках статей про FT232H.
Получится в разы проще, но и в разы менее хардкорно.
Пусть эти минусующие теперь сходят вот сюда и почитают, что имел в виду этой картинкой автор мунусуемого комментария.
Хабр — торт.
Кто там минусовал за Длинного за картинку с Боромиром и «нельзя просто так написать статью за 5 часов»? Стыдитесь.
Не соглашусь только, что I2C назван так за использование двух проводников. Двойка там — это на самом деле не «два», а «квадрат», а само I2C — это Inter-Integrated Circuit, но это несущественная мелочь.
В остальном — преклоняюсь. Сам разбил бы статью на десяток коротких заметок длиной в полгода, и еще не факт, что удалось бы закончить.
Процитирую соответствующий AN:
Full duplex data transfers can be made up to 30 Mbits/sec with the FT2232H
Было бы отлично, почитаю с большим удовольствием. Сам хотел делать на FT232H сниффер SMBus, но руки так и не дошли пока.
При работе с множеством разных (а часто очень-очень разных) МК одновременно выстроить в голове толковый эмулятор каждого у меня не получается, и без отладки в том случае было бы очень грустно. И уже было, когда мне попался доселе неизвестный Infineon XE167FM на ранее незнакомой архитектуре C166, а отладчика к нему не было. Зато был мануал на 2000 страниц и делайн до послезавтра.
Можно отлаживать и в уме, и это хорошее упражнение для начинающих при обучении работе с определенным МК с заранее известными ограничениями, багами и хитростями. Но если у тебя большой проект, сложный сам по себе, плюс на эту сложность накладываются определенные особенности МК (описанные либо на 1255 странице мануала, либо на 25 странице Errata sheet, который как раз обновили позавчера), то лучше, на мой взгляд, использовать все возможности по снижению нагрузки на мозг.
Без отладки, мне кажется, микроконтролеры можно попробовать, пару раз наткнуться на неожиданное для новичка поведение, сказать про себя «пошла она к черту, эта магия-шмагия», и больше к ним не возвращаться.
Прошивка — это не главное. Отладка намного важнее, да и boundary scan тоже весьма полезная вещь, если пользоваться уметь.
Надо тестировать, возможно, команда работает во всех режимах, но в документации это не описано (она вообще не очень, честно говоря).
Опять же, можно написать напрямую в FTDI, есть ненулевая вероятность, что помогут.
Есть еще вариант использовать другой канал специально для ловли этого прерывания, но тут уже слишком большой оверхед получается.
Согласен. Но бывает появляется вдохновение, садишься писать, пару часов пописал — выдохся, и дальше тащить тяжело, и бросить уже жалко. А тут просто победил сон. Постараюсь написать про JTAG-отладку более вдумчиво и начать не так поздно.
Странно тогда, что не Abaddon, если предположить, что порядок алфавитный.
Хотя, как вы яхту назовете, так она и поплывет, зачастую, поэтому пусть лучше будет Alchemist. :)
Согласен со всем, но для DIY-железа, на мой взгляд, скоростные характеристики не очень важны, а даташит на конкретный чип все равно потом читать придется. Но замечание резонное, спасибо.
А как именно физически реализован сигнал о прерывании? Если выставлением высокого\низкого уровня на ноге, то достаточно соединить её с любым свободным входом GPIO (ACBUS7 вполне подойдет), и периодически читать состояние этой ноги опкодом GPIOReadLB (0x81). Варианта с полной остановкой потока чтения я не знаю. В документации есть режимы Wait On I/O High/Low (опкоды 0х88 и 0х89), но их не использовал ни разу, поэтому ничего об их работе сказать не могу.
Я сел писать эту статью в 12 ночи и планировал написать обо всех опробованных мной способах применения FT232H, но написание затянулось до 2 и я сдался, оставив JTAG на следующий раз.
Много получилось в первую очередь для меня — давно не писал больших текстов на русском.
Прошу меня простить, в следующий подумаю еще разок, прежде чем садиться писать на Хабр перед сном.

Information

Rating
109-th
Date of birth
Registered
Activity

Specialization

Embedded Software Engineer, System Software Engineer
Lead