Характеристики STM32

Кто любит RISC в жизни, заходим, не стесняемся.
Sergi
Мучитель микросхем
Сообщения: 412
Зарегистрирован: Ср янв 04, 2012 11:57:40
Откуда: Алчевск

Re: Характеристики STM32

Сообщение Sergi »

В контексте STM32 выполнять код из SPI может STM32L4 серия, с задержками 1-2WS. В доке указано в зависимости от режима 0,469 и 0,754 выборки на МГц, что естественно медленнее чем из внутренней Flash.
Реклама
12val12
Потрогал лапой паяльник
Сообщения: 315
Зарегистрирован: Пт янв 29, 2010 19:42:27

Re: Характеристики STM32

Сообщение 12val12 »

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
хотел бы кинуть весь проект в приват
ух ты.... показывает
Реклама
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Характеристики STM32

Сообщение Reflector »

[uquote="12val12",url="/forum/viewtopic.php?p=3914081#p3914081"]

Код: Выделить всё

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
[/uquote]
Нельзя так делать, о чем ранее в теме уже писалось. Даже если этот будут отдельные asm инструкции нет никаких гарантий, что компилятор так все и оставит. Должен быть один asm блок, типа такого:

Код: Выделить всё

	uint8_t buf[6000];
	const uint32_t idr = (uint32_t)&GPIOA->IDR;
	uint32_t tmp;

	asm(
			"LDRB %2, [%0]\n"
			"STRB %2, [%1], #1\n"
			....
			"LDRB %2, [%0]\n"
			"STRB %2, [%1], #1\n"
			: : "r" (idr), "r" (buf), "r" (tmp)
		);
Это для gcc, для других компиляторов может быть по-другому.
12val12
Потрогал лапой паяльник
Сообщения: 315
Зарегистрирован: Пт янв 29, 2010 19:42:27

Re: Характеристики STM32

Сообщение 12val12 »

Reflector Спасибо
Компиллятор кейл
Подскажите в таком варианте остется 6 тактов на сампл ?
Последний раз редактировалось 12val12 Ср окт 28, 2020 11:40:01, всего редактировалось 1 раз.
ух ты.... показывает
Реклама
Эиком - электронные компоненты и радиодетали
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Характеристики STM32

Сообщение Reflector »

[uquote="12val12",url="/forum/viewtopic.php?p=3914140#p3914140"]в таком варианте остется 6 тактов на сампл ?[/uquote]
Да, должно остаться, быстрее F1 не умеет.
Реклама
12val12
Потрогал лапой паяльник
Сообщения: 315
Зарегистрирован: Пт янв 29, 2010 19:42:27

Re: Характеристики STM32

Сообщение 12val12 »

еще один из зудящих вопросов

Код: Выделить всё

           for (it =0; it<6000;it++) 					
{   GPIOB->BSRR = GPIO_BSRR_BS10;  //clkUp
    adc_data[0]= GPIOA->IDR;
    GPIOB->BSRR = GPIO_BSRR_BR10;  //clkDown
}
такая конструкция сколько Даст мегасаплов ?
может ли контроллер одновременно делать GPIOA->BSRR = GPIO_BSRR_BS0; и adc_data[0]= GPIOA->IDR; ?
ведь первое это какой то атомарный доступ авторое обычный
а если такая же контрукция но развернутый цикл
ух ты.... показывает
Реклама
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Характеристики STM32

Сообщение Reflector »

[uquote="12val12",url="/forum/viewtopic.php?p=3914151#p3914151"]такая конструкция сколько Даст мегасаплов ?[/uquote]
Нужно замерять, я не могу хотя бы потому, что от всех F1 уже избавился.
может ли контроллер одновременно делать GPIOA->BSRR = GPIO_BSRR_BS0; и adc_data[0]= GPIOA->IDR; ?
Не важно какой доступ, данные с портов читаются через шины, для F1 -это APB, к ней доступ идет через AHB чтобы его еще больше замедляет, потому F1 с портами работает так медленно. У большинства мк порты на AHB, тогда вместо 6-ти тактов обычно получается 4, а F3 работает с портами напрямую, минуя шину, тогда можно и 2 такта получить. Одновременно читать и писать с портов можно только если шины разные и в качестве второго мастера выступает DMA. Если хочешь большую скорость, то впаяй на свой Блу пилл F303, он по ногам совместим. Как вариант, можно генерить строб таймером который вдобавок пинает DMA читающий данные, я делал так на вывод, но это тактов 12 минимум...
12val12
Потрогал лапой паяльник
Сообщения: 315
Зарегистрирован: Пт янв 29, 2010 19:42:27

Re: Характеристики STM32

Сообщение 12val12 »

Reflector,
есть только STM32F411CEU6 сколько времени чтение порта?
ух ты.... показывает
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Характеристики STM32

Сообщение Reflector »

[uquote="12val12",url="/forum/viewtopic.php?p=3914171#p3914171"]есть только STM32F411CEU6 сколько времени чтение порта?[/uquote]
На F407 было 4 как на ассме, так и при помощи DMA если мк усыплять, с F411 наверняка то же самое будет.
12val12
Потрогал лапой паяльник
Сообщения: 315
Зарегистрирован: Пт янв 29, 2010 19:42:27

Re: Характеристики STM32

Сообщение 12val12 »

нашел бяку ..не 3000е элементы а 4000+
кейл начинает бесить Зачем он дробит смещение ?
явно связано состраницей 4 K но страницей чего ?
;;;4696 adc_data[4091]= GPIOA->IDR;
005fbc 680a LDR r2,[r1,#0]
005fbe f8802ffb STRB r2,[r0,#0xffb]
;;;4697 adc_data[4092]= GPIOA->IDR;
005fc2 680a LDR r2,[r1,#0]
005fc4 f8802ffc STRB r2,[r0,#0xffc]
;;;4698 adc_data[4093]= GPIOA->IDR;
005fc8 680a LDR r2,[r1,#0]
005fca f8802ffd STRB r2,[r0,#0xffd]
;;;4699 adc_data[4094]= GPIOA->IDR;
005fce 680a LDR r2,[r1,#0]
005fd0 f8802ffe STRB r2,[r0,#0xffe]
;;;4700 adc_data[4095]= GPIOA->IDR;
005fd4 680a LDR r2,[r1,#0]
005fd6 f8802fff STRB r2,[r0,#0xfff]
;;;4701 adc_data[4096]= GPIOA->IDR;
005fda 680a LDR r2,[r1,#0]
005fdc f5005080 ADD r0,r0,#0x1000 //ЧТО ЗА ХРЕНЬ???
005fe0 7002 STRB r2,[r0,#0]
;;;4702 adc_data[4097]= GPIOA->IDR;
005fe2 680a LDR r2,[r1,#0]
005fe4 7042 STRB r2,[r0,#1]
;;;4703 adc_data[4098]= GPIOA->IDR;
005fe6 680a LDR r2,[r1,#0]
005fe8 7082 STRB r2,[r0,#2]
;;;4704 adc_data[4099]= GPIOA->IDR;
005fea 680a LDR r2,[r1,#0]
005fec 70c2 STRB r2,[r0,#3]
;;;4705
;;;4706 adc_data[4100]= GPIOA->IDR;
005fee 680a LDR r2,[r1,#0]
005ff0 7102 STRB r2,[r0,#4]
;;;4707 adc_data[4101]= GPIOA->IDR;
005ff2 680a LDR r2,[r1,#0]
005ff4 7142 STRB r2,[r0,#5]
;;;4708 adc_data[4102]= GPIOA->IDR;
005ff6 680a LDR r2,[r1,#0]
005ff8 7182 STRB r2,[r0,#6]
;;;4709 adc_data[4103]= GPIOA->IDR;
005ffa 680a LDR r2,[r1,#0]
005ffc 71c2 STRB r2,[r0,#7]
;;;4710 adc_data[4104]= GPIOA->IDR;
005ffe 680a LDR r2,[r1,#0]
006000 7202 STRB r2,[r0,#8]
;;;4711 adc_data[4105]= GPIOA->IDR;
006002 680a LDR r2,[r1,#0]
006004 7242 STRB r2,[r0,#9]
;;;4712 adc_data[4106]= GPIOA->IDR;
006006 680a LDR r2,[r1,#0]
006008 7282 STRB r2,[r0,#0xa]
;;;4713 adc_data[4107]= GPIOA->IDR;
00600a 680a LDR r2,[r1,#0]
00600c 72c2 STRB r2,[r0,#0xb]
;;;4714 adc_data[4108]= GPIOA->IDR;
ух ты.... показывает
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Re: Характеристики STM32

Сообщение Reflector »

[uquote="12val12",url="/forum/viewtopic.php?p=3914380#p3914380"]нашел бяку ..не 3000е элементы а 4000+[/uquote]
Я про это и говорил, сам раз столкнулся, причем там было все на ассме, но отдельными строками и примерно через сотню команд между LDR/STR компилятор нагенерил всякого, а потом до самого конца опять все нормально :)
12val12
Потрогал лапой паяльник
Сообщения: 315
Зарегистрирован: Пт янв 29, 2010 19:42:27

Re: Характеристики STM32

Сообщение 12val12 »

Reflector,
не могу первести на асм в кейле ..((
покаустал воеватьужал массив до 4096
Последний раз редактировалось 12val12 Ср окт 28, 2020 19:20:04, всего редактировалось 1 раз.
ух ты.... показывает
a797945
Мучитель микросхем
Сообщения: 446
Зарегистрирован: Вс ноя 01, 2015 09:15:16
Откуда: 69.Ржев

Re: Характеристики STM32

Сообщение a797945 »

"
005fd6 f8802fff STRB r2,[r0,#0xfff]
...
005fdc f5005080 ADD r0,r0,#0x1000 //ЧТО ЗА ХРЕНЬ???
005fe0 7002 STRB r2,[r0,#0]
"
так, наверное - инструкция 32b, FFF мак. возможное смещение (в инструкции)

"005ff0 7102 STRB r2,[r0,#4]" - 16b инструкция.
Ответить

Вернуться в «ARM»