Еноты и немного цифр. Все программаторы вам врут
И снова всем привет, не ждали? :-)
В предыдущих статьях (статья-1 и статья-2) я описал почти всё что можно было описать, но самую важную часть упустил из виду. Мало того - я эту часть упустил в целом, за всё время работы над проектом :-(
Даже не думал делать никаких сравнительных таблиц, но вот сегодня наткнулся на готовую таблицу от автора программы для 341 под линукс — IMSProg.
Немного подумав, решил, что сравнительная таблица всё‑таки нужна, и сделал на её основе свой вариант.
Внесены значительные изменения и убраны малозначимые пункты, по которым проводить сравнение нет смысла, ибо проекты довольно различаются по своей природе.
Полностью корректное сравнение провести невозможно, но максимально близкое получилось.
Огромная благодарность автору таблицы за проведенные тесты и готовый материал!
Часть первая - скорость работы.
В конце первой таблицы для наглядности так-же приведена скорость некоторых программаторов высокого класса. Но те приборы дают совсем другие возможности и за другой ценник. Поэтому в других таблицах они отсутствуют.
Внезапно оказалось, что даже упрощённая моя версия является достаточно быстрой, чтобы тягаться с ch347 на равных — а разница замечу у них в железе приличная.
У Свободного Енота USB1.1 12Mbps при частоте шины SPI в 6МГц, а у ch347 USB2.0 480Mbps при частоте шины в 60МГц!!!
Причина же в том, что хоть чтение и довольно быстрое, но данные чипы памяти по своей природе не могут быть быстро записаны, и сверху накладывается халатность разработчиков софта по части оптимизации (а может и косяки микросхемы/драйвера, этого я не знаю).
С увеличением объёма памяти чипа разрыв естественно будет пропорционально увеличиваться.
Часть вторая — аппаратные возможности.
Здесь комментарии излишни, думаю что и так всё понятно.
Остаётся уточнить только некоторые тонкости.
Первая — в открытую версию поддержку 1,8-вольтовых чипов действительно легко добавить дополнительным стабилизатором на 1,8в с переключателем. А если собрать по оригинальной схеме — все нужные цепи там уже есть, отсутствует только управление этими цепями из прошивки.
Схема и конфигурация ножек МК в прошивке позволяют работать при любом питании сигнальных цепей от 1,8в до 5в без применения внешних адаптеров. Управление питанием из прошивки частично вырезано, а если точнее — оставлено включение и выключение, но переключение 1.8/3.3 отсутствует.
При желании и переключение легко добавить в прошивку, или вынести на кнопку.
Вторая — усиленные выходы никуда не делись, они физически часть МК, потому шанс что это будет работать тоже достаточно высокий. В этом плане разница с полной версией только в том, что не предоставляется дополнительная диагностическая информация по типам возникающих ошибок, и нет защиты от перегрузки или неправильного подключения.
У ch347 есть версии как с 1,8в стабилизатором так и без него, потому и обозначено +/‑.
Но при внутрисхемной работе его большая скорость в неумелых руках сыграет с ним очень злую шутку, и сделает внутрисхемную работу ещё более сложной, чем с медленным 341, несмотря на увеличенную с 5mA до 8mA нагрузочную способность (указано в даташите).
Почему только в неумелых руках? Умелые руки знают как и зачем настроить частоту, но в основном имеют более серьезные программаторы.
Проблема же 341 при внутрисхемной работе — малая нагрузочная способность в 5mA из даташита.
По ezp2019/2023 — у них те же самые проблемы с нагрузочной способностью,
Current Source = 8mA, Current Sink = 12mA.
В еноте же Current Sink = 20+mA, а Currrent Source в 5–10mA обеспечивается только подтяжками, и может быть при необходимости увеличен до 30+mA включением пушпула.
Кроме этого есть несколько слаботочных ступеней, но они не используются за ненадобностью.
Часть третья и последняя — сравнение возможностей.
Здесь я поразвлекался и убрал малозначимые для обычного юзера пункты, и сверху добавил пару новых, чтобы было более корректно с учётом специфики работы с этими инструментами, операционными системами, типичными юзерами, их задачами и навыками с учётом используемой операционной системы.
Подробно остановлюсь пожалуй только на одном моменте — автор IMSProg ввёл пункт «отображение содержимого SFDP» и поставил там себе красивую галочку, а я это заменил на свой пункт, и забрал его галочку себе:D
А причина этого такова: содержимое регистра SFDP не нужно юзеру показывать, это не имеет для юзера никакого значения.
SFDP нужно разбирать на кирпичики, и подсовывать эти кирпичики из него как параметры в программатор, чтобы программатор нормально скушал микросхему даже при отсутствии оной в базе поддерживаемых микросхем. И я ранее честно предлагал автору свой вариант обработчика, но он меня почему‑то проигнорировал ¯\_(ツ)_/¯
Это ни в коем случае не значит что я выделываюсь и что мой софт лучше.
Скорее наоборот, шаг в сторону от стандарта — и полосатый уже не увидит чип вообще.
Возможность ручного выбора конкретной микросхемы у меня до сих пор не сделана, хоть и планировалась. При работе с 95% современных чипов это не мешает (примерно все что применяются в компьютерах и ноутбуках для хранения BIOS), но с остальными 5% устаревших или нестандартных работать он сейчас не умеет.
Поэтому он полностью единственным программатором в наборе быть пока не может.
Но наличие запасного 341 полностью перекрывает этот недостаток.
Я считаю это уместной сейчас ценой за простоту использования и скорость. А со временем и детские болезни все исправятся:‑)
Ещё забыл добавить, что стоимость готовых плат для изготовления открытой версии находится на уровне цены ch341, и прилично дешевле 347.
Возможности при этом не ограничены встроенной логикой. Довольно легко прикрутить любые другие функции и даже внешний софт для фанатов классики.
И напоследок предоставлю ссылки на эти таблицы.
Всем спасибо за внимание, надеюсь вам было интересно :-)