Jump to content

    

Алексей ВМ

Участник
  • Content Count

    125
  • Joined

  • Last visited

Everything posted by Алексей ВМ


  1. Не подскажете, куда копать?
  2. Поздняк метаться, платы уже производятся... Для F4 interrupt latency 12 циклов, это максимум 75 нс. Откуда может набегать доп время? Interrupt Latency on the Cortex-M processor family The interrupt latency of all of the Cortex-M processors is extremely low. The latency count is listed in table 1, and is the exact number of cycles from the assertion of the interrupt request up to the cycle where the first instruction of the interrupt handler is ready to be expected, in a system with zero wait state memory systems: Processors Cycles with zero wait state memory Cortex-M0 16 Cortex-M0+ 15 Cortex-M3 12 Cortex-M4 12
  3. Добрый день! Проц stm32f405, на борту 192 kB SRAM. Хочу разместить массив размером около 100 кБ, компилер Keil 5.20 ругается: Error: L6407E: Sections of aggregate size 0x5bc bytes could not fit into .ANY selector(s). Если массив уменьшить на пару кБ, все ок: Program Size: Code=10128 RO-data=31276 RW-data=164 ZI-data=130300 Как я понимаю, есть ещё 60+ кБ, почему компилер выдает ошибку?
  4. STM32F405 Размещение большого массива в SRAM

    Спасибо, в настройках проекта галка IRAM2 была снята, из-за этого и не влезало.
  5. Добрый день! Чип stm32f405. Имеется прерывание от DMA, приоритет 15. В этом прерывании запускается таймер, приоритет 0, далее обработчик прерывания DMA занимается своими делами ещё 5 мкс. Таймер выставлен на 3 мкс. Если я правильно понимаю, выполнения обработчика прерывания DMA должно прерваться при срабатывании таймера, однако этого не происходит. Что я делаю не так? Инициализация NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); NVIC_InitStructure.NVIC_IRQChannel = DMA2_Stream5_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 15; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); Обработчик DMA void DMA2_Stream5_IRQHandler(void) { uint8_t i,j = 0; if(DMA_GetITStatus(DMA2_Stream5, DMA_IT_TCIF5)) { DMA_ClearITPendingBit(DMA2_Stream5, DMA_IT_TCIF5); DMA_Cmd(DMA2_Stream5, DISABLE); TIM_Cmd(OUT_TIM, DISABLE); TIM_ClearITPendingBit(TIM3, TIM_IT_Update); TIM_SetCounter(TIM3, 0); TIM_Cmd(TIM3, ENABLE); .......
  6. Обработка прерывания с более высоким приоритетом

    Да )). Проект совсем простенький. Ну, если SPL не считать за стороннюю ))
  7. Обработка прерывания с более высоким приоритетом

    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4); 4 бита для for preemption. Функцию NVIC_SetPriorityGrouping() не вызываю, она же дублирует NVIC_PriorityGroupConfig() ? Никаких сторонних либ не использую.
  8. Добрый день! Подскажите плату для модуля управления. Необходимо: ЖКИ + тач скрин, Ehternet, USB, SD card, USART (RS485), GPIO. Надо разрабатывать на нем пользовательский интерфейс, то есть нужны доступные средства разработки. Кроме того, надо, чтобы GUI и реал-тайм функции были разнесены по ядрам, в идеале чтобы две ОС крутилось - Линукс для GUI и RTOS для обмена.
  9. Да, модбас. И реал-тайм не нужен, согласен, погорячился.
  10. Добрый день! Надо управлять светодиодным табло с интерфейсом HUB75. Сигналы - RGB, CLK, LE, OE. Хочу прицепить управление к блоку FSMC. Есть ли у кого-нибудь опыт подобного управления? Какой режим FSMC наиболее подходит для данной задачи?
  11. STM32F1 FSMC для управления светодиодным табло

    Так это же для multiplexed write mode.
  12. STM32F1 FSMC для управления светодиодным табло

    А почему нельзя использовать аппаратный FSMC_CLK?
  13. STM32F1 FSMC для управления светодиодным табло

    Понятно, спасибо. Я подумал, никто не мешает в качестве LE использовать FSMC_Dx, предварительно инициализировав его в массиве данных для передачи. Правда, неизвестно, что на шине данных будет после передачи всей строки. Если последнее значение, то все ок.
  14. STM32F1 FSMC для управления светодиодным табло

    А как управляете LE и OE? LE (latch enable) - защелкивание данных строки, должна передаваться в конце записи строки ОЕ (output enable) - отображение строки. Программно рулите? Я пока не могу подобрать аппаратные сигналы FSMC...
  15. Модуль управления будет использоваться в достаточно дорогом оборудовании, заказчик не поймет, если откроет... Да и две ОС на малинке не слышал, чтоб запускали. Или малинка исключительно для GUI, а внешний МК для реал-тайм? Хотелось бы все в одном чипе...
  16. STM32F1 FSMC для управления светодиодным табло

    Спасибо! А входной сигнал NWAIT как использовать? Просто к 1 подтянуть?
  17. STM32F103 Timer + DMA + GPIO

    Добрый день Имеется STM32F103, надо как можно быстрее выводить данные на пины проца. Использую связку TIM1 + DMA + GPIO Таймер (TIM1) настроен на макс частоту - делитель равен 2, период - 1. По таймеру тактируется DMA, который натравлен на GPIO->ODR. Максимальная частота на пинах - 6 МГц, хотя должна быть не менее 36 МГц. Предделители AHB, APB2, настройки GPIO проверены. Может быть причиной низкой частоты какие-то аппаратные особенности TIM1 + DMA + GPIO?
  18. STM32F103 Timer + DMA + GPIO

    Мне даже STM32F2 хватит, но задача стоит использовать 103. :( XMC4700 - чип другого уровня, заказчик за каждый цент удавится. 20$ vs 2$
  19. STM32F103 Timer + DMA + GPIO

    К сожалению, нет. Да и ШИМ не поможет в данном случае - данные должны быть увязаны с клоком. ШИМ должен работать от момента окончания загрузки данных и до момента начала след загрузки.
  20. STM32F103 Timer + DMA + GPIO

    Надо выводить картинку на матрицу 32х32 с последовательным интерфейсом HUB75 (6 сигналов данных и 1 клок) и одновременно управлять яркостью программно, так как аппаратной возможности нет. FSMC в данном чипе нет. Соответственно, если принять частоту кадров 120 Гц, то на линию приходится 520 мкс, за это время надо вывести 8 градаций цвета, то есть на одну линию приходится 65 мкс, за которые надо вывести данные и пошимить яркость. Для достижения макс яркости надо уменьшить время вывода данных, собственно, поэтому и ищется способ с минимальным временем вывода.
  21. STM32F103 Timer + DMA + GPIO

    В приведенной выше ссылке есть вся информация по поводу времени выполнения. 18 МГц - это если писать без циклов и проверок условий, линейно Set -> Reset -> ..., в прерывании с наивысшим приоритетом, то есть максимально достижимая частота, Надо всего 65 слов вывести максимально быстро раз в 65 мкс, так что идея не так уж и плоха...
  22. STM32F103 Timer + DMA + GPIO

    Частота пина конфигурится программно, макс - 50 МГц. Кроме того, без DMA прямое дергание пина занимает 4 такта - 18 МГц. Задержку создает латентность работы DMA с шиной.
  23. STM32F103 Timer + DMA + GPIO

    https://habr.com/ru/post/437112/ 10 тактов на копирование... При 72 МГц тактовой и получается около 6-7 МГц.
  24. программа VS2017/WPF

    Добрый день, Необходимо разработать программу со следующими требованиями: 1.1. ПО должно быть разработано в среде Microsoft Visual Studio 2017 с использованием платформы разработки WPF и паттерна MVVM (обсуждается). 1.2. ПО должно обеспечивать ввод и отображение данных в текстовом и графическом виде. 1.3. ПО должно обеспечивать хранение данных в БД SQLite. 1.4. ПО должно обеспечивать отправку и получение данных по протоколу TCP/IP. 1.5. ПО должно обеспечивать формирование отчетов и отправку их на печатающее устройство. 1.6. ПО должно обеспечивать авторизацию пользователя с разграничением прав на доступ к тем или иным функциям ПО. Интересуют цена и сроки.
  25. Прерывание EXTI по изменению состояния на ноге. Разрешено прерывание по переднему фронту, однако иногда возникает прерывание по заднему. Может быть причиной то, что задний фронт затянут до 5 мкс?