ploop писал(а):У меня F4-DISCOVERY
Но смысл в том, что F0 анонсировали как очень дешёвые чипы, этим и заинтересовали. Но вот незадача - их нет нигде, а где попадались, то либо крупными партиями, либо дороже F3их...
в Мегаэлектроннике в Питере по 126 рублей за STM32F051R8T6
по цене 168-й меги
Подскажите, кто знает. Плата STM32F4 Discovery. IDE Keil.
Написал с примеров небольшую программку, которая с помощью DMA одновременно снимает показания с двух АЦП и складывает в массив, далее по кольцу его переписывает. На входы АЦП попадает смещённая синусоида, которая не выходит за пределы 0...3 В.
Вопрос вот в чём. Когда я включаю дебаг, данные в массиве меняются на экране (вынесен в Watch). Я попробовал построить синусоиду по значениям за одно изменение, и получается какая-то чушь. Есть подозрение, что дебагер пытается всё делать в реальном времени, и потому отсчёты берутся уж очень медленно (а синусоида 2 кГц). Либо он просто выплёвывает текущее содержимое массива, но т.к. массив обновляется быстрее, на экране оказываются данные разных проходов. Кто-нибудь может это подтвердить или опровергнуть? И как отключить этот постоянный вывод на время, чтоб не гнать постоянно через ST-Link кучу данных, а посмотреть один чистый проход DMA?
radiokot__ писал(а):
В этих STM вобще нет никакого смысла.
Ну почему же... ))
К F0 влёгкую подключается горячо любимый тобой дисплей N1616... )))))
Там SPI девятибитный можно выставить и дрыгание SS хардварно...
NXP давно выпускают LPC11XX... тоже F0...
"Я не даю готовых решений, я заставляю думать!"(С)
У меня вопрос по DMA. Пытаюсь отправить массив по UART через DMA, но оно так и не заработало.
Посылки вручную уходят, то есть, USART настроен правильно. МК - STM32F407VGT6 (Z). Прилагаю код:
насчет бесплатного сыра... скорее модного...
у нас уже stm32f4 discovery валяются... по 250 гривночков (f0=150)
интересно, а кто самоделки на комплектах северного/южного мостов, да на хотя-бы 486-х делал? (на i8080&Z80 их весьма монго было)
да и мир сей не кортексов, а армов - stm32 всего лиш один из подвидов
Да, работает. Не помню, писал ли я где-то здесь, но окончательный вариант получился как у вас. Просто сразу про такую запись не сказали, вот и пробовал по-всякому.
UPD. Таки писал) http://radiokot.ru/forum/viewtopic.php? ... 8#p1209048.
Раз уж мы здесь, есть вопрос. Плата F4 Discovery. С примеров надёргал кусков кода, с помощью DMA АЦП задействован в режиме одновременного съёма показаний. Код в аттаче.
Сигнал смещённой синусоиды подключён одним проводом к двум каналам (10, 11). Диод зажигается, если значения, одновременно (!) снятые двумя АЦП, одинаковы.
Казалось бы, он должен всегда светиться, и на вид это так, однако на осциллографе видно, что значения одинаковы не всегда.
Вопрос вот в чём: правильно ли вообще так проверять одинаковость (как бы DMA работает без участия ядра, и просто по кольцу складывает данные в массив)?
И как тогда правильно проверить? Сделать прерывание по DMA?