October 3rd, 2019

серая инкогнита - бамц!

числовое программное

Я понимаю, что половина проблем в электронике - от того, что электричество не течёт там где должно течь, а вторая половина - от того что течёт там, где не должно, но блин.

На днях заглючил выжигательный станочек - один из шаговиков начал пропускать шаги. То есть когда он испортил первую заготовку я вообще не понял, решил что его просто кто-то толкнул или внутри что-то зацепилось, бегло осмотрел на предмет не упало ли что внутрь, и запустил вторую заготовку. Но к третьей ушедшей в брак заготовке "штирлиц насторожился", и начал искать проблему. Осмотрел механическую часть, вроде нашел то что могло стать причиной, устранил. Заподозрил перегрев контроллера шаговика, продул от пыли охлаждение. Заменил контроллер, благо это втычная платка. Вскрыл корпус, долго ковырялся в формирователе импульсов (линейке компараторов / триггеров Шмидта перед контроллером) - ведь если не контроллер, то значит что-то перед ним. Компараторы менять не стал, но поменял местами каналы - не помогло. Поскольку прошлый раз подобная проблема возникала на этапе настройки, и была связана с "плохими" импульсами с LPT (почему и пришлось ставить компараторы), покрутил настройки порога компараторов, и даже подцепил осциллограф - импульсы красивые, а момент когда/если они пропадают фиг поймаешь ещё. Проверил, хорошо ли соединены "земли" устройств" - это одна из типовых причин наводок и пропуска/лишних шагов. На всякий случай - ведь если и контроллер и формирователь исправны, то дело в компе - перепаял управление на другие линии LPT-порта (благо программа позволяет это оперативно поменять). Поковырялся в программе - вроде она не один год нормально работала, внезапно глючить не должна, но вдруг скажем флэшка побилась. Не помогло, зато нашёл не связанную с этим ошибку в программе, надо будет исправить :-) Срезал и перепаял разъём к шаговику - вряд ли конечно, но больше в станочке по сути ничего и нет, а почти всё остальное я проверил. Задумался о замене управляющего компа (вдруг "подгорел" LPT-порт), потому что разумные мысли как-то уже закончились.
И где-то на восьмом часу экспериментов и в четвёртом часу ночи (мешало ещё то, что для проверки приходится гонять станок какое-то время, пропуски шагов начинаются не сразу), что-то меня стукнуло для проверки поменять местами два провода - "направление" и "шаг" - идущие в шлейфе от формирователя к контроллеру.
Вместо пропуска шагов моторчик начал ИНОГДА КРУТИТЬСЯ НЕ В ТУ СТОРОНУ.
Собрав в кучку взорвавшиеся мозги и додумав до конца мысли ЭТО КАК ВООБЩЕ, ТАКОГО НЕ МОЖЕТ БЫТЬ ЖЕ, НУ ЛАДНО ФОРМА ИМПУЛЬСОВ КРИВАЯ, НО НАПРАВЛЕНИЕ ЖЕ НЕ ИМПУЛЬСЫ А ПОСТОЯННОЕ НАПРЯЖЕНИЕ, ОНО НЕ МОЖЕТ *ИНОГДА* МЕНЯТЬСЯ я все-таки сообразил, что если при перестановке проводочков глюк изменился - то проблема видимо в проводочках.

И таки да. В гибком шлейфе, причём не с края а где-то в середине, один из проводов надломился и начал терять контакт. Причём визуально это не было заметно вообще - чтобы найти точку излома, пришлось долго мять шлейф чтобы "поймать эффект", а потом тыкать в него булавками чтобы найти разрыв.
"Пропатчил" шлейф (лучше конечно было бы заменить весь, но больно хорошо он у меня закреплён, фиг снимешь), летим дальше. Но блин.

А теперь я отгоняю от себя фразой "работает - не трогай" мысль о том, что компараторы эти надо бы заменить на опторазвязку. Она, в отличии от компараторов, зело пофигистична к разводке "земли", и весьма помехоустойчива. В фрезерном станочке у меня опторазвязка, и всё прекрасно работает (ну, пока работает). Вот "психану" однажды, и заменю...
Dexter's Lab

"sd2ssd"

А я вот про SD не понимаю.

Ковырялся тут в одном старом, ещё без SATA, компе, с целью водрузить на него винду XP. Вместо жёсткого диска подцепил переходник SD/PATA (пятьсот рублей кстати стоит, а внутри него многоногая и явно умная микросхема), вставив в него SD на 32Гб - их у меня кулёчек, а ХР столько в принципе хватит. Винда как бы встала (хотя ставилась невообразимо долго), но работала чрезвычайно, запредельно медленно, и я начал экспериментировать.
В общем, в ходе экспериментов оказалось, что если использовать SD объёмом 4 Гб - всё работает быстро (ну, насколько оно может быть быстро на SD), а главное - на IDE интерфейсе включается режим Ultra-DMA. Если же взять флэшку большего объёма (пробовал 8, 16, 32 и 64 Гб) - режим UDMA не включается, как следствие - всё жутко тормозит.

При этом переход с 4 Гб на 8 Гб - это как раз переход с обычных SD на SDHC. И вроде очень хочется сказать, что мол вот - появился новый стандарт, в котором наконец-то избавились от атавизмов времён каменного века (CF например как я понимаю UDMA до сих пор поддерживают), поэтому оно так. Но мешает то, что по идее SD вообще никакого отношения к UDMA иметь не может - это совсем другой интерфейс, SD никакой UDMA не нужен изначально, а значит UDMA должна реализовывать та многоногая микросхема в переходнике. А с другой стороны - микросхеме-то какая разница, какого объёма флэшка, даже наоборот, большому кораблю - большая торпеда, для большой флэшки логичней использовать быстрый режим.

И я вот и не понимаю. Действительно при переходе SD - SDHC в стандарте что-то такое изменилось, что сделало невозможным реализацию режима UDMA в переходнике на PATA (но что???), или это просто тот многоногий таракан так хитро глючит, а с объёмами - просто совпало (флэшки были разных производителей, возможно в принципе что угодно)?
Загадка.