Pic18 Lab. Experiment #5. USB

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

Я во время изучения вопроса если честно неплохо так удивился, насколько умные люди тогда придумали как это сорганизовать и поставить на рельсы, а еще больше удивился когда увидел расценки на использование USB вашей компанией – Vendor ID стоит 5к долларов в год, хотите лого еще 6к надо бы, а ну и раз вы наше лого используете пришлите ка нам ваш девайс и мы его тестанем за н сумму денег еще… А список компаний которые используют Vendor ID можно найти на сайте www.usb.org (USB Implementers Forum – USB-IF), можно еще посчитать сколько там компаний и прикинуть прибыль этого сообщества чисто на этой подписке (читай охренеть). Но как я уже заметил люди это придумали очень умные, подсадили всех на иглу и грамотно этим пользуются.

Продолжаем дальше подсаживаться на иглу, добавляя USB и в свои проекты 🙂

Я не буду скидывать вообще кучу всей информации, просто приведу сначала сводную информацию которая мне показалось важной для понимания устройства USB (ну и дебага естественно), а потом сделаем два эксперимента на этом базисе.

usb_title

Читать далее

Китайский скутер и китайское реле поворотов

На днях тут столкнулся с чудом китайской инженерной мысли, на старом китайском скутере было реле поворотов, обычное с обычным реле. Со временем ему пришел конец, и на замену ему купили новое.

Сначала все выглядело хорошо, продавец уверял что оно 100% совместимое, и маркировка проводов и одинаковая фишка наводили на мысли что все должно быть ок.

Читать далее

[Cadence Virtuoso] сохранение определенного уровня нетлиста

Столкнулся тут с необходимостью сохранения определенного уровня нетлиста при моделировании, оказалось все довольно просто:

Создается файл с расширением .scs и подключается как модель, в файле должно быть следующее содержание:

save * "/path to your instance"

Предупреждение о опасности от сайта

Доброго времени суток,

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

Снятие данных через определенные временные промежутки в ADEXL

Оказывается в ADE-XL напрямую из icfb данные снять не выйдет, вернее выйдет но на выходе будет wave объект с которым вы вряд ли что-то сможете сделать.

Оказывается есть очень удобная функция ocnPrint() позволяющая снимать значение через определенный временной промежуток.

Синтаксис:

ocnPrint( [?output t_filename | p_port] [?precision x_precision] [?numberNotation s_numberNotation] [?numSpaces x_numSpaces] [?width x_width] o_waveform1 [o_waveform2 …] ) => t/nil

t_filename – файл в который будем записывать значения

p_port – запись в ранее открытый порт

x_precision – разрядность вывода (от 1 до 16)

s_numberNotation – формат вывода чисел

x_numSpaces – количество пробелов между столбцами

x_width – ширина столбцов

o_waveform1 – Waveform объект (может быть представлен как результат семплирования по времени)

o_waveform2 – дополнительный вейформ (фиг его знает зачем)

Пример:

ocnPrint( ?output “~/output.txt” VT(“/Vout”) ?from 0 ?to 10u ?step 50n ?precision 10 ?numberNotation ‘engineering)

Здесь мы создали файл /home/$username/output.txt, в который поместили значения Vout, семплированные каждые 50 нс, и записали их в инженерном формате.

Травление плат в перекиси водорода

Статья о моих впечатлениях от травления плат этим методом (не степ бай степ руководство) просто решил поделиться (:

Title

Читать далее