Система управления ИК
Jan. 14th, 2015 08:31 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
За понедельник-вторник я распаял все элементы будущей системы управления.
Некоторые алгоритмы отлажу на старой плате, а потом уже перенесу код на эту и буду пытаться управлять спектрографом.
Надеюсь, следующая итерация будет еще не скоро: уж больно скучное это занятие — такую кучу точек (да еще и SMD) паять…
Некоторые алгоритмы отлажу на старой плате, а потом уже перенесу код на эту и буду пытаться управлять спектрографом.
Надеюсь, следующая итерация будет еще не скоро: уж больно скучное это занятие — такую кучу точек (да еще и SMD) паять…
no subject
Date: 2015-01-14 07:53 am (UTC)В дескрипторе же.
> P.S. А еще я потихоньку начал было реализовать 1-wire полуаппаратный (на таймере с DMA).
Гиблое дело имхо. Я уже кому-то пытался безуспешно доказать, что DMA необходимо для высокоскоростных трансферов, а для низкоскоростных это лишь костыли и лишний потенциал ошибки с возможностью завесить всю систему.
Но я понял причину проблемы - для сверхтормозного 1wire нарушается вся логика работы и значительно усложняются стейт-машины. Наиболее правильный метод на мое имхо - ртось и процесс для onewire.
Вот к примеру моя ртось (пока еще не пиарил в широких кругах, вылизываю код, пишу документацию):
https://github.com/alexeyk13/rexos/tree/master/example/stm32f1
В примере создается штук 7 процессов, DAC с DMA, температурный сенсор с АЦП, CDC ACM, проводится оценка производительности системы и еще чего-то по мелочевке. Чистого application кода на две страницы.
no subject
Date: 2015-01-14 08:22 am (UTC)Ничего там не "завешивается". А городить задержки nop'ами — извращение чистой воды. Как и UART использовать. Потому что получается, что на все время приема-передачи микроконтроллер занят. Некошерно как-то.
> начительно усложняются стейт-машины
Во-во. А я как раз систему управления решил сделать по принципу конечного автомата.
> ртось
Слишком сложно для такой элементарщины. Лучше аппаратно. На крайняк — сделать реализацию на отдельном STM8, который только 1-wire и будет заниматься.
> Вот к примеру моя ртось
Ох, ничего ж себе!!!
И сколько она отжирает флеша?
no subject
Date: 2015-01-14 08:45 am (UTC)Когда завесится, будет ад. Я убил неделю, прежде чем вдумчиво не прочитал errata.
> А городить задержки nop'ами — извращение чистой воды. Как и UART использовать. Потому что получается, что на все время приема-передачи микроконтроллер занят.
Совершенно верно. Поэтому в ртосях вместо nop управление передается для выполнения других задач или процессор уходит в спящий режим.
> Слишком сложно для такой элементарщины.
Ключевой вопрос в скорости разработки и возможности масштабирования. Касаемо сложности я бы поспорил. А еще такие плюшки как hardware abstraction. Например, у меня был случай, пришлось внезапно менять архитектуру, когда 50% софта уже было готово - замена заняла не больше полудня.
> И сколько она отжирает флеша?
~16 кб с базовыми драйверами под стм (gpio, power, timer, rtc, wdt, uart). Помимо драйверов это включает stdio и stdlib c полноценным printf/sprintf и менеджером динамической памяти.
~25 кб с композитным усб и библиотеками под него.
no subject
Date: 2015-01-14 09:14 am (UTC)no subject
Date: 2015-01-14 03:57 pm (UTC)