Jump to content

    

Integro

Свой
  • Content Count

    406
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Integro

  • Rank
    Местный
  • Birthday 04/13/1988

Старые поля

  • LinkedIn
    Array

Контакты

  • Сайт
    Array
  • ICQ
    Array
  • Skype
    Array

Информация

  • Город
    Array

Recent Profile Visitors

3020 profile views
  1. Буквально все? от до A-H? Пример от STшников: void EnterSTOPMode(void) { LL_GPIO_InitTypeDef gpio_initstruct = {LL_GPIO_PIN_ALL, LL_GPIO_MODE_ANALOG, LL_GPIO_SPEED_FREQ_HIGH, LL_GPIO_OUTPUT_PUSHPULL, LL_GPIO_PULL_NO, LL_GPIO_AF_0}; /* Set all GPIO in analog state to reduce power consumption, */ /* Note: Debug using ST-Link is not possible during the execution of this */ /* example because communication between ST-link and the device */ /* under test is done through UART. All GPIO pins are disabled (set */ /* to analog input mode) including UART I/O pins. */ LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOA | LL_IOP_GRP1_PERIPH_GPIOB | LL_IOP_GRP1_PERIPH_GPIOC | LL_IOP_GRP1_PERIPH_GPIOD | LL_IOP_GRP1_PERIPH_GPIOE | LL_IOP_GRP1_PERIPH_GPIOH); LL_GPIO_Init(GPIOA, &gpio_initstruct); LL_GPIO_Init(GPIOB, &gpio_initstruct); LL_GPIO_Init(GPIOC, &gpio_initstruct); LL_GPIO_Init(GPIOD, &gpio_initstruct); LL_GPIO_Init(GPIOE, &gpio_initstruct); LL_GPIO_Init(GPIOH, &gpio_initstruct); LL_IOP_GRP1_DisableClock(LL_IOP_GRP1_PERIPH_GPIOA | LL_IOP_GRP1_PERIPH_GPIOB | LL_IOP_GRP1_PERIPH_GPIOC | LL_IOP_GRP1_PERIPH_GPIOD | LL_IOP_GRP1_PERIPH_GPIOE | LL_IOP_GRP1_PERIPH_GPIOH); /** Request to enter STOP mode * Following procedure describe in STM32L0xx Reference Manual * See PWR part, section Low-power modes, STOP mode */ /* Enable ultra low power mode */ LL_PWR_EnableUltraLowPower(); /** Set the regulator to low power before setting MODE_STOP. * If the regulator remains in "main mode", * it consumes more power without providing any additional feature. */ LL_PWR_SetRegulModeLP(LL_PWR_REGU_LPMODES_LOW_POWER); /* Set STOP mode when CPU enters deepsleep */ LL_PWR_SetPowerMode(LL_PWR_MODE_STOP); /* Set SLEEPDEEP bit of Cortex System Control Register */ LL_LPM_EnableDeepSleep(); /* Request Wait For Interrupt */ __WFI(); } Похоже на проблемы с оборудованием или подключением. Во время измерения отключаете программатор (перемычки SWIO\SWCLK, SBx на NRST)?
  2. Я бы клоки и подключение дисплея перепроверил
  3. Наверное на вход нужно подавать не бинарник(bin) а обьектник(обычно elf) из которого делался ваш бинарник При преобразовании из bin в hex обычно требуется задать базовый адрес для hex а в этой tool'е я такого не вижу(могу ошибаться) Есть куча других инструментов которые умеют это делать, я например в своих проектах использую свои python скрипты что бы иметь кросплатформенносить и не заморачиваться с возможностями\нюансами\проблемами встроенных инструментов BlackHawk эт в первую очередь название компании, в продуктах которой есть и программаторы и изоляторы double бугага!
  4. Пакеты(сообщения) в RDS летят каждые ~85ms(11.4 пакетов в секунду), размер пакета 104бит из которых полезной нагрузки 8байт остальное коды коррекции. Принять мусор сложно) http://www.interactive-radio-system.com/docs/EN50067_RDS_Standard.pdf Радио? Лехко! Но я не тот человек который может оценить звук, музыка играет, шумов нет) Видел отзывы что прием у RD5807 немного хуже, но чтобы так...
  5. Прием отличный, видно прилетают другие пакеты с названием трека, станции и прочее. А вот пакет со временем только раз в минуту. EN50067_RDS_Standard.pdf
  6. информ минутка), Было время поиграться с приемником RDS на Si4703. 1. По спеке RDS, пакет со временем летит в эфир раз в секунду 2. В 60% процентах случая время прилетает с точностью до секунды, пакет прилетает в момент начала новой минуты 3. В остальных случаях время может уходить на минуты, я наблюдал отклонения порядка 2,5 минут, это касается Минских радиостанций, так как тестировал только здесь. 4. По доке потребление приемника Si4703 порядка 14мА, была надежда что с выключенным аудио смогу получить меньшие цифры, но стабильно 14мА для всех режимов работы. Вывод: Чтобы получить время из RDS, нужно сканировать несколько станций и искать одинаковые или близкие значения, прием времени с одной станции это в лучшем случае минута. На синхронизацию будет уходить от 3минут и более, с учетом потребления приемника Si4703, решение подходит только для стационарных устройств которые находятся в городской среде и могут располагаться в помещении. GNSS на этом фоне выглядит по приятнее: 1. Точность 2. Суммарные энергетические затраты могут быть меньше, так как время он выдаст менее чем за минуту, конечно, при условии если приемник находиться не в помещении.
  7. да, через keil или iar дебажить можно возможно нужно будет прошить softdevice, понятно hex напрямую через stlink utility не зальешь, но в их примерах обычно есть отдельная сборка которая прошивает softdevice. И я бы посоветовал почитать про BLE, не такой он сложный как может показаться, нужно понять что такое характеристика, сервис, узнать чем отличается нотификация от индикации и что такое адвертайсинг(+ скан респонс) и нужно знать что есть такие GATT\GAP, просто знать что они есть) а когда будите гнаться за скорость посмотреть что такое конекшин интервалы
  8. Так слишком сложно), а так бы сам в свободное время "поковырял".
  9. Пользуюсь HAL и LL(относительно свежий) c момента их выхода, по начало нужно было все перепроверять и сверять с datasheet'ом, можно было найти ошибки, сейчас таких проблем нет. Бред! оверхер на что? - FLASH? чтение - модификация - запись пары регистров - тоже самое написали бы и Вы в своем коде со своими "флагами" и своими ошибками. - RAM? В LL не используется контекст только в HAL да и эти 20 байт контекста на фоне даже 64KB выглядят не серьезно. - Perfomance? если речь о LL тоже сомнительно, для HAL возможно, но сегодня проще\дешевле взять более производительный контроллер чем вылизывать каждую строчку\инструкцию кода
  10. интересно стало что там за дебри, может просто проект расшарите? Если не секрет конечно.
  11. Не вижу проблемы или проект для MCU на исходниках ядра linux завязан? Проблем может быть две: 1. это пути, если они не относительные(но это быстро и легко поправить) 2. и тулы которые используются при сборке, но тот же набор должен быть в mbed под Win, накрайняк есть mingw или cygwin 2.1 или местными bash скриптами проект обвязан? Тоже решаемая проблема) Или есть что-то еще?)
  12. Такой команды нет, просто используют write multiply команду с большим буфером. Как показывает практика такой подход эффективнее. Еще можно получить небольшой выигрыш за счет увеличения размера транзакции с 512 байт до 2к например. В регистре CSD есть параметр WRITE_BL_EN из него можно брать максимальный размер блока, но карты с блоками по 2К это редкость, по крайней мере пара штук из пары десятков попадались.
  13. Если запись идет блоком 512 байт то SD карта вычитает страницу из NAND(4к или больше, зависит от NAND) модифицирует страницу и запишет обратно, по-этому эффективнее работать с блоками равными(или больше но кратными) странице NAND.
  14. Я бы посмотрел в сторону старших братьев: PICkit3, PICkit4