eddy_em: (Default)
eddy_em ([personal profile] eddy_em) wrote2024-09-04 04:46 pm

И опять термодатчики

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

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org