eddy_em: (Default)
[personal profile] eddy_em
Недавно начал глючить один из контроллеров термодатчиков на зеркале БТА: поработает минут 5, а потом начинает засорять шину (буквально флудит, не давая никому влезть) широковещательными командами "начать измерение температуры" (непонятно, с чего вообще эта дичь возникла). Вот, сел вчера радикально так заменил код USB на новый (о котором недавно писал), выкинул поддержку UART (ну его нафиг: больно тормозной). Сегодня поменял немного протокол, заменил базовый адрес идентификаторов на 0x680 (чтобы не пересечься случайно с какой-нибудь железкой на CANopen). Пока отлаживал, придумал еще несколько команд для удобства (в т.ч. "заткнись!" — чтобы контроллер ничего в шину не писал, пока разрешения не получит). Сам по себе USB-протокол оставил тем же, что и был (только запретил уже "широковещательные" команды). Как и раньше, если контроллер не находится в режиме "сниффера", реагирует лишь на посылки по его ID (а идентификатор равен 0x680 + номер, который перемычками на плате установили — от 0 до 15). Мастер (с номером 0) по умолчанию в роли "сниффера" выступает (чтобы и с другими устройствами в шине через него можно было общаться).
Поеду завтра на гору, перепрошью все шесть контроллеров. Заодно попытаюсь "глюкавого" найти — если он физически глючит, нужно будет заменить. Хотя, странно это: работает себе несколько минут, а потом вдруг начинается…
Репозиторий с кодом.

May 2025

S M T W T F S
    123
45678910
11121314151617
1819202122 2324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 23rd, 2025 09:37 pm
Powered by Dreamwidth Studios