Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


Закрытая тема
Опции темы
Непрочитано 16.01.2014, 11:20   #1
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 813 раз(а) в 590 сообщении(ях)
eddy на пути к лучшему
По умолчанию Не работает SPI через DMA

Пытаюсь запустить SPI через DMA. Вот настройки SPI - вроде, ничего криминального, тырено из примеров. Однако, функция write_SPI ничего не делает: на CLK и на MOSI глухо.

В чем может быть проблема?

Или не париться с DMA, а сделать прямой вызов (все равно ведь приходится ждать, пока завершится передача, чтобы считать данные функцией read_SPI).
Реклама:
__________________
Союз Советских Социалистических Округов Северной Америки
eddy вне форума  
Непрочитано 16.01.2014, 13:30   #2
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 813 раз(а) в 590 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Не работает SPI через DMA

nahimovv, дык, вроде по даташиту проставил правильные DMA-каналы. Инициализация тоже похожа на правду. А вот не пашет, собака.
Ладно, буду переделывать на "обычный" режим. Хотя, все-таки и с DMA надо будет разбираться: если работать с экранчиком, то удобнее будет по DMA обновлять его.
__________________
Союз Советских Социалистических Округов Северной Америки
eddy вне форума  
Непрочитано 16.01.2014, 14:03   #3
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Не работает SPI через DMA

eddy Перепишешь без sPL, все взлетит...
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 16.01.2014, 14:04   #4
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 813 раз(а) в 590 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Не работает SPI через DMA

Вот, кстати, в даташите для DMA2 указано, что на SPI1 выделен третий канал, потоки 0 и 2 на RX, потоки 3 и 5 на TX. Я выбрал потоки 0 и 3. Вообще какая-то разница между ними есть? Зачем для SPI по 2 потока?

dosikus, ну не надо издеваться! Я на несчастный STM8 целых два вечера убил, чтобы разобраться. Но там проще + там SPL ни в какие ворота не лезет (куда, нафиг, SPL на 8кБ?).
__________________
Союз Советских Социалистических Округов Северной Америки
eddy вне форума  
Непрочитано 17.01.2014, 11:29   #5
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 813 раз(а) в 590 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Не работает SPI через DMA

Сделал обычную запись с буферами (буферы заполняются/считываются по прерываниям RXNE и TXE).
Данные побежали. Теперь нужно точно определиться с протоколом: что-то у меня AD7794 фигню какую-то отвечает.
__________________
Союз Советских Социалистических Округов Северной Америки
eddy вне форума  
Непрочитано 17.01.2014, 12:16   #6
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию Re: Не работает SPI через DMA

Сообщение от eddy Посмотреть сообщение
Данные побежали
Да кто бы сомневался!

А по поводу:
Сообщение от eddy Посмотреть сообщение
dosikus, ну не надо издеваться!
На столе валялась F051, вчера открыл референс (а всё ли там так плохо?), тупо по мурзилке три раздела GPIO, SPI и DMA - завелось и взлетело и передача и приём ДМА SPI. Ещё раз удостоверился в нормальности документации STM и в сказках о сложности освоения STM32. Потом вспомнил тему на ДиАхтуге, привязал два таймера - получил дозированный DMA SPI приём-передачу и ещё раз удостоверился в убогости SPL.
Как там говорят - "Дорогу осилит идущий!"(С).
nahimovv вне форума  
Непрочитано 17.01.2014, 12:47   #7
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 813 раз(а) в 590 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Не работает SPI через DMA

nahimovv, ладно, это на будущее. Пока мне с протоколом надо разобраться: АЦП отвечает откровенный бред. Такое впечатление, что или контакта где-то на макетке нет, или я АЦП спалил, или припаял его хреново к переходничку на DIP для макетки.
__________________
Союз Советских Социалистических Округов Северной Америки
eddy вне форума  
Непрочитано 18.01.2014, 09:03   #8
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Не работает SPI через DMA

Самый главный вариант забыли упомянуть - косяки в коде
niXto вне форума  
Непрочитано 18.01.2014, 11:20   #9
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,627
Сказал спасибо: 115
Сказали Спасибо 813 раз(а) в 590 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Не работает SPI через DMA

Сообщение от niXto Посмотреть сообщение
Самый главный вариант забыли упомянуть - косяки в коде
Куда ж без этого.
// на самом деле так и оказалось - напутал с порядком следования байт. ARM-то big-endian!
__________________
Союз Советских Социалистических Округов Северной Америки
eddy вне форума  
Непрочитано 18.01.2014, 11:49   #10
nahimovv
Заблокирован
 
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
nahimovv на пути к лучшему
По умолчанию 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.
nahimovv вне форума  
Закрытая тема

Закладки

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перестала прошиваться mega8 по SPI КСеРоКС Микроконтроллеры, АЦП, память и т.д 13 24.08.2011 09:44
Не работает PD4 в ATTINY 4313 HeatSink Микроконтроллеры, АЦП, память и т.д 37 14.06.2011 17:46
SPI ATMEGA8535 не запускается pifa Микроконтроллеры, АЦП, память и т.д 20 31.05.2011 00:37
USB client + 3 UART and SPI на WindowsMobile LionRJ Микроконтроллеры, АЦП, память и т.д 8 08.04.2011 11:05


Часовой пояс GMT +4, время: 08:47.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot