eddy_em: (Костерок)
eddy_em ([personal profile] eddy_em) wrote2015-01-14 08:31 am

Система управления ИК

За понедельник-вторник я распаял все элементы будущей системы управления.
Некоторые алгоритмы отлажу на старой плате, а потом уже перенесу код на эту и буду пытаться управлять спектрографом.
Будущая система управления
Вид с лицевой стороны

Будущая система управления
Вид с обратной стороны

Надеюсь, следующая итерация будет еще не скоро: уж больно скучное это занятие — такую кучу точек (да еще и SMD) паять…

[identity profile] mbr.livejournal.com 2015-01-14 06:36 am (UTC)(link)
А чего не все SMD?

Транзистор - контакты перепутал или так и задумано?

[identity profile] eddy-em.livejournal.com 2015-01-14 06:58 am (UTC)(link)
ADM233 в SMD не нашел, с силовыми ключами тоже промухал (позже узнал, что есть, оказывается, мощные SMD-ключи), а вот драйверы шаговиков (L6208N) в SMD-исполнении не существуют — мощность рассеиваемая не та.

> Транзистор - контакты перепутал или так и задумано?
То — не транзистор, а "кренка". Перепутал. И слева в черной термоусадке импульсник RO1224 тоже на проводах висит, т.к. ноги перепутал. В следующей итерации схемы уже исправил это, но платы-то уже заказаны.
Здесь периодически обновляю после доработок.
Edited 2015-01-14 07:00 (UTC)

[identity profile] mbr.livejournal.com 2015-01-14 07:22 am (UTC)(link)
Забавно. И как кикад?

Да, глянул в код. В чем был глобальный смысл разрывать bulk pipe на 0x81 и 0x03? И на кой SOF handler в CDC?

И вообще - стмные либы - зло. Я вполне через регистры справляюсь.

[identity profile] eddy-em.livejournal.com 2015-01-14 07:29 am (UTC)(link)
> И как кикад?
Т.к. больше ничего не пробовал, то сравнивать не с чем. Глюков еще хватает, но работать можно. Правда, периодически жалею, что кикад на С++ — был бы на С, можно было бы кое-какие "плюшки" добавить.

> В чем был глобальный смысл разрывать bulk pipe на 0x81 и 0x03?
Это где?

> И на кой SOF handler в CDC?
Ты, похоже, смотришь старую версию. Нерабочую. На SPL.
Нормальная — в директории with_opencm3. Старую, конечно, удалить надо было бы, но фиг с ней — вдруг кому поможет.

P.S. А еще я потихоньку начал было реализовать 1-wire полуаппаратный (на таймере с DMA).
Edited 2015-01-14 07:31 (UTC)

[identity profile] mbr.livejournal.com 2015-01-14 07:53 am (UTC)(link)
>Это где?
В дескрипторе же.

> P.S. А еще я потихоньку начал было реализовать 1-wire полуаппаратный (на таймере с DMA).

Гиблое дело имхо. Я уже кому-то пытался безуспешно доказать, что DMA необходимо для высокоскоростных трансферов, а для низкоскоростных это лишь костыли и лишний потенциал ошибки с возможностью завесить всю систему.

Но я понял причину проблемы - для сверхтормозного 1wire нарушается вся логика работы и значительно усложняются стейт-машины. Наиболее правильный метод на мое имхо - ртось и процесс для onewire.

Вот к примеру моя ртось (пока еще не пиарил в широких кругах, вылизываю код, пишу документацию):

https://github.com/alexeyk13/rexos/tree/master/example/stm32f1

В примере создается штук 7 процессов, DAC с DMA, температурный сенсор с АЦП, CDC ACM, проводится оценка производительности системы и еще чего-то по мелочевке. Чистого application кода на две страницы.

[identity profile] eddy-em.livejournal.com 2015-01-14 08:22 am (UTC)(link)
> DMA необходимо для высокоскоростных трансферов, а для низкоскоростных это лишь костыли и лишний потенциал ошибки с возможностью завесить всю систему.
Ничего там не "завешивается". А городить задержки nop'ами — извращение чистой воды. Как и UART использовать. Потому что получается, что на все время приема-передачи микроконтроллер занят. Некошерно как-то.

> начительно усложняются стейт-машины
Во-во. А я как раз систему управления решил сделать по принципу конечного автомата.

> ртось
Слишком сложно для такой элементарщины. Лучше аппаратно. На крайняк — сделать реализацию на отдельном STM8, который только 1-wire и будет заниматься.

> Вот к примеру моя ртось
Ох, ничего ж себе!!!
И сколько она отжирает флеша?

[identity profile] mbr.livejournal.com 2015-01-14 08:45 am (UTC)(link)
> Ничего там не "завешивается"

Когда завесится, будет ад. Я убил неделю, прежде чем вдумчиво не прочитал errata.

> А городить задержки nop'ами — извращение чистой воды. Как и UART использовать. Потому что получается, что на все время приема-передачи микроконтроллер занят.

Совершенно верно. Поэтому в ртосях вместо nop управление передается для выполнения других задач или процессор уходит в спящий режим.

> Слишком сложно для такой элементарщины.
Ключевой вопрос в скорости разработки и возможности масштабирования. Касаемо сложности я бы поспорил. А еще такие плюшки как hardware abstraction. Например, у меня был случай, пришлось внезапно менять архитектуру, когда 50% софта уже было готово - замена заняла не больше полудня.

> И сколько она отжирает флеша?
~16 кб с базовыми драйверами под стм (gpio, power, timer, rtc, wdt, uart). Помимо драйверов это включает stdio и stdlib c полноценным printf/sprintf и менеджером динамической памяти.

~25 кб с композитным усб и библиотеками под него.

Edited 2015-01-14 08:47 (UTC)

[identity profile] eddy-em.livejournal.com 2015-01-14 09:14 am (UTC)(link)
Ну, вроде косяков пока не было. Но да: поначалу были непонятки из-за того, что я пытался библиотечные функции использовать, которые сильно тормозили процесс. Написал на регистрах — все вроде ОК. Правда, reset я сделал все-таки пока что на задержке, надо тоже реализовать через конечный автомат.

[identity profile] alex-avr2.livejournal.com 2015-01-14 03:57 pm (UTC)(link)
Мне. И весьма безрезультатно :)

[identity profile] lummoveplenue.livejournal.com 2015-01-18 01:55 am (UTC)(link)
What would happen to the U. БIn the next few days, one of the important objectives will be to see how security cooperation can be reinforced between all of these governments, Б says Mr Vallet Leaders will be looking further at the Syria conflict, says Vallet, to find ways of neutralizing the Sunni jihadi groups that have drawn in fighters from across the Middle East and Europe, making Syria a likely vector for future international terrorismб The US economy has notched its best year of job growth since 1999 after more Americans found work than expected in December. The store owner, John Bieker, 44, died on Friday after a shootout with the men, who were attempting to rob the business in Shawnee, Kansas, a suburb of Kansas City, Missouri, police said
http://huntingcoloradostyle.com/content/viagra-soft-commander-vrai-viagra-bon-marche-site-francais-viagra-soft-usa-without-prescript