bash.im ithappens.me zadolba.li
5037

Извилистые дорожки и стройные ножки

24 декабря 2010, 12:45

Благополучно отучился на отделении информатики физфака. Был и курс «Введение в системы автоматического проектирования радиоэлектронных устройств» (разводка печатных плат, проще говоря), и с микросхемами элементарной логики мы знакомились как в теории, так и на лабораторных. В дипломной работе я использовал микроконтроллер, то есть был не понаслышке знаком с тем, что можно получить, накодив на C несколько сотен строк. Одногруппник, которому больше нравилось высокоуровневое программирование, взял меня в напарники для разработки светоматрицы — платки 8×12 светодиодов, которая должна была управляться с компьютера. Ни у него, ни у меня не было абсолютно никакого опыта, не считая вышеописанного обучения в университете, поэтому неудивительно, что даже с чисто организаторской стороны было много факапов. Однако я хочу рассказать о моих программно-железячных косяках. Мало ли, вдруг кому пригодится.

Free Serial Port Monitor — хорошая программа. Но показывает она не то, что пришло в буфер COM-порта, а то, что прочитала использующая его программа. Поэтому надо было не покупать новую микросхему MAX232, решив, что предыдущая сгорела, а просто добавить в отладочную программу чтение.

Altium Designer — тоже хорошая программа. Только вот все библиотеки в ней созданы в расчёте на английскую систему мер. Если вы используете десять деталей из стандартной библиотеки и одну свою, подумайте о том, обязательно ли делать её в СИ. На чертеже очень трудно заметить, что четыре проводка к пятивыводному разъёму подцепились, а один остался в полупикселе от положенного места. В итоге на плате не оказалось одной дорожки. Хорошо, что использовалась она только для программирования! Спасла конструкция «проволока, с одной стороны прикрученная к штырьку для программирования, иголка и рука, тыкающая в малюсенькую ножку микросхемы».

От аппаратных глюков никто не застрахован, даже если микросхемы покупались у поставщика, работающего напрямую с производителем. Прежде чем десятый раз просматривать собственный код, который идеален, пишите тестовые программы. В моём случае проблема была в том, что при замыкании одной из ножек на землю микроконтроллер начинал слать в USART мусор (точнее, циклический мусор: каждые три байта всё повторялось, но от этого не легче). Хорошо, были свободные ножки, так что ситуацию спасло припаивание проводка, разрезание дорожки и исправление программы.

Если во всей партии из сорока микроконтроллеров глючат одни и те же четыре ножки, это не значит, что вам подсунули эксклюзивно подобранный брак. Надо просто почитать документацию и выяснить, что, помимо используемого вами интерфейса SPI, есть ещё и JTAG, который работает именно через эти ножки. Его можно отключить, но по умолчанию он включён.

А ещё источник постоянного тока (5 В, 12 А) не любит, когда от него требуют то 0 А, то 2 А (не говоря уж обо всех двенадцати) с частотой всего полкилогерца, да ещё не по синусоиде, а ступеньками. Нет, сам источник не сгорел. Но вот напряжение от таких скачков чувствовало себя нестабильно, а вместе с ним и блютус-модуль, в результате чего связь с компьютером терялась. Эта проблема оказалась самой лёгкой: я впаял перед модулем диод, чтобы заряд обратно не утекал, а падение напряжение на полвольта скомпенсировал уменьшением токоограничительного сопротивления, и всё заработало. Интересно, что микроконтроллерам ATmega16 скачки были нипочём, хотя по документации они должны были отключаться раньше модуля.

Это, конечно, далеко не все трудности, с которыми пришлось столкнуться (или придётся: работа ещё не совсем закончена). Надеюсь, своим рассказом я уберегу какого-нибудь начинающего разработчика от нескольких дней битья головой о стену.

5036

Дворак — дурак, пылесос — молодец

Подруга — довольно разумная блондинка, компы не взрывает. Жалуется, что ноут стал греться.

— Ты его полтора года как купила. Хоть раз чистила?
— Не-ет...
— Ну, есть два варианта. Во-первых, ты можешь его пропылесосить. Вариант не лучший, но сойдёт. Во-вторых, у тебя гарантии уже нет — можно развинтить, понадеяться на мозг и прямые руки и почистить.

Решила пылелосить. Позвонила, узнала, как правильно, — и тут SMS: «Я клавишу засосала». Ну, я бегом домой в сеть: интересно же, что ещё она там устроила. Рассказывает:

— Эту клавишу достала, так ещё пару засосало. Я в итоге всё вытащила, кроме пробела. Его не стала: вспомнила цитату с «Баша» про пробел невставляющийся и побоялась. А потом прикололась и все клавиши поменял местами.
— Слепой набор теперь?
— Ага. Только я плохо им умею.

5035

Иван-Бакалавриевич и Выпускница Прекрасная

24 декабря 2010, 12:45

Учусь на втором курсе, живу в общаге, по доброте душевной помогаю людям с компами и прочей техникой. Пришли девчонки с третьего курса просить помощи с домашним заданием. Иду к ним, читаю задание. Суть — взломать запароленный вордовский файл, внести изменения и отправить преподу. Чтобы взломать файл, надо поставить софтинку, которую, в свою очередь, тоже надо взломать. Домашнее задание оказалось по предмету «Защита информации». Вот теперь я точно знаю, где она, смерть кощеева.

5034

И моргает, сволочь, так издевательски

24 декабря 2010, 11:00

Коллега, профессор эникеинга, показал ADSL-модем с дохлыми конденсаторами — но не вздувшимися, а «впуклыми», со втянувшимися внутрь стенками. Я долго гадал, как такое может быть. Всё оказалось просто: клиент на нервах хорошенько потыкал в модем отвёрткой.

5033

Чей самолётик № 265?

24 декабря 2010, 11:00

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

В лотке принтера обнаружилась пронумерованная стопка бумаги.

5032

Гомеопатчинг

24 декабря 2010, 09:00

На днях я заболел: прихватил кашель, возможно, от выпитого холодного пива. Но работу никто не отменял. Дело идёт к ночи, я плавно погружаюсь в дизассемблированый код программы с целью найти место генерации и проверки ключа. Проходит чуть более четырёх часов, кашель всё усиливается. Поскольку нужная функция найдена и вытащена, отправляюсь спать со спокойной душой и великими планами по её разбору. Под влиянием ночного дебага перед сном думаю о том, что во сне я не кашляю, а начинаю только утром, когда просыпаюсь. Баг или фича? Так и уснул с мыслями о том, что обязательно найду то место, где идёт проверка, сплю я или нет, и поставлю там безусловный переход.

Что удивительно, наутро кашель значительно ослаб, а к концу дня и вовсе пропал. Хороший патч — наверное, один из моих лучших.

5031

Аудиофиломедиаконверсия

24 декабря 2010, 09:00

Как говорится, всегда есть любители любви стоя в гамаке и в противогазе.

Решили мы вывести звук с компа на музыкальный центр, стоящий на шкафу в другой части комнаты. Аудиокабеля подходящей длины, чтобы аккуратно провести по стенкам комнаты, не нашлось, так что решили пойти на следующий вариант.

Аудиокабель через переходник подключается к витушке. Витушка с RJ45 на конце втыкается в сетевую розетку на стене. Оттуда всё идет в коммуникационную, расшивается в панель, патч-кордом кроссируется в другой порт — на розетку в другой стене комнаты. Оттуда витушка опять же через переходник (к слову, сделанный из аудиовходов дохлой материнки) переходит в обычный аудиокабель, который через пару удлинителей добирается до музыкального центра.

5030

Уверенные в офигенности и упорные в глупости

24 декабря 2010, 09:00

В мир IT демократию явно не завезли — и оно к лучшему. Почему?

Потому что не надо ставить 1024×768 на 19-дюймовый широкоформатник. Запретил учётной записи лазить в настройки дисплея.

Потому что если антивирус вопит и паникует, это явно неспроста, и его не надо отключать. Теперь на нём стоит пароль, и хрен вы его отключите.

Потому что клики по картинкам с «шокирующими новостями» всё равно ничего хорошего не покажут. Спасибо баннерорезкам!

Потому что панель управления нужна вашему системщику, который всё настроит и починит, а не вам, любопытные криворучки.

Потому что ваши IM-клиенты прописываются в автозапуск и, на минуточку, запрещены начальством.

Честно, обслуживать приходящим админом несколько контор — по-своему адский труд. На основном месте работы все давно обучены, способны прочитать месседжбокс, клацнуть по «ОК» и объяснить проблему. И даже номерки BSoD’ов сами находят. А потом приезжаешь в очередную фирму и тихо офигеваешь: взрослые, вменяемые и адекватные люди, профессионалы своего дела, либо уверены в своей офигенности, либо упорны в своей глупости.

5029

Кидайте юзеров за борт

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

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

Ругаться не хочется. Взял телефон, подключил к своему компьютеру — Линукс определил девайс как флэшку. Отлично! Залил несколько песен, на звонок поставил «День рождения» группы «Ленинград». Если кто не знает — только Шнуров может написать осмысленную строку, где из пяти слов четыре матерных. Набрал номер знакомой со своего телефона, показал, что играет при звонке, и сказал, что если не разберётся, как поменять, будет так звонить постоянно, в том числе и на работе. При мне разобралась за две минуты (засёк по часам).

Настройка Bluetooth — аналогично. Я поставил в качестве сетевого имени устройства дословный перевод её фамилии на английский язык. Всё ничего, но перевод совпадает с названием известного фильма ужасов. Тоже справилась быстро. Больше возвращаться не пришлось — усвоила крепко. Основные операции в Убунту? Оформление Ubuntu Satanic в помощь. На просьбу сменить сказал покопаться самостоятельно.

Так что, коллеги, давайте бухгалтерии и прочим экономистам стимул для изучения — хоть бы и такой. Результаты не заставят себя ждать.