-
- Ну например в каком-нибудь прерывании таймера есть доступ к SPI, во
время которого SPI сбиваецца. На высокой скорости успевает. Да в
любом проекте есть случаи зависания передачи SPI, не зря же
контроль тайм-аута и ставят. - VLLV(27.03.2021 08:34)
- Ага, но то что на двух платах работает, а на двух нет, навевает
мысль что косяк в монтаже, хотя с виду все хорошо. будем искать.. - Moлoдoй кoллeгa(28.03.2021 08:21)
- Для SPI важно, чтобы мастер "видел" свой тактовый сигнал. Хоть он и
ведущий, но тактирование приёмника ведущего идёт не от внутреннего
сигнала, а от вывода корпуса. Поэтому, если вывод тактирования
ведущего закоротить, его приёмник ничего не примет и транзакция
может вообще завершится. Но как насчёт STM32 - не знаю, глубоко не
копал. - Nikolay_Po(29.03.2021 09:04)
- Спасибо! Невероятно но вы правы, был сапай между CLK и CS, то есть
CS держал клок на земле. Отпаял и всё заколосилось. С вери хай спид
фронтами видимо как-то проскакивало, слейв не работал конечно, но и
SPI не зависал. - Moлoдoй кoллeгa(29.03.2021 18:12)
- В смысле? Оно с залипухой, что ли, работало? Невероятно! - Visitor(29.03.2021 18:42)
- Вот сейчас посмотрел на STM32F1. Ничего подобного. - SciFi(29.03.2021 09:14)
- Это в dsPIC/PIC24 нужно SCLK мапить и на SCLKxIN, и на SCLKxOUT - MBedder(29.03.2021 18:31)
- Что, при закоротке тактового сигнала, передача идёт и завершается нормально? Впрочем, в том же PIC24/dsPIC33 закоротка приводит к остуствию данных по приёму (все байты - одно значение, 0xFF, вроде), но саму передачу мастера не блокирует, завершает вовремя. - Nikolay_Po(29.03.2021 17:15)
- Спасибо! Невероятно но вы правы, был сапай между CLK и CS, то есть
CS держал клок на земле. Отпаял и всё заколосилось. С вери хай спид
фронтами видимо как-то проскакивало, слейв не работал конечно, но и
SPI не зависал. - Moлoдoй кoллeгa(29.03.2021 18:12)
- Для SPI важно, чтобы мастер "видел" свой тактовый сигнал. Хоть он и
ведущий, но тактирование приёмника ведущего идёт не от внутреннего
сигнала, а от вывода корпуса. Поэтому, если вывод тактирования
ведущего закоротить, его приёмник ничего не примет и транзакция
может вообще завершится. Но как насчёт STM32 - не знаю, глубоко не
копал. - Nikolay_Po(29.03.2021 09:04)
- Использую SPI флешку 25-й серии везде. Ни разу не видел никаких
зависаний. ЧЯДНТ? - SciFi(27.03.2021 08:38)
- Я тоже напуган. У меня в 25PE80 серьезные архивы хранятся по
заправкам. Были случАи всякие, но исключительно по моей глупости.
Не надо мне зависаний! :-) - Лaгyнoв(27.03.2021 09:11)
- Папрашу! Я не напуган, скорее наоборот :-) - SciFi(27.03.2021 09:22)
- Я напуган пред. оратором. Потому смайлик. :-) - Лaгyнoв(27.03.2021 09:56)
- Папрашу! Я не напуган, скорее наоборот :-) - SciFi(27.03.2021 09:22)
- Я тоже напуган. У меня в 25PE80 серьезные архивы хранятся по
заправкам. Были случАи всякие, но исключительно по моей глупости.
Не надо мне зависаний! :-) - Лaгyнoв(27.03.2021 09:11)
- Ага, но то что на двух платах работает, а на двух нет, навевает
мысль что косяк в монтаже, хотя с виду все хорошо. будем искать.. - Moлoдoй кoллeгa(28.03.2021 08:21)
- Лень в документацию по G473 смотреть, а у L152 Low=400kHz,
Medium=2MHz, High=10MHz, Very_High=40MHz. Т.о.
Med<5MHz<High. Оно ж фронты в выходном буфере валит. - teap0t(26.03.2021 23:42)
- я мож чего пропустил? для SPI скорость определяется исключительно
установленным делителем APB шины ... Откуда все эти абстракции ??? - Aleksey_75(26.03.2021 23:47)
- Я руководствуюсь исключительно картинкой, предоставленной ТС, и
даже в описание к SPI L152 не лезу. На картинке стандартный набор
настройки вывода ST32, для которого вы же учили меня писать макрос. teap0t(1 знак., 26.03.2021 23:53, картинка)
- ))) Aleksey_75(423 знак., 27.03.2021 00:22)
- Жуть какая. Я, конечно, не настоящий софтописатель, но зачем в
структуре перемешивать 8- и 32-разрядные поля? Чтобы развлечь
скучающий компилятор? - teap0t(27.03.2021 00:42)
- ну структура упакованная, а на что это влияет ? а структура
gpio_set_t вообще 3 байта занимает, надо выравнивать ? - Aleksey_75(27.03.2021 00:45)
- Я спрашиваю, чтобы узнать. Сам бы сначала перечислил 4-байтовые
величины, а потом уже остальные, подбирая их попарно (или по
скольку там надо), просто от занудности своего естества. - teap0t(27.03.2021 00:49)
- ну, я художник, я так вижу! ))) не загонялся по расположению, вот честно, даж не задумывался ... Aleksey_75(318 знак., 27.03.2021 01:10)
- Я спрашиваю, чтобы узнать. Сам бы сначала перечислил 4-байтовые
величины, а потом уже остальные, подбирая их попарно (или по
скольку там надо), просто от занудности своего естества. - teap0t(27.03.2021 00:49)
- ну структура упакованная, а на что это влияет ? а структура
gpio_set_t вообще 3 байта занимает, надо выравнивать ? - Aleksey_75(27.03.2021 00:45)
- Жуть какая. Я, конечно, не настоящий софтописатель, но зачем в
структуре перемешивать 8- и 32-разрядные поля? Чтобы развлечь
скучающий компилятор? - teap0t(27.03.2021 00:42)
- ))) Aleksey_75(423 знак., 27.03.2021 00:22)
- Ты просто помехами не занимался. Фронты могут звенеть огого,
поэтому их часто заваливают. Но вот эти цифры указаны для больших
ёмкостей нагрузки, КМК, в обычных случаях там всё гораздо быстрее. - SciFi(26.03.2021 23:50)
- согласен! есть такое дело, поэтому sck и mosi выставляем как PP-out, на mosi pullpown исходя из исследований! На край можно кондеры на десяток пик на линии повесить! Из моей практики, порядка десяти проектов, где на SPI висят 2-3 слейва, если флеш клок на максимум, если аксель в пределах 10мгц, с NRF договорные отношения... Во всех девайсах ведется лог состояния ни разу не встречал в реальной работе ошибок! Хотя если изображать ручками, в лог падают! - Aleksey_75(27.03.2021 00:14)
- Я руководствуюсь исключительно картинкой, предоставленной ТС, и
даже в описание к SPI L152 не лезу. На картинке стандартный набор
настройки вывода ST32, для которого вы же учили меня писать макрос. teap0t(1 знак., 26.03.2021 23:53, картинка)
- я мож чего пропустил? для SPI скорость определяется исключительно
установленным делителем APB шины ... Откуда все эти абстракции ??? - Aleksey_75(26.03.2021 23:47)
- Фаза между клоком и датой не попутана? Из-за чего наблюдаешь
зависимость от крутизны фронта. А вообще хз что там в кубе. Я
привык дедовским способом. Там этих регистров всего несколько штук. - SciFi(26.03.2021 23:35)
- Всё верно, перепроверил ещё раз, сделал два проекта, - всё как в
первом посте описано. Скорей всего проблема не в скорости портов,
но как-то влияет... - Moлoдoй кoллeгa(27.03.2021 02:10)
- И чего? Осциллограммы снял? С даташытом на мелкосхему слейва
сверил? - SciFi(27.03.2021 07:51)
- Слейв то тут причем? spi должен отработать и пофик что там
подключено, а у меня виснет внутри блокирующей функции отправки
буфера, по dma кстати тоже не фурычит. В понедельник буду
заниматься.. - Moлoдoй кoллeгa(28.03.2021 08:17)
- При том, что если фаза попутана, то работать будет только по
вторникам и четвергам. Без осциллографа жить нельзя. - SciFi(28.03.2021 08:22)
- Говорю же проблема не в том что я не могу слейв прочитать(это уже
вторично), а в том что виснет функция передачи байта, очевидно
флаги не взводятся. Пофик на фазу, пофик на битрейт, пофик на
подключенык слейвы, фунция должна отработать, чего ей виснуть этож
не I2C, тут от слейва ничего не зависит. - Moлoдoй кoллeгa(29.03.2021 01:09)
- что значит виснет функция ? что значит, флаги не взводятся ??
копеечный анализатор с али решает вопрос физических данных с шины,
логи с каждого чиха решают проблемы с ПО - Aleksey_75(29.03.2021 01:16)
- Гугление выводит на такие вопросы и ответы. У кого-то другое прерывание каким-то образом всё там поломало. У кого-то, похоже, стек засрался, это же не сложно сделать. В общем, куб, наверное, хорош, пока он не сломался, но если сломался, то здравствуй креативный секас, мальчики и девочки... - SciFi(29.03.2021 08:15)
- что значит виснет функция ? что значит, флаги не взводятся ??
копеечный анализатор с али решает вопрос физических данных с шины,
логи с каждого чиха решают проблемы с ПО - Aleksey_75(29.03.2021 01:16)
- Да, осциллограф нужен, чтобы посмотреть наличие передачи вообще. В сортах говна придется разбираться - передача произошла, но почему не встал флаг окончания. А может передачи вообще не было. - VLLV(28.03.2021 09:05)
- Говорю же проблема не в том что я не могу слейв прочитать(это уже
вторично), а в том что виснет функция передачи байта, очевидно
флаги не взводятся. Пофик на фазу, пофик на битрейт, пофик на
подключенык слейвы, фунция должна отработать, чего ей виснуть этож
не I2C, тут от слейва ничего не зависит. - Moлoдoй кoллeгa(29.03.2021 01:09)
- При том, что если фаза попутана, то работать будет только по
вторникам и четвергам. Без осциллографа жить нельзя. - SciFi(28.03.2021 08:22)
- Слейв то тут причем? spi должен отработать и пофик что там
подключено, а у меня виснет внутри блокирующей функции отправки
буфера, по dma кстати тоже не фурычит. В понедельник буду
заниматься.. - Moлoдoй кoллeгa(28.03.2021 08:17)
- И чего? Осциллограммы снял? С даташытом на мелкосхему слейва
сверил? - SciFi(27.03.2021 07:51)
- Всё верно, перепроверил ещё раз, сделал два проекта, - всё как в
первом посте описано. Скорей всего проблема не в скорости портов,
но как-то влияет... - Moлoдoй кoллeгa(27.03.2021 02:10)
- Смотреть что этот чудо куб в регистрах поустанавливал ! - Aleksey_75(26.03.2021 23:32)
- Ну например в каком-нибудь прерывании таймера есть доступ к SPI, во
время которого SPI сбиваецца. На высокой скорости успевает. Да в
любом проекте есть случаи зависания передачи SPI, не зря же
контроль тайм-аута и ставят. - VLLV(27.03.2021 08:34)