Хм, подозрительно мало. Код надо смотреть. Вы настраивали в GPIOx_CRL регистрах скорость? Поставили в "Output mode, max speed 50 MHz." ? Сегодня уже поздно, завтра вечером попробую посмотреть сколько у меня максимальная скорость получится.black_lizard писал(а):На данной частоте без проблем можно менять сигнал на GPIO 5 раз в мкс.
STM32 новичку в ARM что к чему
- Реклама
- Сообщения: 190
- Зарегистрирован: Пн сен 25, 2006 17:47:10
Имеется hex для STM32F100. Как можно определить, хватит ли для него STM32F100C4 или нет?
Просто оставлю это здесь:
В общем случае используем МК stm32f100c8. Рабочая частота 24МГц.

То есть дело не в коде, просто больше не дает сам камешек.
В общем случае используем МК stm32f100c8. Рабочая частота 24МГц.
Код: Выделить всё
void vTaskLED3(void *pvParameters) {
GPIO_TypeDef *GPIO=GPIOA;
uint32 mask=0x0000000F;
uint32 cfg=0x00000003;
mask<<=5*4;
mask=~mask;
GPIO->CRL &=mask; //erase configure and mode bits;
mask=cfg<<5*4;
GPIO->CRL |=mask; //set configure and mode bits
for(;;){
GPIO->BSRR |=1<<5;
GPIO->BRR |=1<<5;
GPIO->BSRR |=1<<5;
GPIO->BRR |=1<<5;
taskYIELD();
}
}

То есть дело не в коде, просто больше не дает сам камешек.
- Сообщения: 3604
- Зарегистрирован: Пн июл 28, 2008 22:12:01
Берешь hex файл, открываешь его в любом текстовом редакторе,IRF840 писал(а):Имеется hex
то что заливается во flash выглядит как строчки вида
:1001B00003EB4202EA62AB6A95F90190B3F800C022
смотришь на последнюю
:103D70000000000000000000000000000000000043
3D70 - это получается адреспоследней строчки от начала flash. Прибавляем еще 0x10 длину последней строки
получаем 0x3D80 длинна содержимого, заливаемого во flash
- Реклама
Вообще-то это просто сигнал яркости. Я сомневаюсь, что STM32F100 потянет ногодрыгом формирование цветовых поднесущих без внешнего железа.black_lizard писал(а):Синхросигнал - 0в, 0.3 - 1.0в это цвет. Это учитывается,
Помимо ССИ надо тыкать еще КСИ и уравнивающие в конце кадра. Без этого будет ерунда и как повезёт в зависимости от умности синхропроцессора телевизора.первые 12 байт массива нули, так и формируется синхросигнал.
Я хочу сказать, что SPI при транзакции в отличие от DMA не занимает шину AHB. И самостоятельно формирует тайминги от системного генератора. А DMA работает на 2 такта из трёх.Не совсем понял, что вы имеете ввиду. Не могли бы вы пояснить?
Вот, посмотрите как это сделано здесь:
http://vg.ucoz.ru/publ/programmirovanie ... e/3-1-0-12
- Сообщения: 20132
- Зарегистрирован: Чт сен 01, 2011 12:53:27
- Откуда: ТьмуТаракания. Почетный житель подмостовья
надо попробовать
Шекспир сказал: Судить меня -дано лишь Богу, другим я укажу дорогу... https://natribu.org/
Я его полностью поддерживаю.
Программирую на Fuse AtmelAVR.
Я его полностью поддерживаю.
Программирую на Fuse AtmelAVR.
- Сообщения: 502
- Зарегистрирован: Чт фев 16, 2012 19:00:11
используйте Bitband - можно уложиться в 3 такта (125 нс).Просто оставлю это здесь: В общем случае используем МК stm32f100c8. Рабочая частота 24МГц.
и при доступе к BSRR операция |= не нужна.
Код дайте пожалуйста. И почему не нужна |=?zöner писал(а): используйте Bitband - можно уложиться в 3 такта (125 нс).
и при доступе к BSRR операция |= не нужна.
dosikus, Анализатор Zeroplus LAP-C(16032)
Сейчас под него доступно очень много бесплатных протоколов. Удобно.
Сейчас под него доступно очень много бесплатных протоколов. Удобно.
- Сообщения: 502
- Зарегистрирован: Чт фев 16, 2012 19:00:11
Код дайте пожалуйста
Код: Выделить всё
#define BITBAND_PERI(addr, bit) ((volatile U8 *)((0x42000000 + ((U32)(addr)-0x40000000)*32 + (bit*4))))
#define out *BITBAND_PERI(&GPIOA->ODR, 5)
out = 0; out = 1;
out = 0; out = 1;
out = 0; out = 1;
http://eugenemcu.ru/publ/13-1-0-71И почему не нужна |=?
Код: Выделить всё
Для атомарного сброса и установки битов GPIO в микроконтроллерах STM32 предназначен регистр GPIOx_BSRR. Традиционный для архитектуры ARM способ управления битами регистров не требующий применения операции типа "чтение-модификация-запись” позволяет устанавливать и сбрасывать биты порта простой записью единицы в биты установки BS (BitSet) и сброса BR (BitReset) регистра BSRR. При этом запись в регистр нулевых битов не оказывает влияния на состояние соответствующих выводов.Про дерганье с максимальной скоростью.
Через GPIO не вариант, потому как больше пары тактов на бит будет.
Попробовал через SPI. При при частоте ядра 32 MHz выдает максимально возможные 16 MHz сигнала, правда он ужастной формы. А вот 8 MHz более-менее прямоугольные получаются.
Пробовал на STM32LDISCOVERY.
Через GPIO не вариант, потому как больше пары тактов на бит будет.
Попробовал через SPI. При при частоте ядра 32 MHz выдает максимально возможные 16 MHz сигнала, правда он ужастной формы. А вот 8 MHz более-менее прямоугольные получаются.
Пробовал на STM32LDISCOVERY.
- Вложения
-
- spi16mhz.jpg
- 16 МГц
- (126.14 КБ) 432 скачивания
-
- spi8mhz.jpg
- 8 МГЦ
- (127.09 КБ) 459 скачиваний
- Сообщения: 3604
- Зарегистрирован: Пн июл 28, 2008 22:12:01
Осцилл сменишь будут лучше...balmer писал(а): правда он ужастной формы.
Не факт, не факт. Не забываем, что у осциллографов входная емкость щупов порядка 10 pF. Так что на такую нагрузку результат вполне ожидаемый по форме.dosikus писал(а):Осцилл сменишь будут лучше...
Может ничего нового не скажу, но больше мегагерца сигналы нужно смотреть с делителем 1:10 на щупе, только тогда полоса будет нормальной. Без делителя любой щуп имеет заявленую полосу в разы меньше даже по паспорту.balmer писал(а):Не факт, не факт. Не забываем, что у осциллографов входная емкость щупов порядка 10 pF. Так что на такую нагрузку результат вполне ожидаемый по форме.dosikus писал(а):Осцилл сменишь будут лучше...
Информация по RLC mini находится >тут<
Не в разы, а на два порядка в основном. 100-мегагерцовый щуп без делителя по паспорту 1 МГц.Без делителя любой щуп имеет заявленую полосу в разы меньше даже по паспорту.
balmer, полоса пропускания у осцилла какая? 16 МГц внятно рассмотреть можно только на 100 (а лучше на 200)-мегагерцовом осцилле.
Полоса пропускания 100 MHz. Да, надо таки с 1:10 посмотреть вечерком. Читал про этот совет, но забылploop писал(а):balmer, полоса пропускания у осцилла какая?
И действительно, при включении на щупе осциллографа x10 получаем совсем другую картину. Теперь наоборот волны от индуктивной нагрузки видны.
- Вложения
-
- spi16mhz_x10.jpg
- 16 Мгц x10 щуп
- (128.41 КБ) 377 скачиваний
- Сообщения: 3604
- Зарегистрирован: Пн июл 28, 2008 22:12:01
никто не пробовал в железе воспроизвести?
http://we.easyelectronics.ru/STM32/sozd ... nk-v2.html
http://we.easyelectronics.ru/STM32/sozd ... nk-v2.html


