16.01.2014, 11:20
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,646
Сказал спасибо: 117
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Не работает SPI через DMA
Пытаюсь запустить SPI через DMA. Вот настройки SPI - вроде, ничего криминального, тырено из примеров. Однако, функция write_SPI ничего не делает: на CLK и на MOSI глухо.
В чем может быть проблема?
Или не париться с DMA, а сделать прямой вызов (все равно ведь приходится ждать, пока завершится передача, чтобы считать данные функцией read_SPI).
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
|
|
|
|
16.01.2014, 13:30
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,646
Сказал спасибо: 117
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Не работает SPI через DMA
nahimovv, дык, вроде по даташиту проставил правильные DMA-каналы. Инициализация тоже похожа на правду. А вот не пашет, собака.
Ладно, буду переделывать на "обычный" режим. Хотя, все-таки и с DMA надо будет разбираться: если работать с экранчиком, то удобнее будет по DMA обновлять его.
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
|
|
|
|
16.01.2014, 14:03
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Re: Не работает SPI через DMA
eddy Перепишешь без sPL, все взлетит...
__________________
Осторожно , злой кот
|
|
|
|
16.01.2014, 14:04
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,646
Сказал спасибо: 117
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Не работает SPI через DMA
Вот, кстати, в даташите для DMA2 указано, что на SPI1 выделен третий канал, потоки 0 и 2 на RX, потоки 3 и 5 на TX. Я выбрал потоки 0 и 3. Вообще какая-то разница между ними есть? Зачем для SPI по 2 потока?
dosikus, ну не надо издеваться! Я на несчастный STM8 целых два вечера убил, чтобы разобраться. Но там проще + там SPL ни в какие ворота не лезет (куда, нафиг, SPL на 8кБ?).
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
|
|
|
|
17.01.2014, 11:29
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,646
Сказал спасибо: 117
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Не работает SPI через DMA
Сделал обычную запись с буферами (буферы заполняются/считываются по прерываниям RXNE и TXE).
Данные побежали. Теперь нужно точно определиться с протоколом: что-то у меня AD7794 фигню какую-то отвечает.
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
|
|
|
|
17.01.2014, 12:16
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
|
Re: Не работает SPI через DMA
Сообщение от eddy
|
Данные побежали
|
Да кто бы сомневался!
А по поводу:
Сообщение от eddy
|
dosikus, ну не надо издеваться!
|
На столе валялась F051, вчера открыл референс (а всё ли там так плохо?), тупо по мурзилке три раздела GPIO, SPI и DMA - завелось и взлетело и передача и приём ДМА SPI. Ещё раз удостоверился в нормальности документации STM и в сказках о сложности освоения STM32. Потом вспомнил тему на ДиАхтуге, привязал два таймера - получил дозированный DMA SPI приём-передачу и ещё раз удостоверился в убогости SPL.
Как там говорят - "Дорогу осилит идущий!"(С).
|
|
|
|
17.01.2014, 12:47
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,646
Сказал спасибо: 117
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Не работает SPI через DMA
nahimovv, ладно, это на будущее. Пока мне с протоколом надо разобраться: АЦП отвечает откровенный бред. Такое впечатление, что или контакта где-то на макетке нет, или я АЦП спалил, или припаял его хреново к переходничку на DIP для макетки.
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
|
|
|
|
18.01.2014, 09:03
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Не работает SPI через DMA
Самый главный вариант забыли упомянуть - косяки в коде
|
|
|
|
18.01.2014, 11:20
|
|
Почётный гражданин KAZUS.RU
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,646
Сказал спасибо: 117
Сказали Спасибо 814 раз(а) в 591 сообщении(ях)
|
Re: Не работает SPI через DMA
Сообщение от niXto
|
Самый главный вариант забыли упомянуть - косяки в коде
|
Куда ж без этого.
// на самом деле так и оказалось - напутал с порядком следования байт. ARM-то big-endian!
__________________
Если ты пользуешься Windows, то ты финансируешь мировой терроризм!
|
|
|
|
18.01.2014, 11:49
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
|
Re: Не работает SPI через DMA
Сообщение от eddy
|
ARM-то big-endian!
|
Щазз! ARM ващета - bi-endian (а не big-endian), STM32 - little-endian, STM8 - big-endian.
Сообщение от eddy
|
напутал с порядком следования байт
|
Без чтения референса и бес попутает. Налицо несоответствие размерности данных при работе с DMA.
Последний раз редактировалось nahimovv; 18.01.2014 в 11:54.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 23:06.
|
|