Jump to content

    

cebotor

Свой
  • Content Count

    135
  • Joined

  • Last visited

Community Reputation

0 Обычный

About cebotor

  • Rank
    Частый гость

Контакты

  • Сайт
    http://

Информация

  • Город
    Бронницы

Recent Profile Visitors

1711 profile views
  1. В ООО "Монолит" требуется: Программист встраиваемого ПО (микроконтроллеры). Зарплата от 100тр до 140тр по результатам собеседования Обязанности: - Разработка встраиваемого ПО для устройств на основе 32-битных и 8-битных микроконтроллеров (в основном семейство STM32) - Участие в совместной разработке с использованием системы контроля версий, рецензирования кода, баг-трекера. Требования: - Знание языка C. - Знание какой либо из архитектур ARM7, Cortex-m3 (m4 m7). - Опыт работы с периферией: UART, SPI, DMA, ETHERNET(желательно), USB(желательно) - Опыт разработки ПО под микроконтроллеры для серийных проектов 2 года или более. - Умение писать хорошо структурированный и документированный код. - Знания цифровой схемотехники. Приветствуется: - Опыт SVN, Git Gitlab - Опыт использования баг-трекеров (от mantis до redmine) - опыт совместного ведения кода . Условия: - Свободный график (обязательное присутствие в офисе по служебной необходимости) - Дружный коллектив. - Возможности профессионального развития и роста. - Работа ведется на современном оборудовании и элементной базе. - Работа в районе м. Бабушкинская. - Полный день. - Зарплата от 100тр до 140тр по результатам собеседования Илья Локтев monolit17ooo@gmail.com
  2. В ООО "Монолит" требуется: Программист встраиваемого ПО (микроконтроллеры). Обязанности: - Разработка встраиваемого ПО для устройств на основе 32-битных и 8-битных микроконтроллеров (в основном семейство ST) - Участие в совместной разработке с использованием системы контроля версий, рецензирования кода, баг-трекера. Требования: - Знание языка C. - Знание какой либо из архитектур ARM7, Cortex-m3 (m4 m7). - Опыт работы с периферией: UART, SPI, DMA, ETHERNET(желательно), USB(желательно) - Опыт разработки ПО под микроконтроллеры для серийных проектов 2 года или более. - Умение писать хорошо структурированный и документированный код
Знания цифровой схемотехники. Приветствуется: - Опыт SVN, Git Gitlab - Опыт использования баг-трекеров (от mantis до redmine) - опыт совместного ведения кода . Условия: - Дружный коллектив; - Возможности профессионального развития и роста; - Работа ведется на современном оборудовании и элементной базе; - Работа в районе м. Бабушкинская. - Полный день. - Возможна работа из дома по необходимости. - Оплата по уровню компетенции по результатам собеседования от 80т.р. Илья Локтев monolit17ooo@gmail.com
  3. В ООО "Монолит" требуется: Программист OS Linux встраиваемые системы Обязанности: - Разработка приложений и утилит для встраиваемых систем. - Рецензирование исходных кодов (Code Review). - Совместное ведение исходных кодов с использованием Git GitLab. Требования: - Опыт работы в OS Linux. - Опыт программирования на C (C++). - Знание хотя бы одной из систем совместного ведения проектов (Git, SVN …). - Опыт написания системных приложений для встраиваемых систем, работа с периферией. Приветствуется: - Опыт программирования в Assembler. - Знание архитектуры ARM, Cortex. - Опыт сборки Linux под встраиваемые системы (Buildroot, другие способы), опыт разработки драйверов ядра. Условия: - Дружный коллектив. - Возможности профессионального развития и роста. - Работа ведется на современном оборудовании и элементной базе. - Работа в районе м. Бабушкинская. - Полный день. - Возможна работа из дома по необходимости. - Оплата по уровню компетенции по результатам собеседования от 80т.р. Илья Локтев monolit17ooo@gmail.com
  4. Stm32f103 +Tim PWM странный глюк

    Большое спасибо откликнувшимся! Ошибка найдена - именно такая как указал Timmy. Как и часто бывает корень зла - донор кода, а им являются библиотечные функции. В актуальных на данный момент библиотеках от ST есть файл stm32f1xx_hal_tim.c (у меня версия от мая сего года). В этом файле в функции HAL_TIM_PWM_Start_DMA есть строки (есть для всех каналов но данные строки для 3го канала) Код    case TIM_CHANNEL_3:     {       /* Set the DMA Period elapsed callback */       htim->hdma[TIM_DMA_ID_CC3]->XferCpltCallback = TIM_DMADelayPulseCplt;       /* Set the DMA error callback */       htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback = TIM_DMAError;       /* Enable the DMA channel */       HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)pData, (uint32_t)&htim->Instance->CCR3,Length);       /* Enable the TIM Output Capture/Compare 3 request */       __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC3); //!!!!!!! неверно, нужно TIM_DMA_UPDATE в которых выставляется TIM_DMA_CC3 как источник ДМА запроса. что неверно. требуется установить в качестве источника запроса TIM_DMA_UPDATE __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_UPDATE); Цитата(amiller @ Aug 18 2017, 06:01) В общем и целом не совсем корректно писать в теневой регистр ровно в тот момент, когда он переписывается в основной регистр сравнения. И неважно через ДМА или напрямую. Время от события до выполнения записи ДМА не всегда одинаковое и может зависеть от многих факторов (частоты шин, их занятость и т.п.) Я бы синхронизировал ДМА по какому нибудь событию таймера, которое гарантированно не совпадает с апдейтом. Для этого можно задействовать свободный канал сравнения, если такие есть. Точно, не корректно одновременно с UE, надо это делать в ответ на этот самый UE( ставить источник UDE как написал Timmy), то есть позже самой записи Цитата(SSerge @ Aug 18 2017, 09:12) https://electronix.ru/forum/index.php?s=&am...t&p=1201975 Спасибо за ссылку, сам механизм работает без бёрста, то есть запускается трансфер по запросу дма в обычный регистр релоада. Проблема в выпадениях (была) Цитата(Timmy @ Aug 18 2017, 22:08) Тут принципиально неверное управление таймером. Надо записывать теневые регистры только в ответ на UE, никаких CCxDE, только UDE, тогда гарантируется латентность записи в один период таймера(по ARR). Запись регистров непосредственно по событиям от ССR - это очень специальные случаи и они не для чайников. Вы абсолютно правы, пропустил маразмус мимо глаз! кроме того можно за один период при работе по событию CCR схватить больше чем одно обновление, что было бы еще веселее. Отдельное спасибо за чайника
  5. Приветствую всех! Вопрос по работе затертого уже всеми давно до дыр stm32f103 в части связки PWM + DMA Обратился бывший коллега - задача проста, выдавать в PWM аналоговый сигнал, при чем больше частота PWM - тем лучше. Частоты CPU 72000000 PWM 400000 - разрешение получается 180 отсчетов CPU. Выдаем четыре отсчета в кольцевом режиме Код  mas_sin[0]=160; //!!!!!!!!!!! если здесь заменить на 170 то увидим сдвиг   mas_sin[1]=90;   mas_sin[2]=30;   mas_sin[3]=10; Наблюдаемый эффект: при небольшом заполнении PWM все хорошо, при приближении заполнения к 100% - импульс дублируется в следующий, следующий сдвигается в третий, а третий "выпадает"... Не поверил я что может быть неописанная засада в таком не сложном деле. Он прислал код. Я проверил и упростил код до минимального "сбоящего" варианта без кучи ненужностей. Далее собственно полный (не длинный ) код CODE// задаем частоты - выдернуто из SystemClock_Config(); FLASH->ACR= LL_FLASH_LATENCY_2; RCC->CR|= RCC_CR_HSEON; while ((RCC->CR&RCC_CR_HSERDY)!=(RCC_CR_HSERDY)); RCC->CFGR=(LL_RCC_PLLSOURCE_HSE_DIV_1 & (RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE)) | LL_RCC_PLL_MUL_9; RCC->CR|=RCC_CR_PLLON; while((RCC->CR&RCC_CR_PLLRDY)!=RCC_CR_PLLRDY); RCC->CFGR|=LL_RCC_SYSCLK_DIV_1; RCC->CFGR|=LL_RCC_SYS_CLKSOURCE_PLL; while (RCC->CFGR& RCC_CFGR_SWS!= LL_RCC_SYS_CLKSOURCE_STATUS_PLL); RCC->CFGR|=LL_RCC_APB1_DIV_2; RCC->CFGR|=LL_RCC_APB2_DIV_1; mas_sin[0]=160; //!!!!!!!!!!! если здесь заменить на 170 то увидим сдвиг mas_sin[1]=90; mas_sin[2]=30; mas_sin[3]=10; RCC->APB2ENR |= RCC_APB2ENR_IOPBEN | RCC_APB2ENR_AFIOEN; AFIO->MAPR &= ~AFIO_MAPR_SWJ_CFG; AFIO->MAPR |= AFIO_MAPR_TIM3_REMAP_PARTIALREMAP | AFIO_MAPR_SWJ_CFG_JTAGDISABLE; GPIOB->CRL &= ~GPIO_CRL_CNF4 & ~GPIO_CRL_CNF5 & ~GPIO_CRL_CNF0 & ~GPIO_CRL_CNF1; GPIOB->CRL |= GPIO_CRL_CNF4_1 | GPIO_CRL_MODE4_0 | GPIO_CRL_CNF5_1 | GPIO_CRL_MODE5_0 | GPIO_CRL_CNF0_1 | GPIO_CRL_MODE0_0 | GPIO_CRL_CNF1_1 | GPIO_CRL_MODE1_0; RCC->APB1ENR |= RCC_APB1ENR_TIM3EN; TIM3->CCER |= TIM_CCER_CC1E | TIM_CCER_CC2E | TIM_CCER_CC3E | TIM_CCER_CC4E; TIM3->CCMR1 |= TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1PE | TIM_CCMR1_OC2M_2 | TIM_CCMR1_OC2PE; TIM3->CCMR2 |= TIM_CCMR2_OC3M_2 | TIM_CCMR2_OC3PE | TIM_CCMR2_OC4M_2 | TIM_CCMR2_OC4M_1 | TIM_CCMR2_OC4PE; TIM3->CCMR2 |= TIM_CCMR2_OC4M_0 | TIM_CCMR2_OC3M_1; TIM3->DIER |= TIM_DIER_CC1DE | TIM_DIER_CC3DE; TIM3->CR1 |= TIM_CR1_CEN | TIM_CR1_ARPE; TIM3->PSC = 0; TIM3->ARR = PREC-1; RCC->AHBENR |= RCC_AHBENR_DMA1EN; DMA1_Channel2->CPAR = (uint32_t)&TIM3->CCR3; DMA1_Channel2->CMAR = (uint32_t)&mas_sin[0]; DMA1_Channel2->CNDTR = POINTS; DMA1_Channel2->CCR = DMA_CCR_MINC | DMA_CCR_CIRC | DMA_CCR_DIR | DMA_CCR_EN | DMA_CCR_MSIZE_0 | DMA_CCR_PSIZE_0; while(1); когда mas_sin[0]==160 видим следующую картинку но если заполнить еще чуть больше mas_sin[0]==170 то будет вот так: Долго смотрел в картинку схемы работы узла Capture/Compare - Может быть запись из DMA по событию совпадения CCR3 == CNT совпадает с событием UEV и пропускается? при этом релоад регистр не переписывается в теневой? Но с этим должны были столкнуться десятки и сотни? Не подскажет ли уважаемое сообщество, отчего не едут лыжи. Заранее спасибо.
  6. Российской компании, занимающейся разработкой современных защищенных цифровых систем связи, требуется инженер-электронщик. Область ответственности: Разработка принципиальных схем, инженерный надзор за разводкой и монтажом печатных плат, отладка устройств. Аппаратные компоненты, используемые в разработке: Контроллеры ARM -Cortex-Mx/Ax, ПЛИС Xilinx, SoC (system on chip) различных архитектур (ARM, Intel Atom), проводные интерфейсы различных типов (от 1200Бод до 10ГБод), беспроводные интерфейсы. Условия занятости: Полный рабочий день. Возможна удаленная работа в фазах разработки, не требующих личного присутствия. Также, для работы в области проектирования цифровых электронных устройств, программирования ПЛИС, микроконтроллеров и встраиваемых Linux-систем требуютсяребуются выпускники профильных специальностей, обладающие следующими качествами: опыт самостоятельной (можно любительской) работы в какой-либо из указанных областей; знание английского языка в степени, достаточной для беглого чтения технической документации; способность быстро усваивать новые знания; Расположение офиса: Москва, м.Свиблово, пл. Ростокино МЦК. Резюме в произвольном виде просьба направлять по адресу job@cansec.ru
  7. Уважаемые коллеги! В связи со срочно возникшей задачей, нашей фирме требуется помощь в ее реализации на микроконтроллерах K1986BE92QI (Миландр) в среде IAR EWARM. Требуется специалист, имеющий опыт(пусть и небольшой) работы с микроконтроллерами данного семейства, прошедший основные "подводные камни" и способный достаточно быстро подготовить несложную программную прослойку типа HAL для последующего написания нами прикладного кода. Конкретные задачи: - Создать проект в IAR-е. - настроить требуемые агрегаты: -- PLL, -- Таймеры, -- USART, -- CAN, -- датчик температуры -- вочдог - реализовать для интерфейсов обмена данными обработчики и функции API. Например USART_RX - прием по прерыванию в буффер FIFO, выставление глобального флага наличия данных. Релизация функции интерфейса вида bool uart_fifo_get_byte (uint8_t* byte); Для остальной переферии- аналогичный подход. Минимальное требование качества- работа обработчиков интерфейсов в неблокирующем режиме. Т.е. DMA использовать не обязательно, но "доставать" байты поллингом - тоже неприлично. Язык ANSI C. Срок самый сжатый- нужно как всегда "вчера", субъективно понимаем, что человеку который походил по этим граблям - работы на неделю факультатива. Платы у меня на руках - желательно забрать почти сразу. Требуемое вознаграждение пишите, пожалуйста, в почту. Или предложения в эту тему. cebotor@cansec.ru +79646440071 С уважением, Илья.
  8. Компания ТЭК Электроникс (Москва) ищет программиста микроконтроллеров. Требования: Высшее техническое образование. 24-30 лет, Москва/МО. Знание C. Опыт разработки встраиваемого ПО для серийных изделий желателен. Английский на уровне чтения технической документации. Знание ARM7, Cortex , схемотехники - приветствуется. Желание работать в команде. Заработная плата 50-60т.р. iloktev@tec-electronics.ru
  9. В инжиниринговую компанию требуется инженер программист по встраиваемым приложениям (embedded). Требования: Высшее техническое образование. 24-45 лет, Москва/МО. Английский на уровне чтения технической документации. Опыт работы не менее 3 лет. Опыт работы с процессорами ARM7, Cortex приветствуется. Требуется желание работать в команде, желательно знание основ совместной разработки ( система контроля версий, багтрекер). Приветствуется знание схемотехники. Обязанности: Разработка встроенного ПО специализированных устройств и комплексов (автомобильная охрана и сервис) на базе микроконтроллеров (в основном Cortex-M3), . Условия: Зарплата - 60тр+ (по результатам испытательного срока ) Испытательный срок 3 месяца. Офис м. Щелковская. Пятидневная рабочая неделя с 10-00 до 19-00. Оформление по ТК РФ. Контакты: Илья cebotor@gmail.com
  10. Цитата(Shtirlits @ Jun 30 2011, 11:55) Уверен, это иллюзия. PS: Это разные жанры. Если делать все самому, то трудно расширяться, когда деньги будут. Согласен погорячился - любая работа требует времени. Просто прилаживать ФС доводилось неоднократно, вот я и утрировал. Про ПС тоже согласен - самому делать все невозможно. Но сборка разных кусков все равно задача не для аутсорса. В случае портирования сторонних библиотек, работа по портированию сильно перекликается со сборкой , выносить ее в отдельный кусок - по моему нецелесообразно.
  11. Цитата(AlexandrY @ Jun 29 2011, 16:39) Видите ли ваши автоматы вам либо придется оставить при себе либо еще бОльшую сумму отдать, что бы кто-то по вашим автоматам что-то ваял параллельно решая реальную задачу. Все делается по готовым исходникам файловых систем. Что все? вне зависимости от задачи все делается по копипасту? Это портирование ка максимум, и оно на данном этапе не нужно. нужно создание. за переброс fatfs от чена, вообще гроша медного давать не стоит - это не работа это фигня. Вы реально не поняли объем задачи - в исходном объявлении нигде не написано - написать файловую систему совместимую с xxxx . Там написано - хранение данных в виде файлов. А еще про автоматы куда уж понятнее - логика продумана, структуры данных продуманы - с чего бы это больше отдавать за меньшую работу? И что за стеб насчет реальной задачи? Я не уверен что найду исполниетля , который продумает _внутреннюю_ логику достаточно хорошо за устраивающий меня бюджет. Поэтому внутренняя логика поставляется вместе с тех заданием. Если мнение исполнителя - "не будет работать", он откажется. И простите, откуда такая уверенность что именно по данной логике нельзя будет решить поставленную задачу? У меня есть опыт сотрудничества на уровне разделения труда между архитектором и исполнителем, а Вы, кажется вообще считаете такое сотрудничество невозможным. ПС - готовые исходники я за время написания ТЗ уже успел бы приладить и отладить, если бы как Вы верно заметили, здесь не было прорехи в таковых.
  12. Цитата(C2000 @ Jun 29 2011, 15:18) Ну и возмите в штат кордера, если найдете за эту зарплату хорошего. Спасибо за рекомендации. Обязательно попробуем разные возможности. Кстати я абсолютно не исключаю что бюджет будет увеличен, но в данный момент он такой, и оценивается эта работа именно из зарплаты кодера - программиста.
  13. Спасибо всем откликнувшимся. Цитата(follow_me @ Jun 29 2011, 00:39) а с внешним миром оно как-то будет общаться ? или эти функции нужно будет интерфейсить через какое-то своё API для внутреннего использования ? Не будет - библиотека для внутреннего использования Цитата(aaarrr @ Jun 29 2011, 01:57) Качественный FTL никак не может стоить 30тр, реальная цена отличается в разы, если не на порядок. Да но нам нужно не быстрее света, а качественный работник на сдельную оплату. Цитата(Vanchik @ Jun 29 2011, 09:53) Вот поэтому люди сюда и обращаются, а не в серьёзные фирмы, где действительно в разы дороже... Утопия - масштабируемый код можно покупать только как полуфабрикат, с постоянным контролем качества. Хотя в целом Вы правы - пытаясь сэкономить заказчик вкладывает свой контроль, проработку задания, последующие исправления за свой счет и прочие как административные так и инженерные ресурсы. Но это не тема для спора - это мой подход . ПС - серьезных фирм аутсорсеров - ау...... Цитата(AlexandrY @ Jun 29 2011, 10:25) Здесь как минимум два движка файловых систем надо реализовать плюс один слой абстракции. ИМХО, цена такому решению с документацией будет от 200 т.р. Есть ТЗ с указанием логики работы почти всех автоматов. Нужно излить в синтаксис С , отладить работу переферии, поймав какие то косяки, сделать это без нецензурностей и с коментариями. Кто нужен - да по сути кодер а не разработчик. На три рабочих недели фултайма. Больше там делать нечего, при всем моем уважении. Мы оцениваем месяц работы кодера на полную занятость в 50 т.р. Мне не требуются услуги алгоритмиста, системного архитектора, аналитика и пр. Откуда 200 тр? И еще про слой абстракцию - это я так понимаю из масс сторэджа растут ноги? а про два движка совсем не понял. Цитата(ivstech @ Jun 29 2011, 11:28) это не подойдет? http://en.pudn.com/dl.asp?id=723821 к сожалению нет. структура нанд памяти предполагает наличие блока размером в 16-32 страницы, которые могут быть стерты лишь одновременно. Из этого вытекает либо размер сектора в несколько десятков килобайт , либо невозможность реализовать классическую ФАТ без дополнительного слоя абстракции, сборщика мусора и прочее, что нам сильно не надо. Цитата(Mikle Klinkovsky @ Jun 29 2011, 12:35) За такой бюджет в лучшем случае будет "черный ящик" без исходников... Конечно. не найдем за такой бюджет того что описано в шапке - обязательно повысим постепенно до милиарда. а пока.... Кстати нам и требуется "упрощенная пародия". для наших внутренних нужд. Только не от студента а с заранее заказанной логикой.
  14. Требуется удаленно или очно (по желанию): По детальному ТЗ (с частичным описанием внутренней логики) реализовать в среде IAR, используя процессор линейки STM32, хранение информации в виде файлов на внешней FLASH - памяти. Обеспечить ряд типичных для файловых систем функций. Создание и запись файлов, чтение, удаление, проверку свободного пространства и т.п. В качестве основного носителя будет использоваться NAND память фирмы numonyx (micron). Для хранения вспомогательных данных - eeprom микросхема с SPI интерфейсом серии 93cxx (95cxxx). Условия работы: Основным требованием является написание понятного,хорошо структурированного,открытого для понимания и для дальнейшей модернизации кода. Точно НЕ требуется написание хорошо работающих "черных ящиков". Стоимость работы - 30тр. Премия за своевременное исполнение - 10тр. Заинтересованных просьба обращатся cebotor@gmail.com
  15. В инжиниринговую компанию требуется инженер программист по встраиваемым приложениям (embedded). Требования: Высшее техническое образование. 24-45 лет, Москва/МО. Английский на уровне чтения технической документации. Опыт работы не менее 3 лет. Опыт работы с ядром ARM7 приветствуется. Приветствуется знание схемотехники. Обязанности: Разработка встроенного ПО специализированных устройств и комплексов (автомобильная охрана и сервис) на базе микроконтроллеров (в основном Cortex-M3), работающих в реальном времени. Условия: Зарплата - 60тр+ (по результатам испытательного срока ) Испытательный срок 3 месяца. Офис м. Щелковская. Пятидневная рабочая неделя с 10-00 до 19-00. Оформление по ТК РФ. Контакты: Илья Локтев cebotor@gmail.com