Например TDA7294

Форум РадиоКот • Просмотр темы - ATmega328P SPI Master SS-pin - errata?????
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Чт янв 08, 2026 23:14:06

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


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 23 ]  1,  
Автор Сообщение
Не в сети
 Заголовок сообщения: ATmega328P SPI Master SS-pin - errata?????
СообщениеДобавлено: Чт сен 24, 2020 20:42:49 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18451
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
коллеги, у кого есть возможность проверить, прошу проверить и рассказать, есть проблема или нет.

суть: SPI настраивается в режим мастера, при этом пин SS как бы не участвует в работе и может быть испольован как обычный пин ввода-вывода (если я верно понял даташит). так вот, я конфигурирую этот пин SS на вход с подтяжкой, просаживаю его на землю, и все - SPI в режиме мастера не работает. для WS2812b я использую SPI с передачей по ожиданию конца передачи - конец передачи не наступает, на MOSI ничего не меняется. стоит оторвать SS от земли - все работает.

тут есть следующие варианты:
1. я чего-то недопонял в логике работы SPI в режиме мастера. как бы маловероятно, все-таки не первый день замужем... но вдруг?
2. я получил из Китая левак с вышеописанным дефектом (TQFP32 корпус, есличо)
3. это проблема всех 328-ых мег, но тогда почему в Errata нет ни слова об этом?!

помогите разобраться!

Добавлено after 4 minutes 15 seconds:
в догонку:


мой рабочий код инициализации SPI:
Код:
// на SS единичка подана заранее в другом месте   
   DDR(SPI_PORT) |= MOSI_PIN | SCK_PIN;
   SPCR = _BV(SPE) | _BV(MSTR) | _BV(CPHA);
   SPSR = _BV(SPI2X);
   SPDR=1;

этот код работает только в том случае, если SS оторван от земли.

вот так работает, но, естественно, раскаляется кристалл (из-за чего подумал, что спалил, пришлось перепаивать), т.к. в нормальном режиме у меня SS на земле глухо:
Код:
   DDR(SPI_PORT) |= MOSI_PIN | SCK_PIN | SS_PIN; // т.е. SS на выход принудительно
   SPCR = _BV(SPE) | _BV(MSTR) | _BV(CPHA);
   SPSR = _BV(SPI2X);
   SPDR=1;

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega328P SPI Master SS-pin - errata?????
СообщениеДобавлено: Чт сен 24, 2020 23:04:51 
Это не хвост, это антенна
Аватар пользователя

Карма: 20
Рейтинг сообщений: 188
Зарегистрирован: Вс мар 28, 2010 12:52:22
Сообщений: 1368
Откуда: Беларусь
Рейтинг сообщения: 8
СпойлерIf SS is configured as an output, the pin is a general output pin which does not affect the SPI system. Typically,
the pin will be driving the SS pin of the SPI Slave.
If SS is configured as an input, it must be held high to ensure Master SPI operation. If the SS pin is driven low by
peripheral circuitry when the SPI is configured as a Master with the SS pin defined as an input, the SPI system
interprets this as another master selecting the SPI as a slave and starting to send data to it. To avoid bus
contention, the SPI system takes the following actions:
1. The MSTR bit in SPCR is cleared and the SPI system becomes a Slave. As a result of the SPI becoming
a Slave, the MOSI and SCK pins become inputs.
2. The SPIF Flag in SPSR is set, and if the SPI interrupt is enabled, and the I-bit in SREG is set, the interrupt
routine will be executed.
Thus, when interrupt-driven SPI transmission is used in Master mode, and there exists a possibility that SS is
driven low, the interrupt should always check that the MSTR bit is still set. If the MSTR bit has been cleared by
a slave select, it must be set by the user to re-enable SPI Master mode.

Страница 165 datasheet ATmega48A/PA/88A/PA/168A/PA/328/P [DATASHEET] Atmel-8271J-AVR- ATmega-Datasheet_11/2015

_________________
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.


Вернуться наверх
 
 Заголовок сообщения: Re: ATmega328P SPI Master SS-pin - errata?????
СообщениеДобавлено: Чт сен 24, 2020 23:06:26 
Это проблема всех ATmega…
Цитата:
Если же микроконтроллер находится в режиме «Master» (разряд MSTR регистра SPCR установлен в «1»), направление передачи данных через вывод SS определяется пользователем. Если вывод сконфигурирован как выход, он работает как линия вывода общего назначения и не влияет на работу модуля SPI. Как правило, в этом случае он используется для управления выводом SS микроконтроллера, работающего в режиме «Slave».
Если же вывод сконфигурирован как вход, то для обеспечения нормальной работы модуля SPI, на него должно быть подано напряжение ВЫСОКОГО уровня. Подача на этот вход напряжения НИЗКОГО уровня от какой-либо внешней схемы будет воспринята модулем SPI как выбор данного микроконтроллера в качестве ведомого, и соответственно, начало передачи ему данных. Во избежание конфликта на шине модуль SPI в таких случаях выполняет следующие действия:
1. Флаг MSTR регистра SPCR сбрасывается, и микроконтроллер
переключается в режим «Slave». Как следствие, выводы MOSI и
SCK начинают функционировать как входы.
2. Устанавливается флаг SPIF регистра SPSR, генерируя запрос на
прерывание от SPI. Если прерывания от SPI разрешены и флаг I
регистра SREG установлен в «1», происходит запуск подпрограммы обработки прерывания.

Таким образом, если ведущий микроконтроллер использует передачу данных, управляемую прерыванием, и существует вероятность подачи
на вход SS напряжения НИЗКОГО уровня, в подпрограмме обработки прерывания от SPI обязательно должна осуществляться проверка состояния
флага MSTR. При обнаружении сброса этого флага он должен быть программно установлен обратно в «1» для обратного перевода микроконтроллера в режим «Master».


Вернуться наверх
   
 
Не в сети
 Заголовок сообщения: Re: ATmega328P SPI Master SS-pin - errata?????
СообщениеДобавлено: Пт сен 25, 2020 07:31:29 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18451
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
большуще спаибо, коллеги! и ведь видел я эти строки, но, прочитав первое предложение сразу перескакивал на конец, считая, что нюансов там нет и быть не может...

однако, теперь вопрос: как с этим бороться? у меня SS постоянно на земле (перемычка), не спрашивайте, почему. при этом попытка ставить бит MSTR в обработчике прерываний (для SPI вообще-то у меня прерывания не используются, работаю поллингом) ни к чему не приводит. ощущение такое, что MSTR сброшен всегда, если SS вход и на земле.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: ATmega328P SPI Master SS-pin - errata?????
СообщениеДобавлено: Пт сен 25, 2020 07:39:44 
Это не хвост, это антенна

Карма: 12
Рейтинг сообщений: 136
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1318
Рейтинг сообщения: 0
однако, теперь вопрос: как с этим бороться? у меня SS постоянно на земле (перемычка)...

Боюсь что ответ не устроит - только программный SPI.(


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega328P SPI Master SS-pin - errata?????
СообщениеДобавлено: Пт сен 25, 2020 07:48:56 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18451
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
ну... когда сильно-сильно прижмет, изворотливость границ не знает :)))
вышел из положения тем, что на момент опроса перемычки пин перевожу на вход с подтяжкой, а потом на выход с выводом 0. тогда КЗ не возникает, кристалл не раскаляется, я для SPI пин является выходм и ноль игнорируется...

вот что бывает, когда при разводке платы на графическом изображении МК не обозначены назначения его выводов, только номера... KiCAD подвел. ну и сам тоже баран, не спорю.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega328P SPI Master SS-pin - errata?????
СообщениеДобавлено: Пт сен 25, 2020 08:31:31 
Друг Кота

Карма: 64
Рейтинг сообщений: 1023
Зарегистрирован: Пт мар 07, 2008 06:54:43
Сообщений: 4378
Откуда: Ижевск
Рейтинг сообщения: 3
Раз корпус TQFP, поднять от печати 14 лапу не вариант?


Вернуться наверх
 
 Заголовок сообщения: Re: ATmega328P SPI Master SS-pin - errata?????
СообщениеДобавлено: Пт сен 25, 2020 08:52:36 
однако, теперь вопрос: как с этим бороться? у меня SS постоянно на земле (перемычка)

Раз вывод не используется, то его можно тупо удалить… :) или поднять вверх разорвав контакт с площадкой (как предложил akl). Или как уже сделали Вы… варианты есть всегда... :))


Вернуться наверх
   
 
Не в сети
 Заголовок сообщения: Re: ATmega328P SPI Master SS-pin - errata?????
СообщениеДобавлено: Пт сен 25, 2020 09:29:58 
Это не хвост, это антенна

Карма: 12
Рейтинг сообщений: 136
Зарегистрирован: Вт июн 07, 2011 08:03:18
Сообщений: 1318
Рейтинг сообщения: 0
вышел из положения тем, что на момент опроса перемычки пин перевожу на вход с подтяжкой, а потом на выход с выводом 0. тогда КЗ не возникает, кристалл не раскаляется, я для SPI пин является выходм и ноль игнорируется...

Нормально. 0 на 0 - ничего не будет, допустимо. Сначала порт, затем ддр.)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega328P SPI Master SS-pin - errata?????
СообщениеДобавлено: Пт сен 25, 2020 10:05:17 
Поставщик валерьянки для Кота

Карма: 12
Рейтинг сообщений: 532
Зарегистрирован: Ср июл 17, 2013 13:55:57
Сообщений: 1978
Рейтинг сообщения: 0
Я так понимаю что вывод-то всё-таки используется, поэтому оторвать его просто так нельзя.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega328P SPI Master SS-pin - errata?????
СообщениеДобавлено: Пт сен 25, 2020 10:56:24 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18451
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
вывод задействован в качестве селектора адреса устройства, поэтому для некоторых устройств он должен быть всегда на земле, а для некоторых - в отрыве от земли. поэтому просто навсегда оторвать его нельзя...

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega328P SPI Master SS-pin - errata?????
СообщениеДобавлено: Пт сен 25, 2020 15:36:08 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 139
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1480
Рейтинг сообщения: 0
Если честно, странно, что вы по SPI не знали, что вывод при SS при включенном SPI аппаратно переключает мк в слейв. Ладно бы другая периферия и их заморочки. Ну да ладно. Ну шо, поэхали.
Код:
   set_bit (SS_DDR, __SS);

Усе. Пин назначен как выход. Подключение на минус ему не страшно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega328P SPI Master SS-pin - errata?????
СообщениеДобавлено: Пт сен 25, 2020 15:52:09 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18451
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Demiurg писал(а):
Пин назначен как выход. Подключение на минус ему не страшно
даладна!
а если на него выводится единица? :)))

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega328P SPI Master SS-pin - errata?????
СообщениеДобавлено: Пт сен 25, 2020 16:08:37 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 139
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1480
Рейтинг сообщения: 0
Значит, сожгете порт. Это у всех AVR так с SPI. Понимаете? Либо вы его используете как выход, либо никак. Точка. В режиме SPI последствия понятны.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega328P SPI Master SS-pin - errata?????
СообщениеДобавлено: Пт сен 25, 2020 16:38:58 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18451
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Порт, вроде, уцелел... А вот обход проблемы мне не понравился.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega328P SPI Master SS-pin - errata?????
СообщениеДобавлено: Пт сен 25, 2020 16:52:19 
Это не хвост, это антенна

Карма: 4
Рейтинг сообщений: 139
Зарегистрирован: Ср июн 25, 2008 15:19:44
Сообщений: 1480
Рейтинг сообщения: 0
Значит на PORTx откуда то прилетает единичка.


Вернуться наверх
 
 Заголовок сообщения: Re: ATmega328P SPI Master SS-pin - errata?????
СообщениеДобавлено: Пт сен 25, 2020 17:12:09 
поэтому просто навсегда оторвать его нельзя...

Тогда (если есть такая возможность) можно перерезать дорожку и в разрыве припаять резистор 330 Ом. :solder: Тогда при любых раскладах Ваш пин останется невредимым. :) . При работе SPI пин конфигурируемый как выход (лог 0) не подсадит линию источника сигнала если даже она будет в 1. А после завершения работы SPI номинал данного резистора (330 Ом.) тоже не внесёт каких либо проблем когда пин будет настроен как вход. :)


Вернуться наверх
   
 
Не в сети
 Заголовок сообщения: Re: ATmega328P SPI Master SS-pin - errata?????
СообщениеДобавлено: Пт сен 25, 2020 17:31:10 
Друг Кота
Аватар пользователя

Карма: 52
Рейтинг сообщений: 2114
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 7059
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (2)
Точно. (опередил :) ) либо вместо перемычки использовать такой резистор...

_________________
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: ATmega328P SPI Master SS-pin - errata?????
СообщениеДобавлено: Пт сен 25, 2020 21:39:25 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18451
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
коллеги, либо я написал не очень внятно, либо вы не читаете: проблема решена путем опроса этой перемычки в режиме ввода с подтяжкой, затем перевода пина в режим выхода и вывода в него 0, и только затем инициализации SPI. не потребовалось ни дорожки резать, ни резисторы вешать.

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
 Заголовок сообщения: Re: ATmega328P SPI Master SS-pin - errata?????
СообщениеДобавлено: Пт сен 25, 2020 22:24:38 
коллеги, либо я написал не очень внятно, либо вы не читаете:

После данных постов, я понял, что проблема решена, но есть опасения сжечь порт если у источника сигнала будет лог 1. :dont_know:
Цитата:
ну... когда сильно-сильно прижмет, изворотливость границ не знает

Цитата:
вывод задействован в качестве селектора адреса устройства, поэтому для некоторых устройств он должен быть всегда на земле, а для некоторых - в отрыве от земли.

Цитата:
а если на него выводится единица?

Цитата:
Порт, вроде, уцелел... А вот обход проблемы мне не понравился.

:roll:
----------
ARV писал(а):
не потребовалось ни дорожки резать, ни резисторы вешать.

Хорошо, рас решена и всё устраивает, тогда я Вас не буду более отвлекать своими глупостями.


Вернуться наверх
   
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 23 ]  1,  

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


Кто сейчас на форуме

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


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

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


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y