В контексте STM32 выполнять код из SPI может STM32L4 серия, с задержками 1-2WS. В доке указано в зависимости от режима 0,469 и 0,754 выборки на МГц, что естественно медленнее чем из внутренней Flash.
Reflector, Подскажите данные Блу пилл 103C8T6 Есть код слив 6К самплов c АЦП в порт А0-А7 на 3000 +-сампле рассинхрон клока и защелкивания данных в порту (выбросы кода АЦП + 127+-) а потом что самое интенсное через 200 + -тактов снова синхрон клок 1/6 от тактовой 96 итого 16 мегасамплов в сек
Код:
// tim1 htim1.Init.Period = 5; sConfigOC.Pulse = 3; // pure 1/2 Meandr 16MHz HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1); //adc clock //disable all IRQ ? __disable_irq (); SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk; // void PORTA_ADC( ) //6000 sample { __HAL_TIM_SET_COUNTER(&htim1, 0); //Reset timer1(ADC clock) for sync to ADC adc_data[0]= GPIOA->IDR; adc_data[1]= GPIOA->IDR; adc_data[2]= GPIOA->IDR; adc_data[3]= GPIOA->IDR; adc_data[4]= GPIOA->IDR; adc_data[5]= GPIOA->IDR; // up to 5999
adc_data[0]= GPIOA->IDR; adc_data[1]= GPIOA->IDR; adc_data[2]= GPIOA->IDR; adc_data[3]= GPIOA->IDR; adc_data[4]= GPIOA->IDR; adc_data[5]= GPIOA->IDR; // up to 5999
Нельзя так делать, о чем ранее в теме уже писалось. Даже если этот будут отдельные asm инструкции нет никаких гарантий, что компилятор так все и оставит. Должен быть один asm блок, типа такого:
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
такая конструкция сколько Даст мегасаплов ? может ли контроллер одновременно делать GPIOA->BSRR = GPIO_BSRR_BS0; и adc_data[0]= GPIOA->IDR; ? ведь первое это какой то атомарный доступ авторое обычный а если такая же контрукция но развернутый цикл
Нужно замерять, я не могу хотя бы потому, что от всех F1 уже избавился.
Цитата:
может ли контроллер одновременно делать GPIOA->BSRR = GPIO_BSRR_BS0; и adc_data[0]= GPIOA->IDR; ?
Не важно какой доступ, данные с портов читаются через шины, для F1 -это APB, к ней доступ идет через AHB чтобы его еще больше замедляет, потому F1 с портами работает так медленно. У большинства мк порты на AHB, тогда вместо 6-ти тактов обычно получается 4, а F3 работает с портами напрямую, минуя шину, тогда можно и 2 такта получить. Одновременно читать и писать с портов можно только если шины разные и в качестве второго мастера выступает DMA. Если хочешь большую скорость, то впаяй на свой Блу пилл F303, он по ногам совместим. Как вариант, можно генерить строб таймером который вдобавок пинает DMA читающий данные, я делал так на вывод, но это тактов 12 минимум...
Я про это и говорил, сам раз столкнулся, причем там было все на ассме, но отдельными строками и примерно через сотню команд между LDR/STR компилятор нагенерил всякого, а потом до самого конца опять все нормально
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 31
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения