пятница, 23 декабря 2011 г.

Изготовление печатных плат на заказ

В связи с тем, что сервис по изготовлению ПП, про который я писал год назад, перестал работать, занялся поиском изготовителя ПП. Вот хорошее предложение. Ссылка.

среда, 21 декабря 2011 г.

К расчету параметров тракта (SDR) приемника 2

Когда параметры посчитаны на бумаге, хочется проверить свои выкладки, если не на живом железе, то хотя бы в программе-симуляторе. Подсказали про такую штуку, как ADIsimRF. Симулятор от AD для своих же микросхем. Под wine судя по всему работает.

понедельник, 19 декабря 2011 г.

К расчету параметров тракта (SDR) приемника

Прилагаю ссылку на главу "RF system design" из книги "Digital Radio Systems on a Chip - A Systems Approach", в которой довольно доступно (и с формулами!) объясняются такие базовые вещи как шумы, интермодуляция и пр., а также приведены подробные формулы для их расчета. В общем полезно.

суббота, 17 декабря 2011 г.

понедельник, 12 декабря 2011 г.

Установка OrCAD 9.2 в wine 1.2.3 (debian squeeze)

Так получилось, что на относительно слабой машинке лучше всего (почти без тормозов) работает старый добрый OrCAD 9.2 запущенный под wine, нежели нативные пакеты, типа KiCAD и Eagle. Однако тот wine, который идет в репозиториях squeeze, довольно старый и присутствует несколько багов. Например, в схемном редакторе нельзя вставить символ на страницу, при попытке правки в редакторе плат, выбрасывается unexpected exeption 0 и т.д. Большинство багов были пофиксены в wine 1.2, однако баг со схемными символами так и остался. Из-за этой причины (+ к тому же в репозториях debian squeeze версия wine довольно старая) было решено собрать его из исходников. Описываю порядок выполнения необходимых операций.
Сначала идем на www.winehq.org, находим и скачиваем исходники (в нашем случае версия 1.2.3 - последняя стабильная), распаковываем их куда-нибудь:

bunzip2 wine-1.2.3.tar.bz2
tar -xf wine-1.2.3.tar

Образуется директория wine-1.2.3, в которой необходимо файл dlls/user32/dialog.c. После чего открываем файл на правку, находим и комментируем в нем следующую строку:

if (hwnd == GetActiveWindow()) WINPOS_ActivateOtherWindow( hwnd );)

Теперь когда исходники подготовлены устанавливаем необходимые для сборки пакеты:

sudo aptitude build-dep wine

Теперь когда все готово можно собирать, для этого переходим в директорию wine-1.2.3 и выполняем команды:

./configure --prefix=/usr
make
sudo checkinstall

В результате мы получаем установленный wine и еще в придачу deb-пакет. Далее необходимо настроить "окружение" для того чтобы можно было установить OrCAD. Сначала запускаем winecfg и ставим ОС windows 98, далее необходимо скачать скрипт winetricks, с помощью которого можно установить нужные библиотеки и шрифты

wget www.winetricks.org/winetricks.sh
sudo cp winetricks.sh /usr/bin/winetricks.sh
sudo chmod +x winetricks

Устанавливаем шрифты, чтобы не портить глаза и библиотеки mfc42, richedit:

winetricks allfonts, mfc42, riched20

Кроме этого понадобится набор библиотек dcom98, который с помощью winetricks более не устанавливается, поэтому при помощи google находим dcom98.exe на сайте microsoft.com, сохраняем файл в .wine/drive_c и запускаем его

wine dcom98.exe

Теперь можно опять запустить winecfg и во вкладке "Библиотеки" выбрать и добавить следующие:

atl.dll (native, build-in)
rpct4.dll (native, build-in)
ole32.dll (native, build-in)
oleaut32.dll (native, build-in)
riched20.dll (native, build-in)
riched32.dll (native, build-in)

После данных действий все готово и далее можно ставить OrCAD привычным способом.

Конфигурация wine для установки OrCAD взята отсюда.

среда, 7 декабря 2011 г.

Черток Б. Е. Ракеты и люди.


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

Прикрепляю интересные книжки про историю отечественного ракетостроения (под авторством одного из разработчиков, так сказать, из первых рук):


Книжки в формате EPUB.

среда, 9 ноября 2011 г.

О пользе фильтров по входу DC/DC

Много много дней подряд боролся со страшной напастью: пульсации в выходном токе источника питания. Причем частота пульсации была не постоянной, а переменной: из области высоких частот 5-10кГц пульсация спускалась в низкочастотную область и уходила обратно. Все это происходило только один раз при включении и прогреве блока, что значительно затрудняло поиск и нейтрализацию причины неисправности. В итоге были отсоединены практически все потребители для выяснения источника помех. Оказалось, что DC/DC преобразователь TMA1515 дергает "входное" питание, тем самым приводя к появлению пульсации на выходах всех ОУ, а следовательно и в выходном токе. Оказалось, что по входу DC/DC стоит только емкость 0,47мкФ без последовательной индуктивности. После добавления в испытуемые образцы индуктивности 100мкГн блуждающий пульсации вроде исчезли, сейчас прогоняю блоки и набираю статистику. Пока что без пульсаций. Вывод такой: если не плевать на всякого рода глюки, лучше ставить фильтры как по выходу, так и по входу DC/DC преобразователей.

вторник, 1 ноября 2011 г.

Вирус в MBR

Из всего домашнего зоопарка машин у меня на двух крутится debian, на одной нерабочей - ubuntu, openwrt на маршрутизаторе и на одной winxp. Вчера пришла жалоба, что winxp перестал грузиться. Загрузившись под xubuntu livecd обнаружил, что жесткий диск присутствует, но не размечен. При помощи программы testdisk восстановил таблицу разделов и решил перегрузиться. В ходе загрузки на экране появилось сообщение, что компьютер заблокирован, надо заплатить, ввести код, бла-бла-бла. Перегрузившись опять в xubuntu запустил install-mbr с нужными параметрами и потер вирус из загрузочной области. Помогло то, что в xubuntu все интерфейсы и железки цепляются без проблем, поэтому сеть автоматом настроилась (по dhcp от маршрутизатора), после чего методом гугления были найдены все рецепты.

понедельник, 31 октября 2011 г.

31 октября 2011г., текучка

Было много хорошего за прошедшую неделю. Наконец-то приходит понимание как надо строить аналоговый тракт в SDR, зачем согласование кабеля со смесителем, зачем диплексер после смесителя. Нужно понимание проверить численными моделями для окончательного закрепления, для чего нужен какой-нибудь подходящий и не сильно громоздкий симулятор. Можно воспользоваться ADS от Agilent, есть нативный под линукс. Но пока в поиске. Участвовал в соревнованиях CQ WW DX 2011, провел связей 60 за 2,5 часа. Понравилось. Рисую схемы по работе, две схемы уже почти довел до конца, потом жжет не менее увлекательная трассировка. Параллельно занимаюсь настройкой и отладкой источников питания, выявилась неисправность: холодный источник возбуждается, по мере прогрева пульсации пропадают, надо разбираться.

суббота, 22 октября 2011 г.

Установка debian на компьютер без монитора


Наконец-то собрал из старого хлама компьютер. Одна беда: нет к нему ни монитора, ни клавиатуры, ни мыши. Есть только сетевая карта, но она для установки не пригодилась. Еще есть виндовая машинка на работе, без привода и не умеющая грузиться с флешки. Короче, полный аллес (привода у меня тоже нет). Но не беда: можно установить debian в виртуальной машине и перенести образ виртуального диска на реальный физический диск. Я решил пойти похожим но немного другим путем. Воткнул диск в компьютер. Далее сделал cd в директорию, где установлен virtualbox и выполнил: 

VBoxManage internalcommands createrawvmdk -filename D:\Debian.vmdk -rawdisk \\.\PhysicalDrive1

Где PhysicalDrive1 - это мой свежевоткнутый диск, номер которого я посмотрел в Панель управления – Администрирование – Управление компьютером – Управление дисками. Далее создал виртуальную машину, подключить к ней созданный образ Debian.vmdk и ставить на него debian. При этом поставил ssh-сервер, чтобы, загрузив систему дома, можно было до нее достучаться. Естественно, настроил сеть как надо (например, у меня dhcp дома). Снес файл /etc/udev/rules.d/70-persistent-net.rules, чтобы не обломиться с привязкой имени карты к MAC-адресу. Пока проверил на работе, что установленная таким образом система вполне себе работает. Осталось проверить дома.

вторник, 18 октября 2011 г.

18 октября 2011г, текучка

Припоздал с еженедельным текучим отчетом по причине банкета в честь коллеги-юбиляра. Душевно посидели. Нашел дешевые комплектующие для рабочей станции, осталось купить, но что-то продавец все никак не связь не выходит. Думаю, что ставить - Win or Lin? САПРы как-то под вторым уныло запускаются. Разве что ставить виртуальную машинку, потому что под wine некоторые нужные вещи не работают как положено. Изучаю e-bay. Более новостей нет, интересных тем более.

понедельник, 10 октября 2011 г.

10 октября 2011г, текучка

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


Кроме того освоил (точнее вспомнил) работу с svn, но это мелочь. Пытаюсь собрать рабочую лошадку из имеющихся athlon 3000 xp+, материнской платы под него и видео. Корпус есть, не хватает блока питания, винта (почти есть), вменяемого количества памяти (есть 256, надо еще хотя бы столько же, а лучше больше). Дело в том, что наметилась работа, а на древнем ноуте все CAD'ы страшно тормозят при попытке нарисовать. Единственно, что не тормозит - это старый добрый OrCAD 9.2 под wine, однако с ним есть неразрешимые фатальные проблемы и это не вариант, пытаюсь запустить под wine'ом версию 10.5. Пока безуспешно из-за сервера лицензии FlexLM, но говорят достаточно скопировать готовую папку с виндовой машинки. Буду пробовать. Параллельно заказываю метаринскую плату под dell'овский лаптоп. Правда пока не нашел какого-то приемлемого варианта. Ах да, возобновил работу в эфире с коллективки. Пока что за два раза набрал 25 связей. Подумываю о портативке.

понедельник, 3 октября 2011 г.

3 октября 2011г, текучка

Со времени последнего поста особых интересных новостей нет. Обычная текучка. За тем исключением того, что взялся за написание симулятора одной интересной штуки. Вейвлеты там тоже будут задействованы со временем, и если все пройдет успешно, то возможно пойдут в железку. Появился маршрутизатор ASUS WL-500gP, прошит OpenWRT. Тот же пингвин, только вид с боку: конфигурационные файлы vpn для debian отлично пошли, теперь у меня vpn-endpoint в маршрутизаторе, а он далее раздает сеть без всяких проблем для компьютеров внутри данной сети. Неспешно думаю о покупке портативной УКВ радиостанции. Неспешно думаю, когда есть время, о схемотехнике SDR. Сейчас мучают мысли о диплексоре на выходе смесителя. Начал вести бортжурнал по проектам. Отмечаю в нем что сделано, что надо сделать, различные расчеты, выводы относительно проблем, затраченное время. Вещь полезная. Пробовал запускать KiCAD и Eagle на нынешней машинке. Eagle очень тормозит при прорисовке, схемы или платы начиная с 5й версии, при этом 4я ведет себя довольно хорошо, писал об этом в тех. поддержку - ответа не последовало. При этом KiCAD при прорисовке не тормозит, однако в целом работает медленно, разводить платы сущий ад, так как курсор редактора не успевает за указателем мышки. Возможно надо попробовать собрать его со всякими оптимизациями под свою машинку, если такое возможно.

четверг, 4 августа 2011 г.

Wavelet transform && C

Написал вейвлет-преобразование на C. Все практически готово, осталось только подшаманить код. Вот картинка - демонстрация работы: результат очистки сигнала при помощи вейвлет-преобразования. 

среда, 20 июля 2011 г.

вторник, 19 июля 2011 г.

debian squeeze + lxde

Решил опробовать сие чудо на старом лаптопе. Напомню, машинка 700МГц селерон, 512 памяти, видео от S3, ну и прочие раритеты. Xubuntu начал тормозить, оказалось, что xfce - не такая уж и легковесная. Плюсом ко всему еще и мелкие баги ubuntu (излечимые, но все равно неприятно). В итоге за вечер поставил debian squeeze с графической оболочкой lxde. Работает значительно шустрее, даже фильмы можно смотреть. Осталось напихать всякого софта и посмотреть как оно будет вести себя далее.

четверг, 14 июля 2011 г.

wavelet shrinkage: threshold level

Если дисперсия щума нам заранее известна, тогда уровень threshold'а вычисляется довольно просто (см. предыдущий пример). В противном случае существует методика оценки дисперсии из высокочастотной части первого уровня разложения:

#вычисляем коэффициенты разложения
coeffs = pywt.wavedec(data, 'coif3', 'cpd', dec_level);

#оценка шумовой дисперсии из высокочастотной части первого уровня разложения
#как median absolute deviation (MAD) деленное на 0.6745
MAD = abs(max(coeffs[dec_level]) - median(coeffs[dec_level]));
sigma = MAD/0.6745;

#вычисление уровень threshold'а из шумовой дисперсии
tr_level = sigma*sqrt(2*log(len(data)));
print tr_level;

понедельник, 11 июля 2011 г.

wavelet shrinkage & python (pywt)

Делюсь примером, написанным на python с использованием pywt, который показывает как производится фильтрация сигнала от шумов при помощи техники wavelet shrinkage.

суббота, 9 июля 2011 г.

Оптимизация Skype в Ubuntu и прочее

Заставил работать skype 2.2 beta (напомню, у меня xubuntu 10.04) на слабой машинке более-менее нормально. Для этого убрал галочку с менеджера обновлений (линуксовые версии выходят очень редко, поэтому не страшно) Настройки->Дополнительно. После этого звук перестал жестко булькать (о видео даже и речи не идет), но тормоза остались. Пришлось применить грязный и некрасивый хак: когда мне нужен скайп, запускаю его с высоким приоритетом. Для этого: sudo nice -n -10 skype. После этого можно как-то говорить вроде. Поискал безлимитный тариф у мегафона для неограниченных звонков в Дальневосточный регион. Оказывается такие тру безлимиты есть только для корпоративных клиентов. Горите в аду! На досуге нашел замечательную книгу по фундаментальной теории смесителей частоты: Maas S. Microwave Mixers, в бумажном виде ее у нас не купить, а хотелось бы.

четверг, 7 июля 2011 г.

Вести с полей

В связи с приездом иностранных коллег и прочих событий, долгое время ничем кроме основной работы не занимался. Кое что успел сделать до. Есть небольшое продвижение по вейвлет-фильтрации, однако надо еще поработать над теорией. В тоже время нашел пару занимательных документов по теории смесителей частоты, провел моделирование работы ключевого смесителя, некоторые моменты стали понятны, а другие - нет, появилась куча вопросов. Также немного изучил материалы о широкополосных трансформаторах типа линия, правда на практике ничего путного не получил. Кроме вейвлетов задействовал python для расчета ЧХ линейных систем, вроде все считает правильно, как надо. Поискал в интернете статьи про undersample sdr - ничего не нашел, после того как закончу приемник надо будет заняться этим вопросом.