Easyelectronics.ru

Электроника для всех
Текущее время: 23 окт 2019, 23:40

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Не совсем работает SPI (W25Q) + DMA на stm32f103 в HAL
СообщениеДобавлено: 03 сен 2019, 13:56 
Только пришел

Зарегистрирован: 21 сен 2012, 19:44
Сообщения: 23
Здравствуйте. Есть демо-плата на stm32f103, есть микросхема flash-памяти W25Q128, и есть я, который хочет считывать с этой микросхемы памяти данные.
Если не использовать DMA всё читается, но весьма медленно. Если использовать DMA, читается быстрее, но только один раз, второй раз данные уже не считываются.
Скорость чтения flash:
Изображение
Микросхема flash считывается раз в секудну по таймеру.
Вот так это выглядит без DMA:
Show

Сама функция чтения:
Show flashReadFromAddress(W25Flash_HandleTypeDef flash, uint32_t address, uint16_t byteCount, uint8_t * buff)

Так это выглядит с DMA:
Show

Функция чтения:
Show HAL_StatusTypeDef flashReadFromAddressDMA(W25Flash_HandleTypeDef * flash, uint32_t address, uint16_t byteCount, uint8_t * buff)

Окончание чтения фиксируется в коллбэке:
Show void HAL_SPI_RxCpltCallback(SPI_HandleTypeDef *hspi)

В результате при считывании без DMA на каждой итерации я получаю новое считанное значение
Изображение

При считывании с DMA на первой итерации я получаю правильно считанное значение, а последующие просто не происходят (хотя в коллбэк по окончании приёма в отладчике я попадаю каждый раз), либо считывается мусор в виде 0xFF или 0x00.
Изображение
DMA включён для приёма и передачи, для обоих обычный буфер, автоинкремент памяти, размер - байт.
Я в растерянности. Почему так может происходить?
Пробовал ли кто-нибудь читать с flash в HAL? Какая скорость была без DMA? Такая же, или я что-то делаю не так?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не совсем работает SPI (W25Q) + DMA на stm32f103 в HAL
СообщениеДобавлено: 03 сен 2019, 14:21 
Старожил

Зарегистрирован: 06 июн 2018, 22:30
Сообщения: 416
Откуда: Киев
В HAL все не совсем работает...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не совсем работает SPI (W25Q) + DMA на stm32f103 в HAL
СообщениеДобавлено: 03 сен 2019, 18:45 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2369
Писал без HAL,

Show все работает



https://www.youtube.com/watch?v=Sm_HZfMVACc


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не совсем работает SPI (W25Q) + DMA на stm32f103 в HAL
СообщениеДобавлено: 04 сен 2019, 11:15 
Старожил

Зарегистрирован: 05 май 2010, 19:39
Сообщения: 733
Откуда: Вольгинский, 33
что говорит по этому поводу ERRATA?
f103 отдельный чип или в составе платы blue pill?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не совсем работает SPI (W25Q) + DMA на stm32f103 в HAL
СообщениеДобавлено: 04 сен 2019, 18:51 
Старожил
Аватара пользователя

Зарегистрирован: 26 окт 2013, 07:58
Сообщения: 2369
Ищите проблему где то здесь:
Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не совсем работает SPI (W25Q) + DMA на stm32f103 в HAL
СообщениеДобавлено: 04 сен 2019, 19:41 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3662
Эррата то тут не при чем. Дело в плохом чтении мануалов. Всё надеетесь на HAL...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не совсем работает SPI (W25Q) + DMA на stm32f103 в HAL
СообщениеДобавлено: 05 сен 2019, 01:55 
Старожил
Аватара пользователя

Зарегистрирован: 30 мар 2015, 23:56
Сообщения: 745
Подсказка: W25Q128 имеет 32 бита адресации.

_________________
Потоковая OS


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не совсем работает SPI (W25Q) + DMA на stm32f103 в HAL
СообщениеДобавлено: 05 сен 2019, 19:01 
Только пришел

Зарегистрирован: 21 сен 2012, 19:44
Сообщения: 23
Arcanum писал(а):
что говорит по этому поводу ERRATA?
f103 отдельный чип или в составе платы blue pill?

В Errata по этому поводу ничего не нашёл, f103 - китайская платка, но не blue pill.
AVI-crak писал(а):
Подсказка: W25Q128 имеет 32 бита адресации.

Даташит говорит, что 24; 32 бита адресации вроде только у W25Q512
Цитата:
... and then shifting the instruction code "03h" followed by a 24 bit address (A23-A0)

Pingvin писал(а):
Ищите проблему где то здесь:

BusMaster писал(а):
Эррата то тут не при чем. Дело в плохом чтении мануалов. Всё надеетесь на HAL...

Спасибо, буду искать


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не совсем работает SPI (W25Q) + DMA на stm32f103 в HAL
СообщениеДобавлено: 05 сен 2019, 19:23 
Старожил

Зарегистрирован: 08 авг 2013, 09:43
Сообщения: 2284
Цитата:
f103 - китайская платка, но не blue pill.

А там точно STM32 стоит, а не какой-нибудь CS32, как это принято у китайцев нынче на blue pill'е ставить?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не совсем работает SPI (W25Q) + DMA на stm32f103 в HAL
СообщениеДобавлено: 06 сен 2019, 15:03 
Только пришел

Зарегистрирован: 21 сен 2012, 19:44
Сообщения: 23
Там stm32f103vet6, вроде их аналогов пока нет... в любом случае попробовал на f030 то же самое сделать, результат тот же. Похоже, действительно нужно хорошо читать мануалы; хотел с наскока сделать HAL'ом :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не совсем работает SPI (W25Q) + DMA на stm32f103 в HAL
СообщениеДобавлено: 09 сен 2019, 17:12 
Только пришел

Зарегистрирован: 21 сен 2012, 19:44
Сообщения: 23
В итоге сделал как-то так (настройка DMA HAL'ом, автоинкремент памяти по TX отключен):
Show void makeDMARequest(void)


Show Прерывание

Вроде работает.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: Oxford


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB