Перейти к содержанию
    

Goofy

Свой
  • Постов

    169
  • Зарегистрирован

  • Посещение

Весь контент Goofy


  1. Спасибо что написали! Чуть позже отвечу Консультанты по сертификации у нас есть, зарубежные. Если среди "консультантов БАРСа" есть те, кому может быть интересна вакансия, буду благодарен за наводку. Если интересно, пишите. Там кроме руководительских вакансий будут и разработческие
  2. Привет! На крупный международный проект по созданию систем автономности летательных аппаратов ищем руководителя направления разработки встраиваемого программного обеспечения на C/C++. Сайт компании: www.uav-siberia.com Вилка ЗП: 250 - 380к ра руки. Котнакт: makarov ЭТ uav-siberia.com актуальная вакансия тут (по возможности читать именно там): https://hh.ru/vacancy/43838915 Обязанности: организация и контроль процесса разработки согласно DO-178; руководство и непосредственное участие в прототипировании программных решений; взаимодействие и координация со смежными руководителями; участие в разработке архитектуры программного комплекса в целом и его составных частей; формирование стандартов для проекта, кода и требований; участие в разработке требований как уровня прибора, так и уровня системы; участие в формировании команды; участие в разработке ПО. Требования: подтвержденная экспертиза в области встраиваемого ПО, подтвержденная физико-математическая и системно-инженерная подготовка - ваша задача сформировать планку для остальной команды; опыт работы в рамках стандартов разработки ПО DO/КТ-178/254 ISO26262, ГОСТ Р 51904; опыт / готовность выстраивания удалённой работы всего подразделения; свободное владение инструментами экосистемы разработки Linux (make, cmake, doxygen, plantUML, bash, python); опыт разработки приложений под операционные системы реального времени (FreeRTOS, QNX, в т.ч. ARINC653 совместимых: VxWorks, LynxOS); знание паттернов и конкретных реализаций механизмов межпроцессного взаимодействия (IPC); понимание цифровой схемотехники; знание нотаций ER и UML; приветствуется опыт работы в среде matlab/Simulink; поставленные устные и письменные коммуникативные навыки на русском и английском языке. Условия: гибкий график; удалённый режим работы; амбициозная команда с 15 летним опытом разработки и производства систем управления полётом беспилотных летательных аппаратов; обучение по ARP4754 / DO-178; оплачиваемые отпуска и больничные; доп бонусы, обсуждаемые на собеседовании. Если по навыкам ещё не Ваше, но хотите развиваться в эту сторону - всё равно пишите.
  3. Это вот это место: http://www.bobrovylog.ru/ Порядка 1 тыс на 10 подъёмов, чуть больше - на весь день Есть всяческие сезонные абонименты
  4. Много ли городов миллионников, где в городской черте есть такое дело? :)
  5. Судя по всему, посмотреть мир Вам не очень то удалось. Посмотрите хоть по картинкам в гугле тот же самый Красноярск. Всё очень относительно. Если зайти в среднестатистическую коммуналку в центре Спб, то можно обнаружить, что такого ужаса ещё нужно поискать. Но народ там селится не за декором и целым потолком с полами. А вы говорите дыра...
  6. Про место и утешение, можете по-подробнее раскрыть мысль? :)
  7. Нам познакомится в любом случае интересно, пишите, если есть взаимный интерес, в будущем могут быть какие то задачи. В контексте, обозначенном выше, удалёнка не рассматривается.
  8. Если учитывать, что компания построена с нуля, то динамика в этом плане оч положительная! Будем рады комплексным бизнес предложениям. КТ-254 - это весьма общий документ, относящийся больше к системе менеджмента качества, поэтому и не указан. В нашей экосистеме большинство требований стандарта реализовано с рождения компании, поэтому для квалифицированного разработчика особой разницы нет. Топикстартер сертификацию будет проходить в любой точке планеты по мере появления бизнес целесообразности для этого процесса. Для военных - в составе изделия с заказчиком. Для гражданских пилотируемых судов - пока не наш фокус. Для гражданского беспилотия до 30 кг этого не требуется. Для гражданского беспилотия после 30 кг - всё нельзя вообще. Пока-что.
  9. Переезд компании это её убийство :) Строиться будем в сибири, в Красноярске :)
  10. Эт моя голубая мечта, Сэр. Отстроится в живописном месте за городом с адекватной доступностью. Посёлок котеджный там построить.
  11. Видите поле для кооперации в Вашей местности? Пишите :) Кто про что, а Бамбук про "конкретику"!
  12. Заплатим столько, на сколько договоримся. Чемоданы тоже можно.
  13. Спасибо за обратную связь! Признаём проблемы, сайт ложится по вине провайдера каждый день после праздников. Разбираемся. Сайт восстановит работу через некоторое время. Спасибо участникам опроса! Что касается денег - всё обсуждается. Что касается доверия - решается общением. Не буду скрывать, что вакансия ориентирована больше на молодых (до 30, 32х лет), готовых вырасти под эти требования в короткий срок.
  14. Компания "Автономные аэрокосмические системы" в настоящий момент усиливает радиотехническое направление и нуждается в хороших специалистах. Справка о имеющемся заделе (подробности в нижней части сообщения): широкая номенклатура измерительных и исполнительных устройств систем управления полётом БПЛА; линейка командно-телеметрических радиолиний; программно-определяемые системы радиосвязи; вычислители, инерциальные блоки. Обязанности: проектирование цифровой радиоэлектронной аппаратуры различной сложности: этапы Э1, Э2, Э3 (с созданием УГО), ПП, корпус в комплексе (смежный отдел); руководство разработкой РЭА с определённого этапа сотрудничества (распределение вышеуказанных задач между коллегами); Требования: высшее техническое образование по специальности "Радиотехника" и аналогичным специальностям; отличные знания цифровой и аналоговой схемотехники; свободное чтение документации на английском языке; опыт работы по специальности не менее 5 лет; знание современной элементной базы; знание САПР: Altium Designer, MATLAB; опыт разработки электрических принципиальных схем и печатных плат высокой сложности: DDR, PCIe; опыт работы с системами контроля версий svn, git; знание конструкторского документооборота (ГОСТ, ЕСКД); навык технического письма: ТЗ, ТУ, ПМ. Условия: молодой, дружный, позитивный и талантливый коллектив (средний возраст 30 лет); сложные, интересные проекты: от идеи до реализации; устройство по ТК РФ: отпуск как положено, вся заработная плата официальная; зарплату, соответствующую уровню компетенции (60-120К на руки); помощь с переездом (если Вы не из Красноярска); вложения в Ваше развитие: конференции, выставки, командировки на испытания. О компании: https://moikrug.ru/companies/avaks www.uav-siberia.com https://www.facebook.com/uavsiberia О вакансии в лирической форме: https://vk.com/wall1027864_3236 Если заинтересованы, писать на почту: makarov AT uav-siberia DOT com Очень просим поучаствовать в опросе. Это поможет нам сделать что-то хорошее и быстрее. PS Есть вакансия на тему xHDL / Радиосвязи / Радиолокации. Опубликую чуть позже.
  15. Вопрос решился сменой Stream"а, который АЦП делил с SPI.
  16. Коллеги, пытаюсь запустить АЦП в режиме опроса нескольких каналов через DMA. #include "stm32f4xx_rcc.h" #include "stm32f4xx_dma.h" #include "stm32f4xx_adc.h" #include "ADC.h" #define min(a,B) ( ( (a) > (B) ) ? (B) : (a) ) // Длина выборки для скользящего среднего #define SELECTION_SIZE 1 // Количество каналов которое опрашивается АЦП // должно равнятся числу регистрируемых к опросу линий: // ADC_RegularChannelConfig ( ADC1, ADC_Channel_10, rank++, ADC_SampleTime_480Cycles ); #define CHANNELS_NUMBER 8 #define BUFFER_SIZE ( SELECTION_SIZE * CHANNELS_NUMBER ) volatile uint16_t adc_buffer [ BUFFER_SIZE ]; int adc_init ( ) { RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_DMA2, ENABLE ); RCC_AHB1PeriphClockCmd( RCC_AHB1Periph_GPIOC, ENABLE ); RCC_APB2PeriphClockCmd( RCC_APB2Periph_ADC1, ENABLE ); GPIO_InitTypeDef GPIO_InitStruct; GPIO_StructInit ( &GPIO_InitStruct ); GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AN; GPIO_Init ( GPIOC, &GPIO_InitStruct ); RCC_AHB1PeriphClockCmd ( RCC_AHB1Periph_DMA2 , ENABLE ); DMA_InitTypeDef DMA_InitStructure; DMA_DeInit(DMA2_Stream0); DMA_StructInit ( &DMA_InitStructure ); DMA_InitStructure.DMA_Channel = DMA_Channel_0; DMA_InitStructure.DMA_BufferSize = BUFFER_SIZE; DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory; DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t) adc_buffer; DMA_InitStructure.DMA_MemoryDataSize = DMA_PeripheralDataSize_HalfWord; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t) &ADC1 -> DR; DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Disable; DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single; DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; DMA_InitStructure.DMA_Priority = DMA_Priority_High; DMA_Init ( DMA2_Stream0, &DMA_InitStructure); DMA_Cmd ( DMA2_Stream0 , ENABLE ); ADC_InitTypeDef ADC_InitStruct; ADC_CommonInitTypeDef ADC_CommonInitStructure; ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent; ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div8; ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled; ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles; ADC_CommonInit( &ADC_CommonInitStructure ); ADC_StructInit ( &ADC_InitStruct ); ADC_InitStruct.ADC_Resolution = ADC_Resolution_12b; ADC_InitStruct.ADC_ScanConvMode = ENABLE; ADC_InitStruct.ADC_ContinuousConvMode = ENABLE; ADC_InitStruct.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None; ADC_InitStruct.ADC_NbrOfConversion = CHANNELS_NUMBER; //CHANNELS_NUMBER; ADC_InitStruct.ADC_ExternalTrigConv = 0x00; ADC_InitStruct.ADC_DataAlign = ADC_DataAlign_Right; ADC_Init ( ADC1, &ADC_InitStruct ); ADC_TempSensorVrefintCmd ( ENABLE ); ADC_Cmd ( ADC1, ENABLE ); uint8_t rank = 1; ADC_RegularChannelConfig ( ADC1, ADC_Channel_10, rank++, ADC_SampleTime_56Cycles ); ADC_RegularChannelConfig ( ADC1, ADC_Channel_11, rank++, ADC_SampleTime_56Cycles ); ADC_RegularChannelConfig ( ADC1, ADC_Channel_12, rank++, ADC_SampleTime_56Cycles ); ADC_RegularChannelConfig ( ADC1, ADC_Channel_13, rank++, ADC_SampleTime_56Cycles ); ADC_RegularChannelConfig ( ADC1, ADC_Channel_14, rank++, ADC_SampleTime_56Cycles ); ADC_RegularChannelConfig ( ADC1, ADC_Channel_15, rank++, ADC_SampleTime_56Cycles ); ADC_RegularChannelConfig ( ADC1, ADC_Channel_TempSensor,rank++, ADC_SampleTime_56Cycles ); ADC_RegularChannelConfig ( ADC1, ADC_Channel_Vrefint, rank++, ADC_SampleTime_56Cycles ); ADC_DMARequestAfterLastTransferCmd(ADC1, ENABLE); ADC_DMACmd ( ADC1 , ENABLE ); ADC_SoftwareStartConv ( ADC1 ); return 0; } int adc_moving_average_read_all_channels ( volatile uint16_t *channels, uint32_t n ) { uint32_t sum; int i, j; int chn = min ( n, CHANNELS_NUMBER ); for ( i = 0; i < chn; i++ ) { sum = 0; for ( j = 0; j < SELECTION_SIZE; j++ ) { sum += adc_buffer [ i + j * ( CHANNELS_NUMBER ) ]; } channels [ i ] = sum / SELECTION_SIZE; } return 0; } Проблема в том, что конвертация затыкается (глядя отладчиком данные не обновляются). В ADC_SR устанавливается флаг ADC_SR_OVR. Пытаюсь в прерывании по ADC_IT_OVR сбрасывать DMA и ADC (код ниже, на сколько понял из датащита), однако ничего не меняется. if ( ADC1 ->SR & ADC_SR_OVR ) { ADC1 ->SR &= ~ADC_SR_OVR; DMA_Cmd ( DMA2_Stream0 , DISABLE ); DMA2_Stream0 -> M0AR = adc_buffer; DMA2_Stream0 -> NDTR = BUFFER_SIZE; DMA_Cmd ( DMA2_Stream0 , ENABLE ); ADC_SoftwareStartConv ( ADC1 ); overruns_num++; } Частота тактирования модуля АЦП - 10,5 МГц ( SYSCLK = ( ( 16 МГЦ / 20 ) * 210 ) / 2, где 20, 210, 2 - PLL_M, PLL_N, PLL_P соответственно ). Корректно ли я сбрасываю overrun ситуацию? Отчего происходит оверран, когда приоритет DMA stream выставлен самый большой? При этом число остальных DMA запросов в системе не велико: 1Гц 128 байт по SPI, 20 байт по USART. В целом прошу совета как организоваться опрос. Рассчитывал на то, что АЦП будет всегда формировать в памяти выборку для каждого канала для фильтрации скользящим среднем (увеличивая SELECTION_SIZE), а поток (таск) сервиса телеметрии будет эту выборку считывать ( adc_moving_average_read_all_channels () ). Измерения носят диагностический характер и частота их опроса критичной не являются.
  17. Да в том то и дело что это не FPGA, а iMX53 от фрискейла. Кроме смены имени (что меньшее из проблем) хотелось бы группировать пины. А тут годиться только 3й вариант. (Альтернативный имеется ввиду просто другой компонент?) Но и с этим вариантом можно нарваться, контроль коррекности распиновки усложняется. Объясню почему. В убогой неудобной документации фрискейла все реконфигурируемые пины в привязке к футпринту обозначены однозначно: дефолтный вариант конфигурации. Если мы меняем это название, то проверять останется только через таблицы или их утилиту IOmux. И это явно слабое звено. Можно конечно прописать через слэш нужную альтернативную конфигурацию, но схема будет читаться хуже. А вот со скрытым названием и высвеченным параметром может получиться. Печалит только то, что УГО выходит не универсальным. Пуще этого печалит то, что процесс итерационный и то самое УГО придётся править по мере оптимизации трассировки, меняя конечную конфигурацию пинов: один пин выдернуть откуда-то, другой куда-то вернуть. В этот момент кто-то позвонил, позвал и появляется шанс вложить 1000$ в никуда. Большинство нестыковок конечно же всплывёт до запуска в печать, но хотелось бы построить процесс с минимумом ненужных и непрозрачных операций.
  18. Разрабатываю устройство на базе iMX53, у которого 30% ножек могут конфигурироваться под различные выводы внутренней периферии. Для гармонии с собой и внешним миром хочется группировать выводы периферии в УГО по назначению: SPI с SPI, UARTы c UARTами и т.д. Изначально все пины в документации однозначно обозваны и в первой итерации рисования УГО уже распределены. В реальном дизайне далеко не факт что конкретный модуль (пусть будет I2C) будет использоваться, при этом как его пин SDA будут задействованы на, например, UARTе TX. А UART RX, допустим, подключается к пину с дефолтной принадлежностью к пину шины адреса модуля внешней памяти (EMI). Если ничего не предпринимать, то получим размазанную по куче листов схему подключения UARTа. Абсолютно не читаемо. Конечно же можно цеплять название цепи, писать коментарии и т.д. В идеале хотелось бы прорисовать дублированные пины, но уже с желаемым названием и подписью номера конфигурации пина, пример - UART0_RX (alt3). В реальности имеем дело с дублированными десигнаторами, причитанием компилятора и не рабочим экспортом схематика в пцб. Есть соображения как обойти ситуацию? Можно бы иметь виртуальные дополнительные пины в схематике, не ссылающиеся на футпринт, но совмещённые в одну цепь с пинами оригинальными. Однако это возможно только если совмещаемый пин скрыть.
  19. Весьма актуально использование серии МР1: 30, 50 контактов. Есть идея (пусть и не самая дешёвая) Делать переходник в виде гибкой ПП - шлейфа, который напрямую запаивается на разъём и на плате паяется в нахлёст, а на пути к разъёму хомутается. Вопрос лишь в том, как долго держут вибрацию гибкие ПП и их пайка в нахлёст? Или надёжнее тромбовать контакты шлейфа в разъём на основной плате? Но главный вопрос собственно в целесообразности такого решения. Можно конечно по старинке: МГТФом на плату пин за пином и залить мастикой, но в нашем веке - не комильфо. Или, таки, комильфо?
  20. По поводу порядка вы правы, не помню опячатался я тогда или затупил. Adp1712 использую, проблем небыло. Собрано 6 экземпляров. Для В ревизии чипа это порядок не критичен, все одновременно подается.
  21. Непропаи. Подпаял JTAG. Непропаи кроме как на УСБ были ещё на шине данных. По последовательному порту через sam-ba не сработать если кварц отличается от того что в ките. Т.к. смена бод рейта происходит безвозвратно и на неправильное значение. Нужно пересобирать апплеты самбы или пользоваться USB.
  22. Новая самба - 2.9 с патчами результата не дала. Эффект тот же.
  23. Сам-ба 2.8 До этого тестировал и 2.9 попробую ещё раз. Ещё момент: в рукопашную через терминал попробовал законфиругировать PLLA, затем MCKR. (согласно исходниками bootstram 1.13) Так вот на последнем дивайс перестаёт регировать. Самба при старте как конфигурирует клоки и с каких конф файлов? Я же выбираю ...9g20-EK, а там кварц 18.432. У меня 12мгц
×
×
  • Создать...