Метка «pic»

Недавно разгребал папки на Dropbox и наткнулся на свои первые поделки. Когда делал первые шаги с микроконтроллерами, почти сразу меня стали посещать мысли и идеи об управлении моими поделками с ПК, либо каким-либо образом с этим самым ПК общаться. Это казалось увлекательным и «серьезным». Сейчас я стараюсь все сразу тестировать в железе, но в начале наступать на грабли и стрелять себе в ногу хотелось безболезненно и быстро. В этом мне неизменно помогал Proteus. Десятки раз пересобирая проекты было важно, чтобы можно было экспериментировать с комфортом, если так можно сказать. Это потом я уже купил фирменную отладку и что в Proteus, что в железе — все стало одинаково быстро.
В первую очередь мне хотелось попробовать UART и USB, а потом уже и Ethernet. Каждому желанию я придумывал свой «проект». Многие идеи так и остались в виде проекта для Proteus — идея надоедала сразу после реализации программной части.
Надеюсь, данный пост поможет всем, кто хотел попробовать сделать свое USB устройство или просто увидеть, что это все не так сложно; более того, мне хотелось, чтобы можно было попробовать сразу в симуляторе. Рассказать как новичок для новичка — чтобы захотелось открыть гугл и начать читать, чтобы сделать больше, узнать лучше.
Я не буду рассказывать о регистрах, режимах. Я сомневаюсь, что это поможет зажечь огонь в глазах. Возможно, кто-то захочет сделать что-то полезное для себя и у простых примеров больше шансов затянуть в это крайне увлекательное творчество (а для меня уже практически наркотик). А прежде чем бежать на ebay или начинать считать дни с момента отправки отладочной платы из Китая, можно попробовать свои силы в виртуальном микроконтроллере.
Я хотел бы попробовать сделать два своеобразных hello world проекта, которые, тем ни менее, не сильно сложнее стандартного LED blinking. Под катом много изображений.
Читать полностью »

Здравствуйте, уважаемые участники Habrahanr.

При том, что Хабр — портал, ориентированный на программистов, обратил внимание, что последнее время появляется много статей о программировании микроконтроллеров и создании девайсов на их базе. Решил поделиться одной своей разработкой. В прошлом я много писал для МК, даже работал разработчиком ПО и схемотехники в одной из фирм, а до этого программил на АСМе под Z80 и i8080. Сейчас, во взрослой жизни, в основном пишу на PHP/MySQL для собственных интернет-проектов и к программированию МК не возвращался очень давно. Назвать полноценным программистом я себя не могу, т.к. освоить, например, OOP так и не смог, но немного пишу на С по мере надобности.

Некоторое время назад у меня возникла задача создать эмулятор USB клавиатуры для CarPC проекта. Использоваться она должна была в магнитоле Becker BE2580, устанавливаемой на автомобили немецкого производства 2000-х годов. Эмулятор должен был опрашивать штатные кнопки магнитолы и генерировать нажатия на виртуальной USB клавиатуре, подключенной к материнской плате CarPC на базе Android. Что из этого получилось, под катом.
Читать полностью »

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

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

Индусский код в Микрочипе

Не подумайте, что я сейчас пытаюсь гнуть расово верную линию — не имел опыта общения конкретно с индусами, но точно знаю что среди наших их тоже достаточно (не верите — наберите «95» в гугле), но понятие «индусского кода» появилось давно и закрепилось довольно прочно, хотя вы и не найдете его в политкорректной википедии (но гугол о нем точно знает).

Индусский код (не индийский или индейский) — жаргонное нарицательное название для программного кода крайне низкого качества, использующего простые, но порочные принципы «copy-paste».
Почему именно индусский?
По слухам в Индии с некоторых времен существует практика оценки производительности труда программиста на основе количества написанного кода. Чем больше кода, тем больше программист работает, и, следовательно, выше его оклад. Шустрые индусы быстро сообразили, как обманывать неквалифицированных заказчиков.

Итак, если вы хотите научиться программировать так как это делают в микрочипе следуйте следующим простым советам…
Читать полностью »

Электроника для начинающих / [Из песочницы] Знакомство с TCP стеком для микроконтроллеров фирмы Microchip

Предположим, у нас возникла необходимость в создании устройства с возможностью подключения к сети Ethernet. Вариантов имеется довольно много, но все их можно разделить на 3 вида.
•Преобразователь RS-232—Ethernet, представляющий собой обычно виртуальный COM-порт на стороне сервера, преобразующий поток данных RS-232 в IP-пакеты, и отсылающий их на некое устройство, которое занимается обратным раскодированием и отдает контроллеру снова RS-232. Пример подобного устройства: Tibbo EM100. Достоинства такого решения—простота программирования. Не нужно вникать в тонкости протоколов. Подключаемое устройство может вообще быть не в курсе, что данные емуЧитать полностью »

DIY или Сделай Сам / Умный дом с web-интерфейсом на perlxstut
В какой-то момент стало очень лениво отрывать свою пятую точку, чтобы перед сном выключить свет в комнате. И решил это дело автоматизировать. В итоге был изобретён свой велосипед для удалённого управления силовой нагрузкой – программно-аппаратный комплекс, обладающий следующими особенностями:* Возможность управления силовой нагрузкой, питаемой напряжением 220в, из любого места, где есть доступ к сети Интернет, независимо от территориальной удалённости.* Управление силовой нагрузкой через web-сайт* Клиент-серверная архитектура* Доступ к web-сайту системы с мобильных устройств, в том числе через сотовые телефоны с поддержкой WAP* ИспользованиеЧитать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js