=Zap=
Участник-
Постов
29 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о =Zap=
-
Звание
Участник
-
Спасибо за ссылку. Только сами паять всё равно не будем - нет квалифицированного монтажника. А сторонние пайщики даже со своей печкой не берутся. Они говорят что для пайки с шагом 0.4 мм: 1) Нужен трафарет для нанесения пасты. 2) Нужна паста с размером частиц около 20 мкм, которой у них нет. Самостоятельно я этого параметра у паяльных паст не нашел. 3) Нужно не горячее лужение (HASL), а иммерсионное покрытие золотом (ENIG) или серебром (IAg). 4) Даже после этого всего, никаких гарантий без рентген анализа. Всё правда?
-
Я начинаю осваивать транзисторы на основе нитрида галлия (GaN), которые пару лет назад сильно подешевели. Дешевые транзисторы выпускает пока только компания EPC. Корпус у них сильно нетрадиционный и первая же проблема, с которой я столкнулся, это как их впаять. Если кто работал уже с такими транзисторами, то прошу совета. Своим опытом готов делиться здесь если будут вопросы.
-
Мне шашечки, за которые я плачу деньги и на которых я езжу как я умею. Если у вас весь персонал на аутсорсинге, то я аплодирую стоя. У меня частичный аутсорсинг, поэтому сейчас мне нужен человек, который доступен на рабочем месте. Работа по удалёнке до 50% рабочего времени также возможна. От человека зависит.
-
Откуда такая логика? Просто не у всех членов коллектива 10-летний опыт. У части опыт 2 года и возраст 20 лет. Контроллеры глючные, этого не скрываю. Но часть глюков мы обошли, а часть нас не затронули. В остальном все работает, а мы постепенно планируем переход на Cortex-M4F. Там TI учли свои прошлые ошибки, но неясно сколько наплодили новых. У нас появился новый человек для части работы, так что эта вакансия закрыта. Теперь нужен более опытный специалист. Другие обязанности, другой уровень, другая зарплата: --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ЦИФ МГУ приглашает на работу программиста-электронщика для программирования, разработки и поддержки устройств на базе микроконтроллеров. Предпочтительно аспирант технического ВУЗа, который разбирается в программировании микроконтроллеров, электронике, хочет узнавать новое, совершенствоваться, работать в реальных проектах. Обязанности Разработка прошивки на языке Си для ARM микроконтроллеров TI Stellaris (Cortex-M3, Cortex-M4F) в команде через систему контроля версий. Тестирование программных функций, отладка. Тестирование электронных узлов с использованием осциллографа, мультиметра. Поиск и устранение неисправностей. Разработка электронных схем, трассировка. Условия работы 2-3 рабочих дня в неделю по договорённости. Гибкий график. Небольшой, но квалифицированный и внимательный рабочий коллектив. Средний возраст сотрудников - 25 лет. 10-ти летний опыт разработки устройств на микроконтроллерах, у нас можно очень многому научиться! 10-часовой рабочий день (11:00-21:00). Оплата почасовая от 250 рублей/час, далее возможен рост по результатам работы. Организация работы проходит через систему управления проектами Redmine. Работа на территории МГУ на Воробьёвых горах. Требования к кандидату Умение программировать микроконтроллеры на языке Си. Знание электроники на достаточном уровне: чтение схем, даташитов, самостоятельный поиск неисправностей. Умение читать техническую документацию на английском языке. Умение паять на среднем уровне. Умение работать по письменно поставленному заданию. Ответственность и аккуратность. Приветствуется Опыт программирования микроконтроллеров семейства TI Stellaris. Опыт работы в системе Redmine. Опыт работы с системами контроля версий, в частности Mercurial. Опыт разработки или работы с силовыми электронными схемами. Опыт проектирования плат в программе PCAD. Опыт работы программистом микроконтроллеров, инженером-электронщиком. Вакансия гибкая, так как коллектив небольшой и легко адаптирующийся. Более высокая квалификация означает более высокую зарплату. Смещения акцента от программиста к электронике или наоборот возможна. Частичное удовлетворение требованиям обсуждаемо. Связь по почте [email protected] или сюда.
-
Проверил свою гипотезу про прыжок изнутри прерывания. Она-то подтвердилась, но после прыжка извне прерываний таблицу векторов стартовый код IAR из флэша уже не копирует в оперативку. Видимо он видит, что таблица уже в оперативке... Так как обработчики я ставлю динамически, то всё заработало. Я делаю почти так же: сигнатура в памяти, перезагрузка и проверка и затирание сигнатуры. Еще проверяю CRC прошивки перед тем как на неё перейти, а то мало ли что. low_level_init() происходит до копирования таблицы векторов прерываний в RAM. Это значит, что стартовый код основной прошивки скопирует таблицу сам, взяв её из стартового сектора. Не достанется ли ему в таком случае таблица от бутлоадера? У меня Texas Instruments контроллер семейства Stellaris LM3S5Rхх. Довольно глючная штука.
-
Спасибо за рекомендации. Перезагружал таким способом так как по-быстрому это когда-то работало и с тех пор не трогал. А потом вдруг сломалось и было непонятно почему. Тем не менее, разгадку я, видимо, нашёл. Поделюсь опытом: в перезагрузку я ухожу из прерывания SysTick (использовал его для счёта задержки времени перед перезагрузкой), таким образом NVIC не чувствует возврата из SysTick и новые прерывания больше не вызывает. Вызывает только более высокоприоритетные. С SP (stack pointer) проблем нет: его нормально переинициализирует стартовый код IAR. Кроме перезагрузки мы используем переход из бутлоадера в основную прошивку, что NVIC_SystemReset() или SYSRESETREQ уже не помогает сделать. Там были те же проблемы и придётся использовать прыжок на адрес. Теперь понятно, что его надо сделать не из прерывания. Watchdog timer хорошая мысль. Как раз подойдёт для отсчёта той задержки, которая нужна перед перезагрузкой.
-
Выполняю перезагрузку с помощью прыжка по адресу ResetISR, хранящемуся во флэше 0x4: ((void (*)(void))HWREG(0x00000004))(); Всё перезагружается нормально, проходит __iar_program_start, main, вообще всё работает кроме прерываний SysTick. При этом SysTick работает, считает его счётчик, он ставит бит пендинг прерывания, если бит снять, то SysTick его опять ставит. Другие прерывания происходят. Да и вообще ошибки в коде инициализации нет, так как при аппаратном ресете всё работает. А при софтварном ресете вот такое чудо. Такое ощущение, что я чего-то не знаю про инициализацию Cortex-M3 ядра. Есть советы куда копать?
-
Требуется программист-электронщик начинающего-среднего уровня
=Zap= опубликовал тема в Предлагаю работу
ЦИФ МГУ приглашает на работу программиста-электронщика для разработки и поддержки устройств на базе микроконтроллеров. Предпочтительно аспирант технического ВУЗа, который разбирается в программировании микроконтроллеров, электронике, хочет узнавать новое, совершенствоваться, работать в реальных проектах. Обязанности Разработка прошивок на языке Си для ARM микроконтроллеров Stellaris (Cortex-M3). Тестирование прошивок, поиск и исправление ошибок в алгоритмах. Тестирование электронных узлов с использованием осциллографа, мультиметра. Ремонт электронных схем средней и низкой степени сложности. Подбор и заказ электронных компонентов. Условия работы 2-3 рабочих дня в неделю по договорённости. Гибкий график. Небольшой, но исключительно квалифицированный и внимательный рабочий коллектив. Средний возраст сотрудников - 25 лет. 10-ти летний опыт разработки устройств на микроконтроллерах, у нас можно очень многому научиться! 10-часовой рабочий день (11:00-21:00). Оплата почасовая 200 рублей/час, далее возможен рост по результатам работы. Работа на территории МГУ на Воробьёвых горах. Требования к кандидату Умение программировать на языке Си. Знание электроники на базовом-среднем уровне, умение читать схемы. Умение читать техническую документацию на английском языке. Умение паять на среднем уровне. Умение работать по письменно поставленному заданию. Ответственность и аккуратность. Приветствуется Опыт программирования микроконтроллеров, особенно семейства TI Stellaris. Опыт работы в системе Redmine. Опыт работы с системами контроля версий, в частности Mercurial. Опыт разработки или работы с силовыми электронными схемами. Заинтересовавшиеся, пишите на [email protected] -
УФ светодиоды в России.
=Zap= опубликовал тема в Компоненты
Интересует можно ли где-то в России (в Москве) купить ультрафиолетовые светодиоды большой мощности с длиной волны меньше 370 нм. И есть ли сейчас рынок таких светодиодов или это спец приблуда для избранных? -
УФ излучатель
=Zap= ответил TABKP тема в Компоненты
Есть светодиоды на 280 и 365 нм. Цена на 280 огромна. Цена на 365 терпима. Если спектр не важен - лишь бы УФ был, то лампа подойдёт лучше всего. -
align для структур
=Zap= ответил chechestor тема в IAR
Я тоже мучался с выравниванием в IAR и моей целью было создавать упакованные по байту структуры с выровненными на 4 байта адресами. Что-то типа такого: struct temp { struct first { INT8U a; INT32U b; INT8U aa; }; struct second { INT8U c; INT32U d; INT8U cc; } }; Нужно чтобы структуры first и second были упакованы без паддинга, но между ними паддинг был и адрес второй структуры был выровнен. Я пользовался #pragma pack(1), но обе структуры упаковывались вместе. Адрес структуры second не был выровнен. Модификатор __packed потребовал задания для структур явного имени, что приводило в изменению способа доступа к внутренним элементам. #pragma data_alignment применяется для экземпляров структуры, а не в её определении. В результате родилось следующая жуть: #define __aligned_packed_structure_start(name) \ union name##_wrap \ { \ _Pragma("pack(push)") \ _Pragma("pack(1)") \ INT32U name##_dummy; \ struct name { #define __aligned_packed_structure_end \ }; \ _Pragma("pack(pop)") \ }; struct temp { __aligned_packed_structure_start(first) INT8U a; INT32U b; INT8U aa; __aligned_packed_structure_end __aligned_packed_structure_start(second) INT8U c; INT32U d; INT8U cc; __aligned_packed_structure_end }; То есть каждую такую упаковываемую структуру му кладем в union оболочку с 4байтой переменной, и меняем туда-сюда упаковку. Обратите внимание, что для подстановки #pragma внутрь макроса используется _Pragma("") и на создание новых токенов посредством конкатенации ##. Может кому пригодится. Может кто посоветует что-то проще. Может IAR введёт такую вещь как __align__(num), которая бы ставила точку выравнивания в объявлении структуры. -
Я как раз колеблюсь между мнением swisst про идеалогическую неправильность и мнением Petka, про то, что вечный while тоже как бы зависание в самом низком приоритете. Как я понимаю из дискуссии, никаких принципиальных отличий или ограничений зависание в прерывании не накладывает. Если интересны детали, то я решаю проблему о пересылке команд управления из USB в несколько устройств по шине I2C и обратно. У I2C так организован протокол, что ведомое устройство не может само прислать ответ на команду. Поэтому удобно сразу после пересылки команды требовать ответа на неё. То есть проводить одну транзакцию вопрос-ответ не выходя из прерывания USB. С другой стороны, зависание USB в ожидании ответа по I2C может сломать USB соединение.
-
Нормально ли писать прошивку для процессора Cortex-M3, где всё время выполняется прерывание с низким приоритетом, а остальные прерывания прерывают его, так как их приоритет выше? Контроллер NVIC в процессоре достаточно навороченный и вроде умеет прерывать одни прерывания более высокоприоритетными. С другой стороны даже надолго зависать в низкоприоритетном прерывании уже идеалогически неправильно, ИМХО. Какие могут возникнуть проблемы от такого подхода? Речь идёт о контроллерах TI серии Stellaris.
-
Нужен миниатюрный дисплей на eink
=Zap= ответил =Zap= тема в Средства индикации
Всем огромное спасибо! То, что есть в Терре, большевато, но подойдёт. Не знал, что такое уже есть в свободной розничной продаже. Про eink в USB флэшках я знаю. Там только четыре сегмента. Еще я нашёл eink во внешних жёстких дисках, но там не графический. Еще есть в часах. К сожалению запустить такое можно только обратным инженирингом :( -
Нужен миниатюрный дисплей на eink
=Zap= опубликовал тема в Средства индикации
Задача: удерживать картинку на дисплее при мощности источника питания около нескольких микроватт. Размер дисплея должен быть несколько сантиметров. Не больше. Eink позволяет удерживать картинку без питания. Memory-LCD дисплеи требуют около микроватта. Это, похоже, едиснтвенные подходящие технологии. Вопрос: где купить или откуда можно выдрать такие дисплеи?