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

tronix286

Участник
  • Публикаций

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

  • Посещение

Репутация

0 Обычный

Информация о tronix286

  • Звание
    Участник
  1. Чтоб не изобретать велосипед, может быть уже кто-то делал такое? Например нужна имитация фиговой проводки бортовой сети автомобиля 24В. Что значит фиговой? Ну, например, это может быть окисленная скрутка, недожатый соединитель, отпадающий при хорошей кочке и тому подобное. Может быть вообще мат модель какая-нибудь данных процессов есть? ) Собственно, интересно протестировать устройство в условиях плохой проводки (по питанию), не устанавливая его на реальный авто.
  2. 1-3 дня??? Первую плату 10 штук с ее 0603 я соберу за час максимум, с перекурами. Вторую - 10 штук за чуть больше, чем пол дня рабочих, остальные полдня - написание тестовой прошивки и отладка. Платы то ни о чем вообще.
  3. I2C

    Хоспаде. Задача решается на одном STM23F030, который стоит меньше атмеги и меньше пика, особенно если штук 500 хотя-бы взять, за вечер под певко. Просто ужас что школьникам преподают.
  4. Радиомонтаж на дому

    А что за SMT компоненты такие?
  5. Программист STM32

    Цитата(Igor_FPGA @ May 11 2016, 16:40) Основное да - трекеры. Сумма, оформление меня не смущают. Присылайте резюме, части исходников, список проектов релевантных проектов STM32 + FreeRTOS/GSM. А какие части исходников то? Ну есть таски парсинга GPS, общение с мопедом, запись точек сначала в очередь, потов во флешку, отслеживание аналоговых кнопок, измерение ADC напряжения питания и просто других, управление открытими коллекторами для блокировки и тд, общение по омникому на 485 со всякими датчиками топливными. Что присылать? Да и присылать стыдно - потому что не дают времени и говнокод. Работает конечно, но причесать некогда.
  6. Программист STM32

    Цитата(Igor_FPGA @ May 2 2016, 14:42) Добрый день, на постоянную работу в офис в Москве требуется опытный программист STM32 микроконтроллеров. Необходим подтвержденный проектами, исходниками, знаниями опыт не менее 2-х лет с STM'кой, опыт с FreeRTOS, опыт с беспроводными модулями (наиболее желаемо - GSM, но и др. полезно/приемлимо). Важен дисциплинированный подход, удаленка/совместительство не рассматривается. Область разработки - носимые устройства. Зарплата - абсолютно адекватна рынку, обсуждается лично, т.к. сильно зависит от опыта. Присылайте резюме на: avromelec@gmail.com Ну стм, ну фриртос. Что программировать будем? Трекеры, или что? Не всякая работа по душею. Подтвержден проектами, многими. Мне нужна белая зарплата, и тыщ 70 минимум. Можно и не трекеры, можно закладки, температуруные датчики и так далее. Но главное по трудовой.
  7. STM32F302 и HID USB 32 байта

    Вот и я говорю. А вместо таблицы, у меня в начале памяти приемо-передающие буфера (то есть я там вижу данные свои которые шлю в контроллер). Вот те и CubeMX на пару с HAL. Короче замес был в том, что изначально в Cube я создал HID Class, а не Custom HID Class. Код сгенерился для одной ендпоинт входяшей. В частности, в функции USBD_LL_Init нужно правильно настраивать буфера. Было: Код HAL_PCDEx_PMAConfig(pdev->pData , 0x00 , PCD_SNG_BUF, 0x18);   HAL_PCDEx_PMAConfig(pdev->pData , 0x80 , PCD_SNG_BUF, 0x58);   HAL_PCDEx_PMAConfig(pdev->pData , 0x81 , PCD_SNG_BUF, 0x100); Стало: Код  HAL_PCDEx_PMAConfig(pdev->pData , 0x00 , PCD_SNG_BUF, 0x18);   HAL_PCDEx_PMAConfig(pdev->pData , 0x80 , PCD_SNG_BUF, 0x58);   //HAL_PCDEx_PMAConfig(pdev->pData , 0x81 , PCD_SNG_BUF, 0x100);     HAL_PCDEx_PMAConfig(pdev->pData , HID_EPIN_ADDR , PCD_SNG_BUF, 0x98);     HAL_PCDEx_PMAConfig(pdev->pData , HID_EPOUT_ADDR , PCD_SNG_BUF, 0xD8); Так что да, "читайте доки - они рулез". Всем спасибо за участие, отбой тревоги.
  8. STM32F302 и HID USB 32 байта

    Есть подозрение на косяки в HAL, в частности регистр BTABLE = 0, соответственно приемный и передающий массивы лежат по адресу 0x4000 6000. Есть подозрение что один накладывается на другой. То есть при инициализации нифига не инициализируется. Буду сегодня детально смотреть регистры
  9. STM32F302 и HID USB 32 байта

    Приветствую, Пытаюсь реализовать "эхо" обмена контроллер-комп по 32-байта. Сначала я заполняю массив числами от 0 до 31 и шлю его раз в пять секунд. Код  while (1)   {     HAL_Delay(5000);     USBD_HID_SendReport(&hUsbDeviceFS, OutBuffer, HID_EPIN_SIZE);   } Принимаю на компе нормально. Затем я передаю контроллеру массив из всех нулей. В программе приемный массив должен скопироваться в тот, что я отсылаю и по-идее я должен увидеть в обратку массив нулей. Кодstatic uint8_t  USBD_HID_DataOut (USBD_HandleTypeDef *pdev,                               uint8_t epnum) {     if (epnum != (HID_EPOUT_ADDR & 0x0F))         return USBD_FAIL;                        int8_t i = 0;     while (i < HID_EPOUT_SIZE)     {         OutBuffer[i] = usb_rx_buffer[i];         i++;     }     USBD_LL_PrepareReceive(pdev,                  HID_EPOUT_ADDR,                                                        usb_rx_buffer,                  HID_EPOUT_SIZE);              return USBD_OK; } Но у меня появляются откуда-то числа 0x20 и 0x40 Дескриптор репорта: Код{ //................................. 0x06, 0xFF, 0xFF,                                                         // 04|2   , Usage Page (vendor defined?) 0x09, 0x01,                                                                     // 08|1   , Usage      (vendor defined 0xA1, 0x01,                                                                     // A0|1   , Collection (Application) //.................................. // IN report 0x09, 0x02,                                                                     // 08|1   , Usage      (vendor defined) 0x09, 0x03,                                                                     // 08|1   , Usage      (vendor defined) 0x15, 0x00,                                                                     // 14|1   , Logical Minimum(0 for signed byte?) 0x26, 0xFF, 0x00,                                                         // 24|1   , Logical Maximum(255 for signed byte?) 0x75, 0x08,                                                                     // 74|1   , Report Size(8) = field size in bits = 1 byte // 94|1   , ReportCount(size) = repeat count of previous item 0x95,HID_EPIN_SIZE, 0x81, 0x02,                                                                     // 80|1   , IN report (Data,Variable, Absolute) //.................................... // OUT report 0x09, 0x04,                                                                     // 08|1   , Usage      (vendor defined) 0x09, 0x05,                                                                     // 08|1   , Usage      (vendor defined) 0x15, 0x00,                                                                     // 14|1   , Logical Minimum(0 for signed byte?) 0x26, 0xFF, 0x00,                                                         // 24|1   , Logical Maximum(255 for signed byte?) 0x75, 0x08,                                                                     // 74|1   , Report Size(8) = field size in bits = 1 byte // 94|1   , ReportCount(size) = repeat count of previous item 0x95, HID_EPOUT_SIZE, 0x91, 0x02,                                 // 90|1   , OUT report (Data,Variable, Absolute) // Feature report 0x09, 0x06,                                     // 08|1   , Usage      (vendor defined) 0x09, 0x07,                                     // 08|1   , Usage      (vendor defined) 0x15, 0x00,                                     // 14|1   , LogicalMinimum(0 for signed byte) 0x26, 0xFF, 0x00,                                     // 24|1   , Logical Maximum(255 for signed byte) 0x75, 0x08,                                     // 74|1   , Report Size(8) =field size in bits = 1 byte 0x95, HID_EPOUT_SIZE,                     // 94|x   , ReportCount in byte 0xB1, 0x02,                                     // B0|1   , Feature report 0xC0                                 // C0|0   , End Collection Ставил бряк на функцию USBD_HID_DataOut. Странное дело, но тогда в массиве usb_rx_buffer то же есть эти числа 0x20 и 0x40, но они идут подряд под 22 и 23 номером в массиве. Почему их разносит друг от друга в разные стороны при отправке, и откуда они там вообще берутся? Помогите нубу, плиз
  10. Сия поделка на яве писана, поэтому и тормозит вся, как и все что на яве. Чему удивляться?
  11. Сабж. Как отключить все то, что пытается ёклипсъ делать за меня. Скобки закрывать, скобки в циклах открывать и тд. Бесит люто бешено. Формальное издевательство! Как можно такой продукт выпускать вообще?
  12. Параллельный порт 8 бит и STM32

    Цитата(ViKo @ Dec 30 2015, 11:05) Использовать два порта, с одного читать, в другой записывать? Может, так проще? Ну как проще.... Для стм - проще, а для шины данных все равно защелку ставить.
  13. Параллельный порт 8 бит и STM32

    Цитата(adnega @ Dec 29 2015, 23:38) Кста, шину адреса нужно анализировать или читаем всегда из одного и того же адреса? И записываем всегда в один и тот же адрес (с позиций ISA)? Шину адреса не нужно. С этим пусть аппаратный дешифратор справляется. Имхо никакой микроконтроллер с дешифрацией не справится, если он только не на паре гигагерц работает. Цитата(jcxz @ Dec 30 2015, 07:16) С этим полностью согласен - это правильный ответ на эту тему. Навязывание значит... Ну не просто оно так, навязывание-то, а из-за более - менее вменяемого USB OTG у STM'ов. Вот и хотелось красиво обойтись одним МК, а не россыпью мелко-логики из защелок и триггеров, что-бы лишь параллельную шину обслужить. Цитата(Valentine Loginov @ Dec 30 2015, 09:51) Не знаток st-шек, а fsmc не то? Не то. Оно типа как ведущее, то есть STM32 может чем-то управлять по этой шине (памятью, дисплеем или чем еще). А им управлять не могут. Цитата(Огурцов @ Dec 29 2015, 23:26) что будет - 200 мгц стм против 2 мгц исы - порвет как тузик грелку Ага, порвет, хостовую систему, когда случится коллизия на шине данных. BTW, ISA 8 Mhz
  14. Параллельный порт 8 бит и STM32

    Цитата(ViKo @ Dec 29 2015, 21:21) PSP не может, а по внешнему событию можно попробовать переслать содержимое порта в память. Надо посмотреть, возможны ли такие события для работы DMA. Меня даже больше волнует не переслать содержимое по событию в память (запись /WR), а чтение, то есть переслать из памяти в порт, при этом успев сменить направление порта туда-обратно... Так то где-то на хабре была статейка, как STM цепляли к ISA для снифа данных между контроллером HDD и мамкой. Но там все просто - порт все время в режиме input, и как только ext int, то сохраняем содержимое порта в буфер. Плюс, настроить DMA то можно GPIO <-> memory, но как настроить чтоб он еще при этом менял направление порта - вот это вопрос... В общем склоняюсь, что надо вешать внешний регистр-защелку типа 555ИР23, потому что по другому в лоб не решается. А казалось бы, мегагерцы, DMA и вообще пальцы \w/
  15. Параллельный порт 8 бит и STM32

    Цитата(Огурцов @ Dec 29 2015, 20:34) 407 может шину по типу i8085 Ясный пионер, что может. Любой микроконтроллер, который умеет дергать ногами, может прикинуться 8085. Вопрос встает не тогда, когда нужно кого то там дергать, а когда тебя (микроконтроллер) дергают. А именно, когда пришел сигнал чтения /RD, перевести восемь ног из hi z в output, выдать на них байт и уйти по спаду /RD быстренько опять в hi-z. Желательно за детерминированное время, а не как получится. Потому что пару раз может получится, а третий - нет.