lvd2 / ATM2-mcu

GNU General Public License v3.0
1 stars 1 forks source link

Версия 4.1 приводит к периодическим перезагрузкам при работе ком-порта и клавиатуры #2

Open Kulicheg opened 1 month ago

Kulicheg commented 1 month ago

Во время работы софта работающего с ком-портом в случайные моменты времени происходят неожиданные перезагрузки компьютера. Чаще всего перезагрузка случается при нажатий кнопки ENTER, после которых идет активный обмен данными, но иногда перезагрузки происходят просто в случайные моменты нажатия кнопок, предположительно в это время происходит полинг порта на наличие данных.

В версии 4.1 изменено определение на "n_movx equ 0", после пересборки прошивки с "n_movx equ 1" перезагрузки исчезли.

Примеры программ где наблюдается такое поведение:

lvd2 commented 1 month ago

А если клок понизить в ~2 раза на ВЕшку, всё равно? Или реже? Или не наблюдается?

lvd2 commented 1 month ago

Ну и добавлю, нужен разбор со стороны Z80 (почему именно перезагружается) и в идеале -- репродюсер бага: типа запустил прогу, нажал enter (автоповторы в клаве), а прога пишет когда случается ошибка (вариант - мигает бордером если очень часто). В т.ч. чтоб понять, как частота бага зависит от скорости Z80 (турбо -- нетурбо).

lvd2 commented 1 month ago

Не заметил сразу: если en_movx=1 то используется movx для показа байта спектруму. Иначе ручками пишется в P0, дёргается /VWR. P0 когда используется как IO -- открытый коллектор. Подтяжек в схеме нету. Это может быть причиной глюка. Какие серии мсх на шине VD0..VD7?

Kulicheg commented 1 month ago

Не заметил сразу: если en_movx=1 то используется movx для показа байта спектруму. Иначе ручками пишется в P0, дёргается /VWR. P0 когда используется как IO -- открытый коллектор. Подтяжек в схеме нету. Это может быть причиной глюка. Какие серии мсх на шине VD0..VD7?

Серия в основном 555. Резисторная сборка есть, в данном режиме без нее обмен практически не работает и сыпет артефактами, со сборкой обмен без ошибок, но при топтании кнопок во время обмена стабильные ребуты.

С включенным en_movx=1 все равно на подтяжку есть она или нет, стабильно работает. При топтании кнопок происходит порча данных, сдвиги, куски служебных данных, но не перезагрузки.