По сути, на всех. Но в основном - на управляющих: BC1 (адрес/данные), BDIR (запись выставленных данных на параллельную шину). Кстати заметил интересный прикол. Каждые 20 мс (50 Гц), в независимости от того, есть ли данные или нет, все равно происходит скачек выводов параллельной шины данных). Теперь я примерно представляю, как вы организовали прослойку работы с чипом).
Важный момент. Вы дергали одновременно BDIR и BC1 (когда выбирали регистр). Т.к. я выводы выбрал вразброс, то думал, что нет разницы, в какой последовательности выставлять единицу. Оказалось, разница есть. Распишу, вдруг кому пригодиться.
Для выбора регистра (R0-R15) нужно:
1. BDIR =0, BC1 =0 (Должно быть по-умолчанию, но на всякий случай, повторно выставляю).
2. Выставляем на параллельную шину адрес регистра (играют роль младшие 4 бита, старшие 4 = 0).
3. Потом BC1 = 1.
4. BDIR = 1.
5. BDIR = 0.
6. BC1 = 0.
Для записи данных в уже выставленный регистр нужно.
1. BDIR = 0, BC1 = 0 (так же, должно быть по-умолчанию, но на всякий случай выставляю).
2. Выставляем данные на шину.
3. BDIR = 1.
4. BDIR = 0.
Только так будет работать. BDIR = строб. BC1 - регистр/данные. BC2 всегда = 1, A8 всегда = 1 (если не пользоваться чтением из чипа, что для моих целей, излишне). При этом, при скорости в 8 МГц никаких задержек делать не нужно (между выставлением данные и/или адреса регистра).
Теперь, когда работа с чипом поднята, могу приступить к дальнейшей разработке. Жду платку с STM32F429ZIT6 (нужно графическое ядро в маленьком корпусе, и железа, чтобы про запас). Так на девайс большая нагрузка. Если смогу оптимизировать код по времени то пару фич на основе нейро сети запихаю.





Ответить с цитированием
