воскресенье, 27 февраля 2011 г.

27 Feb 2011

Начал отлаживать девайсину. Нашел пару огрехов в схеме:
  • Питание 5В получается из более выского при помощи 7805, при этом более высокое нигде не используется. Правда пока неясно для чего это задумано, может быть так и надо. Пробросил провод мимо стабилизатора.
  • Конфликтовали питания +3.3В и питание с разъема отладчика. Перерезал дорожку. 
  • Не заводится кварцевый генератор, может быть и заводится, но нестабильно. Завтра потыкаюсь осциллом и прочими приборами.
Дебагер бодро дебажит из под виртуальной машины. Для отладки интерфейса приглядел и установил Wireshark. Правда пришлось немного подшаманить, чтобы Wireshark работал из-под не root'а.

пятница, 25 февраля 2011 г.

Silabs IDE + JTAG + VirtualBox 4.0.4 + Extension Pack. It Works!

На горизонте замаячила работка - написать прошивку для девайса на C8051F061 конторы SiLabs. Так как с отладкой данных изделий под кошерными ОС не совсем все хорошо, пришлось скачать с сайта конторы их SilabsIDE. В качестве компилятора - кошерный SDCC, прекрасно интегрируется с IDE. Данные IDE и Toolchain работают под WinXP в VirtualBox 4.0.4. Совсем недавно эту версию скачал, заинтсаллировал и поставил дополнительеый пакет Extension Pack поддержки чего-то там, включая USB. Сегодня попробовал подать на девайс питание, подключить JTAG и cделать Connect из IDE. Работает.

воскресенье, 20 февраля 2011 г.

20 Feb 2011

Все порываюсь поставить вайн, чтобы установить S.T.A.L.K.E.R SHoC и поиграться. Но в последний момент останавливаюсь. Ибо потом, чувствую, уже не смогу.

суббота, 19 февраля 2011 г.

CORDIC для SciLab, заодно тестируем вставку кода

Пока без подсветки, но все же.
//заполняем таблицу
i=1:10;
log10_table_p = log10(1 + 2^(-i));
log10_table_m = log10(1 - 2^(-i));

//выводим значение логарифма
x = 2;
printf("%f\n", log10(x));

//CORDIC
z = 0;
for i = 1:10
  if (x > 1)
    x = x - x*2^(-i);
    z = z - log10_table_m(i);
  else
    x = x + x*2^(-i);
    z = z - log10_table_p(i);
  end;
end;

printf("%f", z);

CORDIC

Имею задачу как можно быстрее вычислить десятичный логарифм с заданной точностью на микроконтроллерной платформе. Есть куча методов: табличный, таблично-интерполяционный, метод Бриггса (этот дядя в 1620г посчитал логарифм до 16 знака!!!). Обнаружил такой замечательный алгоритм, как CORDIC, для вычисления иррациональных функций типа логарифмов, арктангенсов и прочих синусов да косинусов, делений и умножений. http://www.ee.siue.edu/~gengel/pdf/cordic.pdf. Вкратце суть вычисления логарифма при помощи CORDIC:

Настройка wi-fi точки доступа на лаптопе

Имеется лаптоп с беспроводным broadcom-адаптером bcm4312. Задача "раздавать интернет" на другие wifi-устройства.

Пунктики:

вторник, 15 февраля 2011 г.

15 Feb 2011

Две недели пролетели незаметно, при этом ничего толком не сделано. Начал с того что на домашней тачке установил SSH и слил туда свои проекты, сделал бэкапы. На всякий случай. Теперь надо устроить раздачу интернета, ибо кабель один, а машинок дома две, приходится перетыкать кабель туда-сюда, что сильно мешает работе. Надо на старом рабочем лаптопе поставить лицензионные вин, офис, сетевые клиенты и прочее, что наша организация легально закупила. Далее буду наполнять лаптоп всяческим полезным лицензионным софтом. Всвязи с этим потребовался редактор схем/печатных плат. Дома использую Eagle, но на работе он не подойдет по причине ограниченной лицензии (бесплатная версия не позволяет получить прибыль) и технических ограничений по проектам. Остановился на KiCAD (СПО), решил, что редизайн нынешнего проекта буду выполнять в нем.

вторник, 8 февраля 2011 г.

Восстановил работу процессора

Вопреки всему удалось забороть глюки на плате. Для начала до конца разобрался как работать с Universal Scan. Далее подрыгал ножками процессора и убедился в том, что ввод-вывод работает нормально, без глюков. Так как не было сомнений в наличии непропая/микрозакоротки и прочего чуда, подозрения пали на питание ядра процессора. Питание ядра подводится в виде дорожки-калачика, от которой в разные стороны идут проводники к процессору. Решил поиграться и проверить соединены ли ножки питания внутри процессора, для этого разорвал калачик пополам ловким движением скальпеля - контакт есть, следовательно внутри все это соединяется. В таком виде подал питание на плату, и вуаля... она заработала! Не знаю какими волями судеб ). Продолжаю бороть остальные глюки: АЦП кажется заработал.

воскресенье, 6 февраля 2011 г.

Boundary Scan

В борьбе с процессором пошла в ход тяжелая артилерия. Начал осваивать пограничное сканирование: скачал утилиту Universal Scan, спаял переходник с байтбластера на разъем JTAG процессора, подключил, сижу осваиваю. Пока что не особо получается, но сдвиги есть. Поначалу утилита вообще не находила процессор в JTAG-цепочке, оказалось, что для BS надо выводы EMU0, EMU1 подтянуть к земле, а вывод TRST к питанию. После этого в цепочке появилось устройство и начало весело определять чего там на входах/выходах. Помежет или нет - не знаю, но попробовать интересно.

среда, 2 февраля 2011 г.

Еще один процессор в ведро :(

В процессе выжигания перемычек процессор отправился в ведро. Зато нашел причину неработающего АЦП - не было одного важного соединения на землю. Как же хочется учиться на чужих ошибках, а не на своих.

вторник, 1 февраля 2011 г.

Помни о мелочах

Вслед предыдущему посту. Процессор не сдох. Живой. Сгорел порт ввода-вывода. Сейчас разбираюсь почему и как, а также ищу решение проблемы: процессор жалко - их у меня мало, да и недешевые они. Мораль сей басни такова: надо ставить токоограничивающие резисторы, позаботься я о них ранее... Во вторых: надо ставить по питанию потребителей перемычки в виде 0-омных резисторов, чтобы в случае чего можно было легко и безболезненно отключить потребителей, что тоже экономит время (не надо резать дорожки, отпаивать/запаивать проводочки). В-третьих: том месте где можно поставить микросхему и упростить себе жизнь, так и надо делать, если нет особых требований на стоимость (например, серия, где каждая деталька важна) или размеры и прочее.



"И опыт - сын ошибок трудных..." (с) Пушкин. Вот так мы растем.