Easyelectronics.ru

Электроника для всех
Текущее время: 29 сен 2020, 01:28

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



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: не работает SPI на STM32+ADS129
СообщениеДобавлено: 04 фев 2020, 17:21 
Заглядывает иногда

Зарегистрирован: 04 июл 2019, 18:21
Сообщения: 45
Дратути.
Пытаюсь связаться с АЦП ADS1294 через SPI STM32F105 и терплю фиаско. Разводка точно верная.
http://www.ti.com/lit/ds/symlink/ads1296.pdf
Это мой первый опыт с SPI, программер я тот еще, так что косяк явно в коде, но я уже голову сломала, где именно. Приходит ноль, даже из регистров, которые я до этого переписывала. На двух платах. Помогите, люди добрые.
И да, у меня HAL для задержек, итак сойдет)

Это ини для GPIO и SPI
Show

Это функция отправки-чтения
Show

Это отправонька настроек в нужные регистры АЦП
Show

А это попытка прочесть ID или какой-то регистр настроек, который я до этого записала
Show


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не работает SPI на STM32+ADS129
СообщениеДобавлено: 04 фев 2020, 17:44 
Старожил
Аватара пользователя

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 1557
Ну если не считать ужасной инициализации SPI1->CR1, то незатактирован GPIOC.

Вместо той портянки просто
Код:
SPI1->CR1 = SPI_CR1_MSTR | SPI_CR1_MSTR | SPI_CR1_BR_0 | SPI_CR1_SSI | SPI_CR1_SSM | SPI_CR1_SPE | SPI_CR1_CPHA;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не работает SPI на STM32+ADS129
СообщениеДобавлено: 04 фев 2020, 17:54 
Старожил

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 4198
Откуда: Чобля - долбаный кетайец
Уж лучше бы писали на HAL, чем так побитово. На HAL-е хоть ошибок нету...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не работает SPI на STM32+ADS129
СообщениеДобавлено: 04 фев 2020, 18:01 
Заглядывает иногда

Зарегистрирован: 04 июл 2019, 18:21
Сообщения: 45
VladislavS писал(а):
Ну если не считать ужасной инициализации SPI1->CR1, то незатактирован GPIOC.

Вместо той портянки просто
Код:
SPI1->CR1 = SPI_CR1_MSTR | SPI_CR1_MSTR | SPI_CR1_BR_0 | SPI_CR1_SSI | SPI_CR1_SSM | SPI_CR1_SPE | SPI_CR1_CPHA;

Не, там в другом месте все используемые порты тактируются.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не работает SPI на STM32+ADS129
СообщениеДобавлено: 04 фев 2020, 18:02 
Заглядывает иногда

Зарегистрирован: 04 июл 2019, 18:21
Сообщения: 45
BusMaster писал(а):
Уж лучше бы писали на HAL, чем так побитово. На HAL-е хоть ошибок нету...

Сперва так и сделала. Тот же результат был. А где тут ошибки?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не работает SPI на STM32+ADS129
СообщениеДобавлено: 04 фев 2020, 18:13 
Старожил

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 4198
Откуда: Чобля - долбаный кетайец
Не то чтобы ошибки, но корявость в вот этом:
SPI1->CR1 |= SPI_CR1_MSTR;
SPI1->CR1 |= SPI_CR1_BR_0;
SPI1->CR1 |= SPI_CR1_SSI;
...
то есть, в побитной установке каждого бита, вместо того, чтобы за один раз вот так:
SPI1->CR1 = SPI_CR1_MSTR | SPI_CR1_BR_0 | SPI_CR1_SSI | ... и все остальные ;

если хотите, это можно перенести в разные строчки, но оставить в одном действии:
Код:
SPI1->CR1 =  SPI_CR1_MSTR |         // адын
             SPI_CR1_BR_0 |          // два
             SPI_CR1_SSI |             // три
             ... и все остальные ;   // и тыды


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не работает SPI на STM32+ADS129
СообщениеДобавлено: 04 фев 2020, 18:27 
Старожил
Аватара пользователя

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 1557
ouch писал(а):
А где тут ошибки?
Ну если бы не было ошибок, то работало бы. :)

Так то, большого криминала не видно. Если говоришь, что GPIOC затактирован, то предлагаю осциллографом или логическим анализатором посмотреть шину. Обычно это помогает.

Переменную rdata сделай локальной.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не работает SPI на STM32+ADS129
СообщениеДобавлено: 04 фев 2020, 18:29 
Старожил

Зарегистрирован: 25 сен 2017, 10:57
Сообщения: 216
Откуда: Украина
ouch
Может у вас проблема не с SPI а с инициализацией ADS129.
Из интернетов:
Код:
//activate ads1294
ADS_nPWDN_HIGH;
ADS_nRESET_HIGH;
delay_ms(2);
//perform reset
ADS_nRESET_LOW;
delay_ms(2);
ADS_nRESET_HIGH;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не работает SPI на STM32+ADS129
СообщениеДобавлено: 04 фев 2020, 19:25 
Старожил

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 4198
Откуда: Чобля - долбаный кетайец
Дак вон по коду видно, что PC9 вроде как есть, а RCC->APB2ENR |= RCC_APB2ENR_IOPCEN нету. Всё равно лучше не пренебрегать этим, ибо в следующий раз можно забыть.

Ну и так, чисто косметически. Строчка GPIOC->BSRR = GPIO_BSRR_BS9; ставится раньше, чем PC9 будет включен как выход. Во избежание ненужного импульса на CS.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не работает SPI на STM32+ADS129
СообщениеДобавлено: 04 фев 2020, 19:32 
Заглядывает иногда

Зарегистрирован: 04 июл 2019, 18:21
Сообщения: 45
VladislavS писал(а):
ouch писал(а):
А где тут ошибки?
Ну если бы не было ошибок, то работало бы. :)

Так то, большого криминала не видно. Если говоришь, что GPIOC затактирован, то предлагаю осциллографом или логическим анализатором посмотреть шину. Обычно это помогает.

Переменную rdata сделай локальной.

(
MISO-MOSI, SCLK, CS


Вложения:
IMG_20200204_172127.jpg
IMG_20200204_172127.jpg [ 28.04 Кб | Просмотров: 427 ]
IMG_20200204_171540.jpg
IMG_20200204_171540.jpg [ 28.02 Кб | Просмотров: 427 ]
IMG_20200204_170243.jpg
IMG_20200204_170243.jpg [ 28.49 Кб | Просмотров: 427 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не работает SPI на STM32+ADS129
СообщениеДобавлено: 04 фев 2020, 20:24 
Старожил
Аватара пользователя

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 1557
Во-первых, на этих иконках нихрена не видно. Во-вторых, это шина, надо хотя бы MOSI в паре с SCK смотреть. Потом с CS. В-третьих, что посылалось при съёме осциллограм?

Для начала в 2-3 байта разных в цикле посылай и смотри чтобы фаза клоков была нужная и данные соответствовали отправленным.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не работает SPI на STM32+ADS129
СообщениеДобавлено: 05 фев 2020, 17:00 
Старожил

Зарегистрирован: 19 мар 2011, 05:05
Сообщения: 2955
да вроде все видно, но лучше смотреть двумя каналами, да.
похоже на одни единички - на miso оно тянется одним импульсом все восемь клоков.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: не работает SPI на STM32+ADS129
СообщениеДобавлено: 06 фев 2020, 10:49 
Старожил
Аватара пользователя

Зарегистрирован: 18 май 2013, 20:43
Сообщения: 4923
Откуда: Кемеровская область, Киселевск
Вложение:
65456.jpg
65456.jpg [ 14.6 Кб | Просмотров: 338 ]


Если начал цифровой электроникой заниматься, иди на али за анализатором

_________________
RADIOWOLF.RU


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


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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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

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