bash.im ithappens.me zadolba.li

Железо

5039

Код-самоед

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

Ведём разработку на ПЛИС известной компании. С появлением встраиваемых процессоров возможности построения цифровых систем стали практически безграничными. Работа сложная и интересная. Приходится совмещать изменения железа и софта: переконфигурировал процессор или шину памяти — переписывай программу. А уж насколько богатые возможности для глюков, когда не поймёшь, где проблема...

Из последнего: обратили внимание на неполадки с памятью в стандартной конфигурации. Запустили тест памяти — всё зависло. Посмотрели размер адресного пространства: 64 МБ, а на плате физически присутствуют только 32. Тут у нас возникли некоторые подозрения. Оказалось, что в примере от производителя, кроме неверного размера памяти, ещё и банки памяти адресованы вперемешку. Выходит, что тест памяти стирает из неё сам себя, и процессор исполняет какие-то случайные инструкции. Интересно, что будут писать о глюках через десять лет, если подобная технология станет повсеместной?

5037

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

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

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

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

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

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

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

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

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

5034

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

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

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

5023

Мудрец от крепежа

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

Было это три года тому назад. Прихожу к своей девушке (теперь уже жене) в гости и вижу на столе моник, аккуратно накрытый салфеткой. Для начала разговора вслух замечаю:

— О, у тебя есть комп?
— Да, сама заработала и купила, — не без гордости отвечает будущая жена.
— Так давай включим, музыку послушаем, я тебе клипы покажу.
— Он не работает, а денег на ремонт я не накопила ещё.
— Так давай я гляну, вдруг сэкономишь. А на что жалобы?
— Да шумит что-то, но ничего не показывает.

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

— Год уже как...

5006

Сделай паузу, выпей чаю

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

Несу поставить на зарядку КПК и на подходе к компу выпускаю девайс из рук. КПК падает на клавиатуру, я за ним. В процессе сбиваю со стола и клаву. КПК падает аккурат на кнопку выключения сетевого фильтра, начинает орать источник бесперебойного питания. Через долю секунды клавиатура приземляется на выключатель ИБП. Комп мгновенно гаснет.

Матерюсь, оглядываю стол, вижу стоящий на краю чай и понимаю, что легко отделался.

5004

Вырастем — поймём

В 1967 году я объяснял родителю друзей, почему я не стараюсь писать аккуратно и не хочу учить слова-исключения. Я собирался поступать в техникум на программиста и всю жизнь иметь дело с компьютерами. Я полагал, что скоро машины будут понимать, что я пишу, исправлять ошибки и красиво печатать. Понятно, что надо мной издевались и обзывали фантазёром. Это особенно приятно вспоминать, работая в Файрфоксе, исправляющем орфографию на лету, прямо в окне.

На втором курсе института учитель программирования застал меня за постыдным (по его мнению) занятием. Для знакомой из лаборатории психологии я делал программку, печатающую объявления крупными буквами, сложенными из звёздочек. У психологов не было чертёжников, а объявления о всяких лекциях писать было надо. Чтобы им не бегать и никого не просить, я помог решить эту глупую проблему.

После института, году так в 1979-м, проходила у нас в Н-ске всесоюзная конференция по АСУ. Наш (для меня уже бывший) декан под бурные аплодисменты руководителей властных органов докладывал, что эти психованные программисты должны забыть о дисплеях: дисплеев не будет, вообще не будет, это всё сказки, неудобный и неэффективный инструмент, отвлекающий народ от правильных задач автоматизации народного хозяйства.

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

Что я услышал в ответ? Конечно, цветные мониторы для бухгалтерии сейчас не нужны. Но раз уж они есть, бухгалтеры смогут понять, чем цветные экраны им могут быть полезны, а программисты это устроят. И вообще, денег никаких на это никто лишних не тратил, потому что заказывали и оплачивали чёрно-белые, а пришли цветные. Фирма-поставщик подтвердила: всё нормально, ничего доплачивать не надо, рекламная акция...

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

4989

Прямые руки и извилистые мозги

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

Есть у меня один знакомый, искренне верующий в свою IT-продвинутость. До сего момента его успехи отражались лишь в излюбленной фразе: «Я там всё почистил, комп просто летает». Кстати, «почистил» — значит, удалил бедные, никому не причинившие зла файлики из «Моих документов». О реестре он представления не имеет, и это, знаете ли, просто здорово.

Так вот, на днях у нашего общего коллеги стал вырубаться системник. Знакомый не поленился: открыл, выяснил, что сломан кулер, склеил его (хорошо, между прочим, склеил: руки-то прямые) и поставил на место. Системник продолжал вырубаться. Причина та же: перегрев проца. Решила спросить, какой термопастой знакомый пользовался. «А зачем она вообще?! Он сам по себе легко защёлкнулся, совсем без усилий!»

Финиш. Прямые руки — хорошо, а извилистые мозги — лучше.

4986

Хаофон

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

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

Так вот, принёс клиент намедни чудо-средство связи — греется, говорит. Разобрали, посмотрели. Оказалось, что наши соседи-китайцы завели «землю» на металлическую подложку под процессором. Когда это заземление успешно отпаяли, телефон перестал работать совсем. Полностью. Паял обратно к тем же точкам, перемычки ставил — дохлый номер. В итоге пришлось заговаривать зубы клиенту (покупать-то новый телефон не особо хочется): мол, ваш телефон излучает радиацию, на что мужичок сказал: «Оставьте себе, мне радиация дома не нужна!»

Мораль: не гоняйтесь за дешевизной! Дешёвый телефон — он и плохой по качеству, и жить будет недолго, и отремонтировать его будет невозможно. Если на одном куске текстолита у вас висит и экран, и клавиатурный модуль, и динамики, и микрофон — сами понимаете...

4985

Кондуктор не спешит, кондуктор понимает

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

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