Так программатор запитывает плату по шине 3 вольта(если флешка трехвольтовая). Этого может хватить для развития любого сценария. Вплоть до включения платы, если программатор потянет.
Даже если плата не включится, то секция spi в мастере запитается.
Вариантов масса.
Бывает по питанию флешки ставят "нулевик", который может просто сгореть, если через него пойдет питание на всю плату.
Бывает по питанию флешки ставят диод, который не даст запитать плату, зато питание пойдет через защитные диоды линий данных.
Оба этих варианта на схеме ниже.
На этой же схеме, если запитать флешку от прищепки, то через нулевик запитается шина +3VSB. Ресет с хаба снимется(дежурка-то подана) и начнется чтение флешки.
Можно такой пример привести, если представить, что на шине два мастера(процессор на плате и программатор) одновременно начинают опрашивать флешку. Если один из них на линию данных выставит 1, а второй 0, то потечет сквозной ток. Или пусть это будет сигнал тактирования, программатор дает свой клок, мастер дает свой - конфликт уровней.
Поэтому нужно отправить мастера в сброс, чтобы его шина spi отключила выходные драйвера, тогда сквозного тока не будет. Это при условии, что выходные ключи при сбросе отключаются.
Единственное, что хочется отметить - подпаиваться к spi флешке на плате или использовать прищепку может быть небезопасно.
При подаче питания, в т.ч. от программатора, мастер на плате переведет выходные драйвера в режим пуш-пулл, а это чревато сквозными токами, т.к. программатор тоже использует пуш-пулл режим, произойдет так называемый конфликт уровней.
Если флешка запитана отдельным питанием(бывает и такое), то питание мастера и его домена на шине будет осуществляться через защитные диоды, что тоже чревато.
Чтобы безопасно использовать прищепку, мастера нужно запитать и отправить в “сброс”(что зачастую невозможно), чтобы его шина spi не была активна. Так что прищепку можно использовать на i2c шине и иже с ними, где не будет конфликтов, либо если заведомо известно, что конфликтов не будет.
Самый безопасный вариант - выпаивать флешку, иначе могут быть последствия.
Так же в модуле ax_debounce детектор фронтов реализован три раза: детектор обоих фронтов (DFF1^DFF2), button_posedge, button_negedge, плюс в проекте используются детекторы на шине i2c. Детектор фронтов можно вынести в отдельный подмодуль и использовать внутри ax_debounce. Можно и счетчик вынести, но декомпозиция кода в verilog отдельная тема. Плюсы в том, что каждый отдельный подмодуль удобнее отлаживать, переиспользовать и оптимизировать, чем один "begemoth" модуль. Плюс не смешивается логика разных уровней. И, что немаловажно, удобно смотреть во что синтезируется код каждого отдельного подмодуля и крутить у него ручки.
Еще заметил, что не хватает синхронизатора на входе кнопки.
В модуле ax_debounce счетчик реализован в виде конечного автомата? По-моему присутствует небольшой оверкилл. Отсюда и два вектора q_reg, q_next на один счетчик.
Почему не используете $clog2 для вычисления разрядности? Так в модулях появляются зависимые параметры. Если в проекте нет зависимых параметров – меняешь любой без головной боли, а если есть хоть один, то нужно помнить все или каждый раз лезть в код.
Я так понимаю много в каких марках авто используются и для них есть программаторы. Есть еще NCF29A1, NCF29A2, NCF29A4 по ним можно поискать чем и как шить.
Судя по отрисованной схеме 5 и 6 выводы используются для прошивки. Что-то мне подсказывает, что там i2c шина сидит, может ошибаюсь. По крайней мере не трудно проверить, просканировав шину. Предварительно проверив, что 5 и 6 выводы имеют подтяжку к питанию внутри корпуса, чтобы не коротнуть выводы, если они в пуш-пул режиме.
На корпусе A3XA5 маркировка NXP, это их чип. Только у них на сайте даташиты далеко не на все продукты в доступе. Может по применяемым алгоритмам удастся найти какую информацию.
Так программатор запитывает плату по шине 3 вольта(если флешка трехвольтовая). Этого может хватить для развития любого сценария. Вплоть до включения платы, если программатор потянет.
Даже если плата не включится, то секция spi в мастере запитается.
Вариантов масса.
Бывает по питанию флешки ставят "нулевик", который может просто сгореть, если через него пойдет питание на всю плату.
Бывает по питанию флешки ставят диод, который не даст запитать плату, зато питание пойдет через защитные диоды линий данных.
Оба этих варианта на схеме ниже.
На этой же схеме, если запитать флешку от прищепки, то через нулевик запитается шина +3VSB. Ресет с хаба снимется(дежурка-то подана) и начнется чтение флешки.
SPI Power
Можно такой пример привести, если представить, что на шине два мастера(процессор на плате и программатор) одновременно начинают опрашивать флешку. Если один из них на линию данных выставит 1, а второй 0, то потечет сквозной ток. Или пусть это будет сигнал тактирования, программатор дает свой клок, мастер дает свой - конфликт уровней.
Поэтому нужно отправить мастера в сброс, чтобы его шина spi отключила выходные драйвера, тогда сквозного тока не будет. Это при условии, что выходные ключи при сбросе отключаются.
del
Как похорошел реверс при ИИ)
Единственное, что хочется отметить - подпаиваться к spi флешке на плате или использовать прищепку может быть небезопасно.
При подаче питания, в т.ч. от программатора, мастер на плате переведет выходные драйвера в режим пуш-пулл, а это чревато сквозными токами, т.к. программатор тоже использует пуш-пулл режим, произойдет так называемый конфликт уровней.
Если флешка запитана отдельным питанием(бывает и такое), то питание мастера и его домена на шине будет осуществляться через защитные диоды, что тоже чревато.
Чтобы безопасно использовать прищепку, мастера нужно запитать и отправить в “сброс”(что зачастую невозможно), чтобы его шина spi не была активна. Так что прищепку можно использовать на i2c шине и иже с ними, где не будет конфликтов, либо если заведомо известно, что конфликтов не будет.
Самый безопасный вариант - выпаивать флешку, иначе могут быть последствия.
Основательная статья. Начало только продублировано, поправьте.
А, ну вот, все встало на свои места
Футпринт интересный, ни разу таких не видел. Это керамика?
Скрытый текст
Стрелка вращается в плоскости. Развернете во времени — получите спираль. Спроецируете спираль на плоскость — получите график синуса.
И даже напряжение в розетке, как только представите в комплексной форме и развернете во времени, имеет форму спирали.
Но и стрелка — это тоже проекция. Мне больше 3D интерпретация нравится, где синус — это проекция спирали на плоскость.
3D Sine Helix
Так они поди на заводе были смазаны
Скрытый текст
Все верно, за 1 щелчок энкодера будет инкремент или декремент ровно 1 раз. Как раз это и нужно.
ECW1J-C28-BC0024L
Можно гораздо проще сделать, без конечного автомата.
Положительный фронт на основном канале это всегда инкремент или декремент в зависимости от состояния второго канала. Все, весь алгоритм.
Step/dir по сути. Можно по отрицательному фронту, без разницы.
Это если модель как у вас, ECW1J-C28-BC0024L, а то бывают разные диаграммы работы у энкодеров.
Скрытый текст
Согласование i2c доставило)
Скрытый текст
Я как раз и имел в виду, что разрядность векторов должна автоматом вычисляться.
Вместо
Гораздо удобнее и нет зависимых друг от друга параметров:
Так же в модуле ax_debounce детектор фронтов реализован три раза: детектор обоих фронтов (DFF1^DFF2), button_posedge, button_negedge, плюс в проекте используются детекторы на шине i2c. Детектор фронтов можно вынести в отдельный подмодуль и использовать внутри ax_debounce. Можно и счетчик вынести, но декомпозиция кода в verilog отдельная тема. Плюсы в том, что каждый отдельный подмодуль удобнее отлаживать, переиспользовать и оптимизировать, чем один "begemoth" модуль. Плюс не смешивается логика разных уровней. И, что немаловажно, удобно смотреть во что синтезируется код каждого отдельного подмодуля и крутить у него ручки.
Еще заметил, что не хватает синхронизатора на входе кнопки.
В модуле ax_debounce счетчик реализован в виде конечного автомата? По-моему присутствует небольшой оверкилл. Отсюда и два вектора q_reg, q_next на один счетчик.
Почему не используете $clog2 для вычисления разрядности? Так в модулях появляются зависимые параметры. Если в проекте нет зависимых параметров – меняешь любой без головной боли, а если есть хоть один, то нужно помнить все или каждый раз лезть в код.
Нашелся
NXP NCF29A3
Я так понимаю много в каких марках авто используются и для них есть программаторы. Есть еще NCF29A1, NCF29A2, NCF29A4 по ним можно поискать чем и как шить.
Судя по отрисованной схеме 5 и 6 выводы используются для прошивки. Что-то мне подсказывает, что там i2c шина сидит, может ошибаюсь. По крайней мере не трудно проверить, просканировав шину. Предварительно проверив, что 5 и 6 выводы имеют подтяжку к питанию внутри корпуса, чтобы не коротнуть выводы, если они в пуш-пул режиме.
На корпусе A3XA5 маркировка NXP, это их чип. Только у них на сайте даташиты далеко не на все продукты в доступе. Может по применяемым алгоритмам удастся найти какую информацию.
Что-то вроде NCF29AG
Американцы так Mars Climate Orbiter потеряли. Вы обнаружили, они - нет)
Второе пришествие
В этих и подобных модулях прозрачный UART по BLE, нужно только автоконнект настроить.
Подал питание и работаешь как по проводу.