eddy_em: (Default)
eddy_em ([personal profile] eddy_em) wrote2024-12-26 04:48 pm
Entry tags:

Очередная железяка

Покуда автогидом заняться не могу (его элементарно все никак не соберут до окончательного варианта, чтобы я мог уже заняться управлением моторчиками и отладкой алгоритмов на стенде), разработал очередную железяку для СУ БТА: контроллер микрометра на основе холловского датчика "Novotechnik TFD-4000". Нужны эти железки для того, чтобы измерять толщину масляной пленки в азимутальном подшипнике БТА (минимум нужно в трех опорах измерять, но лучше во всех шести).

Датчик имеет аналоговый вход: от 0.25В на нуле до 4.75В на 14мм. Если магнит вне зоны Холла, на выходе 0 (удобно для детектирования проблем с магнитом). Сам датчик 12-битный. И тут опять та же дурь, как в случае с аналоговыми видеокамерами: сначала полученные с холла данные обрабатывает АЦП, а потом ЦАП наружу выдает напряжение. Почему нельзя было их сделать на цифровом интерфейсе — загадка. Вот, собственно, каждая такая маленькая плата и нужна для того, чтобы по CAN-шине передавать данные измерений. Использую встроенный АЦП STM32F103C6T6, а т.к. диапазон выхода с датчика выше, то делитель 1:2 на резисторах.
Паяю:

Пока "пап" type-C у меня нет, могу лишь испытать, как работает USB. А вот как приедут разъемы, буду CAN проверять. В принципе, там команд-то раз, два — и обчелся. А выдавал бы датчик сразу CAN или хотя бы RS-485 (пусть даже дебильный модбас, всяко сразу можно было бы к компу подключить), не пришлось бы почти неделю на эту фитюлину тратить. Вот так плата выглядит:

Уже когда собрался датчик припаивать, обнаружил, что я забыл нарисовать делитель, поэтому на соплях спаял временный. Все равно это — прототип (на станке отфрезеровали, лень мне заморачиваться с фоторезистом, да и "УФ"-осветитель что-то наполовину помер, надо прозванивать, какой из диодов сдох).

А дома намедни возился с "новой концепцией" USB: захотел выделить базисные файлы, общие для всего, а конкретное устройство задавать при помощи descriptors.c и usbdev.c (в первом, как следует из названия, дескрипторы и функция передачи дескрипторов, а во втором — специфичная для конкретного устройства часть кода). Но что-то "лыжи не едут": вроде, просто отрефакторил код для USB-CDC, а фигвам: поначалу, пока у меня был неправильный дескриптор, оно даже определялось (как USB-2C), а когда поменял все в соответствии с PL2303, даже энумерацию почему-то не стало проходить. Нужно таки подключать CH340, да отлаживать через UART на 3Мбодах.

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