Дмитрий Радищев (dibr) wrote,
Дмитрий Радищев
dibr

как перестать

1. Кажется, мне пора пройти курс "как перестать конструировать и начать жить". Или хотя бы научиться наконец гравировать печатные платы на станочке, а не разводить такие вот макароны из проводов (макароны конечно пастоугодно, но не до такой же степени).

Это я очередной выжигальный станочек запиливаю. Кстати, при монтаже допустил всего два ляпа - в одном месте перепутал плюс с минусом (без последствий), и вместо резистора 1кОм впаял 1Ом (сгорел светодиод, заменил). Для меня это даже неплохо.



2. Этот ваш степстик на a4988 - странная штука. Со штатным радиатором (мелким квадратиком как на фото) - перегревается до отключения уже на токе 1А (пирометр кажет 85° на радиаторе, значит на самом деле там ещё больше). Вентилятор спасает, но уж больно он в это место конструктивно не лезет, поэтому пока приколхозил дополнительный теплоотвод с обратной стороны (где у a4988 thermal pad наружу через плату выведен), авось обойдётся.
А ещё - сразу после старта или после ресета "шумит" ШИМом громче обычного, и вроде немного завышает ток. Один шаг в любую строну - шум прекращается. Как добились? Непонятно.

3. Легаси программинг и железякинг на писюках - это что-то с чем-то.
Оказалось, напряжение "единицы" на выходе данных LPT-порта - всего 3.3В (на том писюке, на котором я это делаю). А напряжение гарантированной "единицы" на входах a4988 - 0.7*Vdd, что при питании 5В даёт 3.5В. А я целый день понять не мог, почему у меня шаговик "шаги теряет", причём всегда в одну сторону - уж и механику всю проверил, и задержки выставил огромные! А оно просто вход dir не всегда в нужную сторону распознавало. Главное, непонятно почему на LPT оказалось 3.3В а не "около 5" - интерфейс-то старинный, тогда "трёхвольтового КМОП" ещё не было. Не настоящий же TTL там, в самом деле. Пока снизил питание до 3.5В, но вообще очень хочется воткнуть какой-нибудь буфер с преобразованием уровней, ибо нефиг.

А ещё у меня в программе есть цикл кручения моторчика. В котором на каждый шаг делается куча мелких вещей (от арифметики до перерисовки статусной строки), ну и проверяется не нажат ли ESC. На первом компе (что-то простое но относительно современное, с впаянным на плату атомоподобным интелом) всё работало, а вот на другом начало тормозить ("четвёртый пень" на 3ГГц! И там тормозит "кручение моторчика!"). Я полез оптимизировать цикл и искать место торможения... и выяснил, что проверка нажатия ESC (делавшаяся через чтение порта 0x60 - ведь "БИОС тормозит, а тут напрямую") занимает в несколько раз больше времени, чем вся остальная часть цикла. Один "in al, 0x60" - какие-то жуткие миллисекунды!
Переделал, ессно.
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 14 comments