Хорошая печатная плата - залог надежности устройства. Как сделать такую плату?
Ответить

Re: Лазерная установка для засветки фоторезиста от AlphaCrow

Чт апр 16, 2020 07:55:01

Протокол опишу. Вопрос залу - это нужно кому-то, если проблемы с пропусками решили? Я свою плату переделывать не вижу смысла, значит тестировать нужно будет удаленно.

Re: Лазерная установка для засветки фоторезиста от AlphaCrow

Чт апр 16, 2020 08:00:44

Думаю смысла нет, программа работает хорошо. Со временем SDimok я думаю разберется как все правильно сделать с камерой. Добавлять другой протокол - опять выискивать новые ошибки. Но если сообщество решит что надо добавлять, то потестить всегда готов.

Re: Лазерная установка для засветки фоторезиста от AlphaCrow

Чт апр 16, 2020 08:18:08

Вопрос залу - это нужно кому-то, если проблемы с пропусками решили?

Решили, это сильно громко. :) Так, костыликом подпёрли. Чисто личное мнение, никого не хочу обидеть.
Если протокол имеет отличия в лучшую сторону, то несомненно в перспективе он интересен.
Сам я покуда сижу на оригинальной версии программы, ещё той, что работает через виртуальный порт, но в связи с появившимся большим кол-вом времени вскоре тоже перейду на новое железо. Так что, в бета тестах проучаствую с удовольствием.

Re: Лазерная установка для засветки фоторезиста от AlphaCrow

Чт апр 16, 2020 10:00:21

Тоже протестировал 74 версию. Скорость на слух стала стабильная, замедления пропали.

Re: Лазерная установка для засветки фоторезиста от AlphaCrow

Чт апр 16, 2020 12:07:24

Допустим винда что-то колдует и замедляет выдачу данных в HID. Но почему тогда установка начинает рисовать пустую строку, а не ждет данных? Что-то мне кажется, что данные таки приходят, но приходят битые в виде нулей например. А это надо смотреть где они хранятся в компьютере и не повреждает ли их что-нибудь? В общем нужен отладочный лог в каком-либо виде, чтоб в него писалось все что выдается на установку.

Re: Лазерная установка для засветки фоторезиста от AlphaCrow

Чт апр 16, 2020 12:40:26

Просто есть операции, критичные ко времени выполнения, такие как переключения между буферами DMA, и если программа вовремя не увидит останов каретки, а она его отслеживает, то теоретически может не переключить буфер. Указатель остается на старом, а он уже заполнен нулями для следующей загрузки.

Добавлено after 1 minute 59 seconds:
Серый, вся винда сплошные костылики :) это я тебе как доктор говорю

Добавлено after 5 minutes 6 seconds:
И еще...есть некоторый таймаут...если его не делать, установка иногда наглухо виснет.Видимо как раз при потере данных.И повторно запросить недостающие данные уже не получается. С usart в этом плане было проще.

Добавлено after 4 minutes 6 seconds:
Поэтому автор и хотел перенести все тайминги в проц пожирнее, что бы не отслеживать такие события как останов каретки с помощью ОС

Re: Лазерная установка для засветки фоторезиста от AlphaCrow

Чт апр 16, 2020 13:19:35

SDimok Скажи, я правильно понимаю... При загрузке гербера происходит конвертация всего гербера в растр в оперативке, а потом по сколько то байт передается через usb ? При этом станок на каждой новой строке передает команду готов для получения от программы новой порции байт?

Re: Лазерная установка для засветки фоторезиста от AlphaCrow

Чт апр 16, 2020 14:48:48

Делается растр, потом идет передача в буфер кусочкам, пока не передастся вся строка, потом дается команда на движение каретки в определенную позицию. Пока летит, по прерываниям вспыхивает лазер, а хост в это время передает данные в буфер обратной засветки, и отслеживает останов. Как остановилась, и передались данные, команда на движение обратно, и так до победного.

Добавлено after 2 minutes 31 second:
Ну и переключается между буферами прямой и обратной засветки, в момент смены направления.

Re: Лазерная установка для засветки фоторезиста от AlphaCrow

Чт апр 16, 2020 16:31:56

Т.е. программа и передает данные, и стартует-останавливает каретку, и переключает буферы?
Хм. Как по мне, логичнее было-бы чтобы хост просто гнал данные, а прошивка уже сама шагала пр У, переключала буферы и прочим низкоуровневым занималась. Если оба буфера заполнены - можно хосту говорить NAK, зайди попозже...

Re: Лазерная установка для засветки фоторезиста от AlphaCrow

Чт апр 16, 2020 16:38:18

То есть получается, что если загрузка строки куда-то потеряется, а команда запуска придет - получим пустую строчку.

Надо разобраться, как в HID-порфиле обстоит дело с гарантией доставки и очередностью. Вполне возможно, что винда запускает вперед мелкие посылки, а большие буферизует и толкает в "свободное время".

логичнее было-бы чтобы хост просто гнал данные


Логичнее, но в МК ресурсов впритык, чтоб еще хоть чем-то заниматься. Логичнее было бы вообще иметь 1 мб памяти и закидывать туда сразу N строк. Да еще и аппаратно CRC проверять на лету и битые данные повторно запрашивать. Но тут уже нужен один из "жирных" STM32F4 как минимум.

Если бы не прицел по камере - можно было бы вообще как в 3д-принтере кинуть растр на карточку и автономно печатать. Но с двухсторонними платами такое не прокатит.

Re: Лазерная установка для засветки фоторезиста от AlphaCrow

Чт апр 16, 2020 18:24:21

Логичнее было бы вообще иметь 1 мб памяти и закидывать туда сразу N строк.

Тут кто-то говорил про внешнюю оперативку для МК - вот я искренне поддерживаю эту идею! На пару с кардинальной сменой протокола.
Ну и ещё, мне сильно не хватает в программе функции пропуска пустых строк и функции "начать печать с этого места".

Добавлено after 34 minutes 26 seconds:
Серый, вся винда сплошные костылики :) это я тебе как доктор говорю

Охотно верю. :) Но если начать плодить костыли, рано или поздно эта витиеватая конструкция рухнет.

Re: Лазерная установка для засветки фоторезиста от AlphaCrow

Чт апр 16, 2020 19:12:54

Вообще вариант andryblack мне нравится тем, что это стандартный клиент-сервер.
На компе, куда подключена установка запускается хост, на любом другом в сетке веб-морда в браузере.
Ещё бы морду графическую.... раскатал губу. :)
Как запущу этот вариант расскажу. :)

Re: Лазерная установка для засветки фоторезиста от AlphaCrow

Чт апр 16, 2020 19:20:41

" было бы вообще иметь 1 мб памяти и закидывать туда сразу N строк"

Заказал себе на пробу PSRAM с спиайным портом IPS6404, 8 мбайт сразу. И хочется сразу использовать протокол принтера, закинул на печать, поехала печатать из памяти.

Re: Лазерная установка для засветки фоторезиста от AlphaCrow

Чт апр 16, 2020 19:36:36

Raspberry pi zero стоит 1.5k там достаточно памяти для всего. Принтеры тоже сейчас на процессорах общего назначения.

Re: Лазерная установка для засветки фоторезиста от AlphaCrow

Чт апр 16, 2020 19:49:37

Тут кто-то говорил про внешнюю оперативку для МК - вот я искренне поддерживаю эту идею! На пару с кардинальной сменой протокола.


Так я и был) По работе сейчас проект делаю на STM32F429 со внешней оперативой и прочими цацками - вот он бы тут как нельзя лучше справился. Есть даже платка готовая STM32F429I-DISC1 с ним, памятью и экраном. Памяти там правда всего 8 МБайт, но это уже норм для большинства задач. Одна беда - мне установку с антресоли даже достать некогда. :cry:

Добавлено after 7 minutes 39 seconds:
Raspberry pi zero стоит 1.5k там достаточно памяти для всего.


Памяти достаточно и проц шустрый, а вот периферия у нее так себе и в ней софт "далеко" от железа. Напрямую по ленте ехать и лазером моргать она не способна. Так что к ней все равно придется добавлять какой-то контроллер низкого уровня. А это уже сложнее, чем один жирный STM.

Re: Лазерная установка для засветки фоторезиста от AlphaCrow

Чт апр 16, 2020 20:00:33

Памяти достаточно и проц шустрый, а вот периферия у нее так себе и в ней софт "далеко" от железа. Напрямую по ленте ехать и лазером моргать она не способна. Так что к ней все равно придется добавлять какой-то контроллер низкого уровня. А это уже сложнее, чем один жирный STM.

Насчет сложнее - спорно. Одной обвязки под эту СТМ нужно будет больше чем во всей установке на "малом" контолллере + rpi. Добавляем сеть, добавляем камеру. И проект под эту жирную stm такой сложности станет. Нужно разделять всё-таки рантайм задачи от всего остального.

Re: Лазерная установка для засветки фоторезиста от AlphaCrow

Чт апр 16, 2020 20:43:52

Насчет сложнее - спорно. Одной обвязки под эту СТМ нужно будет больше чем во всей установке на "малом" контолллере + rpi.


Ну так это будут те-же яйца, что сейчас, только в профиль. Один комп поменяем на другой. Да, там линукс и меньше костылей (возможно), но все наши проблемы с нехваткой ресурсов в "самом низу" и кривым протоколом (из-за этой самой нехватки) это не исправит.

Можно сделать промежуточный вариант - жирный STM без внешней памяти. Внутренней ему хватит строк на 10 и ладно, зато там будет аппаратный CRC и ресурсы на нормальный протокол. И буфер на эти 10 строк позволит "пережить" возможные тормоза со стороны виндовс или повторную отправку битых данных.

Re: Лазерная установка для засветки фоторезиста от AlphaCrow

Чт апр 16, 2020 21:18:09

Откуда про нехватку ресурсов то? 103 на той скорости что печатает еще музыку может проигрывать, там ядро вообще не нагружено.

Re: Лазерная установка для засветки фоторезиста от AlphaCrow

Чт апр 16, 2020 23:44:24

Тут по контроллерам спецов оказывается :) Пилите новый контроллер и протокол, я управляющее ПО допилю. А пока радуйтесь тому, что вам подарил дядя Alphacrow :) Я костыльки спрячу с глаз, но это полумера. Следующая версия скорее всего будет финальная (под этот протокол и контроллер)
ПыСы : про пропуск строк самому мысль покоя не дает

Re: Лазерная установка для засветки фоторезиста от AlphaCrow

Пт апр 17, 2020 01:20:43

Откуда про нехватку ресурсов то? 103 на той скорости что печатает еще музыку может проигрывать, там ядро вообще не нагружено.


Да фиг с ним с ядром, там оно ничего и не должно делать - все на DMA прекрасно работает. Может даже CRC программно посчитать времени хватит. А вот памяти там реально мало. Даже если CRC выявит ошибку - на повторную передачу придется каретку тормозить.

SDimok, есть какое-то описание текущего протокола? Может реально малой кровью обойтись и туда контроль целостности данных запихнуть? Новая версия это конечно хорошо, но долго. А установок на 103ем контроллере уже куча и так их с глюками бросать нельзя, надо сделать стабильный билд в любом случае.
Ответить