Напоролся на забавные грабли

Полдня искал глюк в отправке данных с STM32F100 по uart на комп. Решил поделиться, вдруг кому поможет, ну или чисто поржать (надо мной). Осторожно, внутри скукота и ни одной картинки.


Читать дальше
  • +2
  • 11 марта 2015, 01:02
  • ACE

Стеклотекстолит с фоторезистом из "Платана" - грабли!

Пишу этот пост, чтобы другие не наступили на те же грабли.
На грабли я наступил, потому что было лень возиться с накаткой проверенного и освоенного пленочного фоторезиста. В фирме «Платан» (а следовательно и в ее «дочках» — Вольтмастере и Чип-и-Дипе) имеется в продаже стеклотекстолит с нанесенным на него фоторезистом, с синей защитной пленкой. Что характерно, без какой-либо документации. В магазинах даже не знают, какой фоторезист, хотя бы негативный или позитивный.
Судя по источникам в Интернете, все такие готовые к употреблению заготовки сделаны на основе все того же пленочного фоторезиста, и следовательно, негативные и проявляются в растворе кальцинированной соды, за единственным исключением — это немецкий материал производства фирмы BUNGARD Исходя из этого, я напечатал фотошаблон и приступил.
Сняв защитную пленку, я удивился первый раз — вместо привычной зеленой или фиолетовой пленки увидел голую медь. Вынеся осторожно плату на чуть более яркий свет, увидел, что все-таки какой-то лак есть на поверхности, бледно-желтый. Ну ладно, проэкспонировал его в привычном режиме, снова удивился, что ни малейших следов изображения не видно и приступил к проявке.
Изображение не проступило и при проявке. Ни малейших следов, никаких признаков жизни. Повозив ваткой в растворе соды минут десять, я добавил еще соды. Никаких эмоций. У меня возникли сомнения — а есть ли там фоторезист? Не «липу» ли мне всучили, в виде стеклотекстолита, покрытого каким-то лаком и с налепленным сверху синим оракалом?
Решил попробовать проявитель «поядреннее», растворил 1,5 г NaOH в 100 мл воды и… вот оно. Засвеченные участки приобрели густо-фиолетовый цвет и стали растворяться. Таки фоторезист п о з и т и в н ы й. И проявляется щелочью.
Все это (внешний вид защитного покрытия и фоторезиста, щелочное проявление и позитивность) говорит о том, что нам достался тот самый экзотический случай фирмы «Бунгард» либо, возможно, его клон. На сайте доступна инструкция.

А моя инструкция будет такой.

1. Резка заготовок
Заготовки отлично режутся ножницами по металлу с припуском для последующей доработки напильником (куда ж без нее). Чтобы не содрать защитную пленку, ее лучше надрезать заранее лезвием или скальпелем.
2. Экспонирование
Фоторезист ПОЗИТИВНЫЙ. Ориентировочное время с «черной» УФ-лампой на 26 Вт (использовалась энергосберегающая марки Camelion) с расстояния 15-18 см через стекло — 5 минут. Индикаторность полностью отсутствует, так что изображение не проступает, как в случае с пленочным фоторезистом и «Крамолином».
3. Проявка
Судя по фирменной документации, их фирменный проявитель — это раствор гидроксида натрия, 1 г/100 г воды. Я делал 1,5 г/100 г воды. Признаком начала проявления и нормальной экспозиции является появление четкого и контрастного густо-фиолетового (в засвеченных местах) изображения, при этом дорожки не должны менять цвет. Ватным тампоном (пинцет, перчатки, защитные очки или маска!) под слоем проявителя осторожно, но тщательно стирайте эту фиолетовую краску, малейшие остатки которой на меди прекрасно видны. Не бойтесь — непроявившийся фоторезист, не изменивший цвета, довольно прочен и легко выдерживает даже трение ватой с некоторым нажимом.
Затем промойте окончательно плату и не высушивая, приступайте к травлению.

PS: Впрочем, я не могу дать гарантии, что Платан неожиданно не сменит поставщика и фоторезист вдруг не станет негативным пленочным. Смотрите по цвету — у этого фоторезиста он желтый.

L297. Подводный камень.

Здесь «камень» — не обозначение кристалла или микросхемы, как это звучит в жаргоне электронщиков, а именно то незаметное с поверхности препятствие, на которое можно напороться в легкомысленной самоуверенности.
Вместо предисловия.
Заразился и я мечтой заиметь свою ЧПУ-сверлилку/фрезер. Пока с механикой дело продвигается уныло, решил тем временем поиграться с управлением шаговика, чтобы окончательно определиться со схемой. Шаговики собираюсь использовать униполярные от принтера. Облазил несколько форумов, прочитал и «хорошую статью», что в топике podkassetnik -а. В конце-концов решил не мудрить с МК и купил L297-е.

Читать дальше

особенности использования светодиодных ламп

Давно в квартире заменил все лампы на светодиодные. Светят отлично но только перегрева не любят. Если кто надумает делать — имейте ввиду.
грабли под катом


Читать дальше
  • -4
  • 19 января 2013, 23:53
  • woddy

Настройки компилятора в Atmel Studio 6 и отладка на симуляторе - грабли

Интересная, но, в общем, неудивительная вещь при отладке — возможно, кому-то пригодится.

Заметил, что при пошаговом выполнении программы оказываюсь в той функции, которая в этот момент (да и вообще в данной конфигурации программы) не вызывается. Причем оказываюсь не в начале функции, а где-то в середине. Заинтересовался — какого, собственно?

Настройки компилятора (оптимизация) были следующие:
— уровень оптимизации -O2
— галки стояли на «Pack structure members together (-fpack-struct)» и «Prepare functions for garbage collection (-ffunction-sections)»

Попробовал поиграться с уровнями оптимизации — без толку. Выключаю -ffunction-sections — всё нормально. А жаба душит, включение этой опции даёт уменьшение размера почти в два раза.

В хелпе написано следующее:
"-ffunction-sections: Prepare functions for garbage collection, if a function is never used, its memory will be scrapped"
То бишь, если функция нигде не используется, то под неё вроде бы память не выделяется. Оно и логично, сборка мусора и все такое.

То, что меня удивило: при включенной опции — при попадании программы в середину нигде не использующейся функции выхожу я из неё буквально на следующем шаге и туда, куда мне и надо. Посмотрел окно «disassembly» — там, куда я попадаю, Сишный текст строчки из НЕИСПОЛЬЗУЕМОЙ функции есть, а ассемблерные инструкции все как надо (там идет сброс флага и выход из ИСПОЛЬЗУЕМОЙ функции, в которую я заходил и как раз должен из неё выйти) Что за ерунда — так и не понял, может, кто точно знает и расскажет? В железе пока не пробовал, но судя по ассемблерному тексту, все должно работать правильно.

В общем, резюмирую — при отладке этой опцией компилятора надо пользоваться аккуратно, а лучше не пользоваться.

Да, чуть не забыл, при использовании -ffunction-sections в опциях линкера должно быть включено «Garbage collect unused sections (-Wl--gc-sections)», а то толку от использования -ffunction-sections не будет.

Для интересующихся, про настройки компилятора и линкера: Optimisations of AVR programs using avr-gcc

Простейший программируемый логический контроллер на базе микросхемы FT2232.(программирование)

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


Читать дальше

Управление W5100 и AT25160A по одной шине SPI. Непредвиденные грабли.

Всем привет.
Продолжаю ковырять потихоньку свой проект основанный на STM32F103 и W5100, и понадобилось мне прикрутить к нему последовательную EEPROMку чтоб настройки хранить.
Самые ходовые варианты — это серия AT24 и AT25.
Так как AT24 — серия основанная на I2C, мне она не особо катит, потому как выискивать и мультиплексировать ноги под интерфейс не лучшее решение. Другое дело серия AT25. Работает по SPI, который у меня уже используется, то есть делов-то вроде — еще одну ногу CS выделить, и будет счастье. Но не тут-то было…


Читать дальше

Грабли STM32L: тактирование.

Сходил тут на семинар КОМПЭЛ по STM32L, и, добыв там платку STM32L-DISCOVERY, начал ее мучить.

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

Сразу предупреждаю, речь пойдет о работе с PLL через регистры, так что любители библиотек на все случаи жизни могут покурить в сторонке.



Читать дальше
  • +1
  • 29 октября 2011, 22:51
  • _YS_

Неочевидные тонкости языка С – делимся опытом

Возможно, для кого-то, описанная далее особенность давно известна. Но для меня наступление на данные грабли пару лет назад при переносе кода с одной платформы на другую это было «приятным сюрпризом».

И так, есть код:

uint32_t i = 1;
i = i << 32;
printf("%d", i);


Вопрос – что выдаст printf?



Читать дальше

Грабли на пути к «умному дому»



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



Читать дальше
  • +1
  • 09 октября 2011, 14:45
  • e_mc2