-
- Попробывал ДМА. Хорошо работает. Для упоротых, типа меня, есть
вариант сделать олдскульный СПИ на ДМА. Правда, сожрёт ОЗУ и
скорость СЦК получается в
1020 раз меньше тактовой. - mse homjak(15.06.2023 12:49) - А под них нет набора сниппетов - как у ST под STM32F0? Eddy_Em(440 знак., 14.06.2023 20:17)
- У 003 немного грустно, нет аппаратного умножэния. Но она по жизни
обрезанная, там и регистров всего 16. Зато 20рублей и 48МГц. - mse homjak(14.06.2023 22:55)
- Может, деления нет? Eddy_Em(434 знак., 14.06.2023 23:12)
- И умножэния. У 203 20-ношки ужэ полный набор регистров,
цэлочисленное умножэние-деление, 32к флэши, большэ ОЗУ, 144МГц, но
за 60+руб. А у 305 20-ношки, плюсом, плывучка, 128к флэши, ещо
больше ОЗУ. И 200+руб. - mse homjak(14.06.2023 23:27)
- Хм, а у STM'ок флоаты есть уже на полутора сотнях рублей: STM32F401… Правда, ног куча. - Eddy_Em(14.06.2023 23:40)
- И умножэния. У 203 20-ношки ужэ полный набор регистров,
цэлочисленное умножэние-деление, 32к флэши, большэ ОЗУ, 144МГц, но
за 60+руб. А у 305 20-ношки, плюсом, плывучка, 128к флэши, ещо
больше ОЗУ. И 200+руб. - mse homjak(14.06.2023 23:27)
- Может, деления нет? Eddy_Em(434 знак., 14.06.2023 23:12)
- На сайте WCH усть примеры для каждого семейства. Вот такое
содержимое для 003. Такой наборчик и получил с ALI сегодня. Отдал
1450 с пересылкой. Заказал потому что WCH-linkE в комплекте. Гyдвин(5707 знак., 14.06.2023 21:26, ссылка)
- С Ривер Студио идут процедуры работы с устройствами. Когда генерится проект, студия распаковывает заготовку проекта под нужную микросхему. В директории "Перифериаль" лежат и *.х, и *.ц файлы под каждое устройство. Предлагаемая структура достаточно уёбищная, но менять лень, пусть будет. - mse homjak(14.06.2023 22:51)
- Спасибо. Тоже заказал, чтобы было. Возможно понадобиться в обозримом будущем. - Nikolay_Po(14.06.2023 22:23)
- Спасибо. Eddy_Em(348 знак., 14.06.2023 21:34)
- для других МК у WCH именно что свой вариант SPL - AlexG(14.06.2023 22:50)
- Не, я такое не пользую. У меня свои сниппеты поверх CMSIS. - Eddy_Em(14.06.2023 23:13)
- для других МК у WCH именно что свой вариант SPL - AlexG(14.06.2023 22:50)
- У 003 немного грустно, нет аппаратного умножэния. Но она по жизни
обрезанная, там и регистров всего 16. Зато 20рублей и 48МГц. - mse homjak(14.06.2023 22:55)
- У них в примерах есть "FullDuplex_HardNSS". Не пробовал? Я только
утром сегодня платки получил. Пытаюсь вникнуть :) - Гyдвин(14.06.2023 19:55)
- Не...Плюнул. Для моих насущных задач и закат солнца вручную пойдёт. Щас ДМА пишу. - mse homjak(14.06.2023 20:03)
- 8051 не актуально, удалил. - Costic(12.06.2023 23:04)
- Позанудствую, ибо формулировку неверную вижу я... POV(533 знак., 12.06.2023 23:07)
- Не обязательно инициализация информационного обмена (когда вначале
передается команда и/или адрес), но обязательно сигнал
квитирования. Даже если по SPI гнать одни только данные (без команд
управления), то всегда будет ненулевая вероятность нарушения
синхронности передачи (звон или помеха в цепи CLK и ... опа!).
Сигнал квитирования укажет явно о начале очередного фрейма и
обязывает сбросить счетчик тактовых сигналов в начале приема. - reZident(12.06.2023 23:55)
- ХЗ, обо что у вас разговор, но обычно, по фронту SS, у слэйва
информаццыя переносится из сдвигового регистра в цэлевой. - mse homjak(13.06.2023 00:16)
- Это "обычно" имеет отношение к оставшимся 0,01% применения. Что-то
типа сдвиговых регистров. - POV(13.06.2023 07:54)
- Танунах...Все ЦАПы, АЦПы, синтезаторы и всё прочее работают имана
так: фронт CS фиксирует состояние сдвигового регистра во внутренний
рабочий. - mse homjak(13.06.2023 10:33)
- Не согласен. У многих АЦП за одну транзакцию по SPI можно
установить произвольное количество регистров от 1 до максимума,
который позволяет внутренний счетчик. Или взять те же SerialFlash в
которых буфер под килобайт. Это скольки же разрядный там регистр
по-твоему, если значение его устанавливается одним чохом по фронту
CS? О.о - reZident(13.06.2023 10:41)
- И что? Фронт CS фиксирует содержимое сдвигового регистра во
внутренние. Просто этот регистр "под килобайт". Или таких устройств
может стоять вязанка, но всё равно, логика работы именно такая:
сколько бы бит не прошло через сдвиговый регистр, всё равно, по
фронту CS, текущее состояние сдвигового, перепишется во внутренний.
И, жэлательно, чтобы всё это делалось автоматом. А логика этого
автомата, забота разрабоччика. - mse homjak(13.06.2023 10:59)
- Это твое личное представление разработчика, который проектировал
SPI в FPGA. Было ведь такое, а? ;-) А по факту - нет, в самом общем случае CS это всего лишь сигнал квитирования, который определяет
начало (и конец) транзакции. - reZident(13.06.2023 11:16)
- Ну? А что делает конец транзакции? Прально, фиксирует состояние
сдвигового регистра. Кстате, то АЦП, что вы проедложили в качестве
примера, не совсем катит, т.к. оно работает не по командам проца, а
формирует запрос по DRDY. И то, если оно одно в системе, бо если
кого-то в цепи надо прописать, то АЦП можэт потечь крышей. Когда
устройств много, извольте дёргать CS. И такое устройство нельзя
цеплять в цепь каскадом. В общем, пропиретарщина. Для контраста
можэте глянуть mse homjak(35 знак., 13.06.2023 12:00)
- Чё вы в сдвиговый регистр уперлись? В SerialFalsh и/или EEPROM
буферное ОЗУ это по-вашему тоже сдвиговый регистр чоли? Оно ведь
заполняется по кольцу (кольцевому счетчику адресов) во время
транзакции записи. Нехилый в SF (где буфер 256 байт) 2048-разрядный
регистр забубенили! А потом ведь из этого "регистра" идет запись во
Flash, которая по всему выходит тоже 2048 разрядов имеет? Или как? - reZident(13.06.2023 12:20)
- Если оно задвигается по последовательному каналу, то да, сдвиговый
регистр. Какая разница, скока там разрядов, если вы двигаете его по
одному битику? ЖЫТАГ вообще можэт десятки килобайт жопка к жопке
сдвигать. mse homjak(697 знак., 13.06.2023 12:58)
- Та я ведь и непротив, если вы согласитесь, что CS это сигнал
квитирования (флаг, семафор, назовите его как хотите), а не еще
один тактовый сигнал. - reZident(13.06.2023 13:07)
- Ну да, пусть семафор. Тока по этому семафору сдвиговый регистр
должэн переписаться в регистр рабочий. По банальной причине: когда
у вас начнёца следующая транзакцыя, эти данные будут испорчены и
устройство перейдёт в режим суетолога. До тех пор, пока данные
снова не устаканяца. - mse homjak(13.06.2023 13:25)
- Да нету прямой связи между фронтом CS и (пере)записью каких-либо
унутренних регистров! Внутренняя логика устройства может работать
совсем от другого тактового сигнала и начать обрабатывать
(пере-записывать принятые или подкидывать в последовательный канал
выходные данные) еще до завершения транзакции. CS это лишь признак
начала/окончания транзакции и усё! Он управляет логикой интерфейса
связи, а не логикой работы самого устройства. - reZident(13.06.2023 13:46)
- Да, можэт. От тот техасский АЦП из этой серии. Воткнуть его в
цэпочку устройств, нельзя. Для работы его нужно выделить в
отдельный загончик. По входу он должэн ловить только то, что нужно
только ему. Т.е. это голимая пропиретарщина. Я вам это ужэ пол-дня
объясняю. Причом нет никакой причины, чтобы нельзя было сделать по
уму. Обычное рукожопие. - mse homjak(13.06.2023 14:04)
- А я вам объясняю, что нету прямой связи между CS и внутренней
логикой работы устройства. Взять тот же STM32. У него сдвиговый
регистр максимум 16-разрядный, а передавать через SPI можно ажно
килобайты без "отмашки" каждых 2 байт CS-ом, не так ли? Потому, что
унутренний конвейер позволяет подтаскивать данные в сдвиговый
регистр SPI и производить перезапись в/из него согласно своей
унутренней логике работы модуля SPI. Фронт CS, то бишь NSS лишь
запрещает тактировать reZident(133 знак., 13.06.2023 14:33)
- Можно. Но в регистрах управления есть биты, отвечающие за это. Т.е.
можно (было бы) отмахивать CS каждое слово, а можно не обмахивать.
Можно было бы пользовать устройства типа ЕЕПРОМ, с последовательной
многобайтной записью и можно было бы пользовать устройства с
фиксированной длиной слова. Причом, используя ДМА. А так, налицо
какая-то херня, когда имеем, вроде бы, полный набор для скоростной
работы с узлом без участия процэссора, но вынуждены сидеть в цыкле
и mse homjak(24 знак., 13.06.2023 14:48)
- Хужэ того, чтобы привести работу CS в нормальное состояние, достаточно просто вывести на него сигнал ~BUSY. Фсио. Ну, разве что, подмешать к нему TXempty, если BUSY формируется через жопу(скорее всего). Делов-то. А имеем откровенное рукожопство, замешанное на похуизме. Пипл хавает. - mse homjak(13.06.2023 17:44)
- Можно. Но в регистрах управления есть биты, отвечающие за это. Т.е.
можно (было бы) отмахивать CS каждое слово, а можно не обмахивать.
Можно было бы пользовать устройства типа ЕЕПРОМ, с последовательной
многобайтной записью и можно было бы пользовать устройства с
фиксированной длиной слова. Причом, используя ДМА. А так, налицо
какая-то херня, когда имеем, вроде бы, полный набор для скоростной
работы с узлом без участия процэссора, но вынуждены сидеть в цыкле
и mse homjak(24 знак., 13.06.2023 14:48)
- А я вам объясняю, что нету прямой связи между CS и внутренней
логикой работы устройства. Взять тот же STM32. У него сдвиговый
регистр максимум 16-разрядный, а передавать через SPI можно ажно
килобайты без "отмашки" каждых 2 байт CS-ом, не так ли? Потому, что
унутренний конвейер позволяет подтаскивать данные в сдвиговый
регистр SPI и производить перезапись в/из него согласно своей
унутренней логике работы модуля SPI. Фронт CS, то бишь NSS лишь
запрещает тактировать reZident(133 знак., 13.06.2023 14:33)
- Да, можэт. От тот техасский АЦП из этой серии. Воткнуть его в
цэпочку устройств, нельзя. Для работы его нужно выделить в
отдельный загончик. По входу он должэн ловить только то, что нужно
только ему. Т.е. это голимая пропиретарщина. Я вам это ужэ пол-дня
объясняю. Причом нет никакой причины, чтобы нельзя было сделать по
уму. Обычное рукожопие. - mse homjak(13.06.2023 14:04)
- Да нету прямой связи между фронтом CS и (пере)записью каких-либо
унутренних регистров! Внутренняя логика устройства может работать
совсем от другого тактового сигнала и начать обрабатывать
(пере-записывать принятые или подкидывать в последовательный канал
выходные данные) еще до завершения транзакции. CS это лишь признак
начала/окончания транзакции и усё! Он управляет логикой интерфейса
связи, а не логикой работы самого устройства. - reZident(13.06.2023 13:46)
- Ну да, пусть семафор. Тока по этому семафору сдвиговый регистр
должэн переписаться в регистр рабочий. По банальной причине: когда
у вас начнёца следующая транзакцыя, эти данные будут испорчены и
устройство перейдёт в режим суетолога. До тех пор, пока данные
снова не устаканяца. - mse homjak(13.06.2023 13:25)
- Та я ведь и непротив, если вы согласитесь, что CS это сигнал
квитирования (флаг, семафор, назовите его как хотите), а не еще
один тактовый сигнал. - reZident(13.06.2023 13:07)
- Если оно задвигается по последовательному каналу, то да, сдвиговый
регистр. Какая разница, скока там разрядов, если вы двигаете его по
одному битику? ЖЫТАГ вообще можэт десятки килобайт жопка к жопке
сдвигать. mse homjak(697 знак., 13.06.2023 12:58)
- Чё вы в сдвиговый регистр уперлись? В SerialFalsh и/или EEPROM
буферное ОЗУ это по-вашему тоже сдвиговый регистр чоли? Оно ведь
заполняется по кольцу (кольцевому счетчику адресов) во время
транзакции записи. Нехилый в SF (где буфер 256 байт) 2048-разрядный
регистр забубенили! А потом ведь из этого "регистра" идет запись во
Flash, которая по всему выходит тоже 2048 разрядов имеет? Или как? - reZident(13.06.2023 12:20)
- Ну? А что делает конец транзакции? Прально, фиксирует состояние
сдвигового регистра. Кстате, то АЦП, что вы проедложили в качестве
примера, не совсем катит, т.к. оно работает не по командам проца, а
формирует запрос по DRDY. И то, если оно одно в системе, бо если
кого-то в цепи надо прописать, то АЦП можэт потечь крышей. Когда
устройств много, извольте дёргать CS. И такое устройство нельзя
цеплять в цепь каскадом. В общем, пропиретарщина. Для контраста
можэте глянуть mse homjak(35 знак., 13.06.2023 12:00)
- Это твое личное представление разработчика, который проектировал
SPI в FPGA. Было ведь такое, а? ;-) А по факту - нет, в самом общем случае CS это всего лишь сигнал квитирования, который определяет
начало (и конец) транзакции. - reZident(13.06.2023 11:16)
- Будто бы флеш не знает, что у неё записано на момент фронта CS. В
ней и так зафиксировано. Речь об устройствах ввода, типа АЦП или
регистров - действительно удобно фиксировать состояние именно по CS
- по началу транзакции. - Nikolay_Po(13.06.2023 10:49)
- Вот цитата про Chips Select из описания ADS1220 (что под рукой оказалось). Обратите внимание, что 1) фронт (переход из 0 в 1) CS лишь сбрасывает логику SPI и 2) если м/с одна на шине, то устанавливать CS в "1" не требуется, CS может быть "0" постоянно. Это все доказывает, что нихрена фронт CS не служит защелкой последовательных данных в параллельные. reZident(651 знак., 13.06.2023 10:59, ссылка)
- И что? Фронт CS фиксирует содержимое сдвигового регистра во
внутренние. Просто этот регистр "под килобайт". Или таких устройств
может стоять вязанка, но всё равно, логика работы именно такая:
сколько бы бит не прошло через сдвиговый регистр, всё равно, по
фронту CS, текущее состояние сдвигового, перепишется во внутренний.
И, жэлательно, чтобы всё это делалось автоматом. А логика этого
автомата, забота разрабоччика. - mse homjak(13.06.2023 10:59)
- Не согласен. У многих АЦП за одну транзакцию по SPI можно
установить произвольное количество регистров от 1 до максимума,
который позволяет внутренний счетчик. Или взять те же SerialFlash в
которых буфер под килобайт. Это скольки же разрядный там регистр
по-твоему, если значение его устанавливается одним чохом по фронту
CS? О.о - reZident(13.06.2023 10:41)
- Танунах...Все ЦАПы, АЦПы, синтезаторы и всё прочее работают имана
так: фронт CS фиксирует состояние сдвигового регистра во внутренний
рабочий. - mse homjak(13.06.2023 10:33)
- Это "обычно" имеет отношение к оставшимся 0,01% применения. Что-то
типа сдвиговых регистров. - POV(13.06.2023 07:54)
- именно - POV(13.06.2023 00:03)
- ХЗ, обо что у вас разговор, но обычно, по фронту SS, у слэйва
информаццыя переносится из сдвигового регистра в цэлевой. - mse homjak(13.06.2023 00:16)
- Не обязательно инициализация информационного обмена (когда вначале
передается команда и/или адрес), но обязательно сигнал
квитирования. Даже если по SPI гнать одни только данные (без команд
управления), то всегда будет ненулевая вероятность нарушения
синхронности передачи (звон или помеха в цепи CLK и ... опа!).
Сигнал квитирования укажет явно о начале очередного фрейма и
обязывает сбросить счетчик тактовых сигналов в начале приема. - reZident(12.06.2023 23:55)
- Позанудствую, ибо формулировку неверную вижу я... POV(533 знак., 12.06.2023 23:07)
- Кстате, смотрю, у них есть ещо 20-ношки. Топовый вариант 144МНz, но
то % с ним. Но 128к флеши и 32к ОЗУ... Это зачем? Тем более, что
плывучка есть. - mse homjak(12.06.2023 22:57)
- При хорошем АЦП внутре я бы придумал применение именно для такой конфигурации. - Kpoк(13.06.2023 16:33)
- Я их закупил для USB-шных дел, вместо F042. У меня частенько
необходимость в мелких приблудах возникает. Светодиодами там
поморгать :-) - LightElf(12.06.2023 23:20)
- Ну, кагбе малоногость предполагает ограниченный функцыанал. А тут
хуяк! 128к флэши. Операцыонку захуевертить, разве что. - mse homjak(12.06.2023 23:22)
- Говнокубы компилять-пилять. - LightElf(12.06.2023 23:24)
- ХЗ, но засрать 128к в 20 ногах, дажэ говнокуб не сможэт. Хотя,
мобуть я его недооцэниваю.,. - mse homjak(12.06.2023 23:26)
- Ну запас карман не тянет. А китайцев тоже можно понять - дорого
изобретать отдельный кристалл для мелконожек, невыгодно. - LightElf(12.06.2023 23:31)
- ХЗ. Смотрю на них, цоколёвка, как бык поссал. Порты аллоцырованы,
аналогично. Ташта, походу, имана отдельный кристалл. Жалко, что у
млачшеньких, за 20р, умножителя нет. - mse homjak(12.06.2023 23:47)
- Потому и заказал отладку, что у всех 20-лапых "как бык поссал".
Сначала намеревался пересдуть в дальнейшем на платке от 003, ан
нет... Nuvoton вон взял и слепил STM8-совместимый корпус. WCH с
малоногоми оригинальничает... Если честно, STM не глянулся именно
тем, что куча обрубков портов. Млять, в 100-ногом STM32 ни одного
более-менее путного. И с CH32F207V китайцы продолжили это
безобразие. Грущу по mega162 в DIP40 ;) - Гyдвин(13.06.2023 00:13)
- Ну, собсно, 48-ногие WCHки эту грусть компенсируют частотой и фаршем. И цэной, что тожэ неплохо. - mse homjak(13.06.2023 00:14)
- Потому и заказал отладку, что у всех 20-лапых "как бык поссал".
Сначала намеревался пересдуть в дальнейшем на платке от 003, ан
нет... Nuvoton вон взял и слепил STM8-совместимый корпус. WCH с
малоногоми оригинальничает... Если честно, STM не глянулся именно
тем, что куча обрубков портов. Млять, в 100-ногом STM32 ни одного
более-менее путного. И с CH32F207V китайцы продолжили это
безобразие. Грущу по mega162 в DIP40 ;) - Гyдвин(13.06.2023 00:13)
- ХЗ. Смотрю на них, цоколёвка, как бык поссал. Порты аллоцырованы,
аналогично. Ташта, походу, имана отдельный кристалл. Жалко, что у
млачшеньких, за 20р, умножителя нет. - mse homjak(12.06.2023 23:47)
- Ну запас карман не тянет. А китайцев тоже можно понять - дорого
изобретать отдельный кристалл для мелконожек, невыгодно. - LightElf(12.06.2023 23:31)
- ХЗ, но засрать 128к в 20 ногах, дажэ говнокуб не сможэт. Хотя,
мобуть я его недооцэниваю.,. - mse homjak(12.06.2023 23:26)
- Говнокубы компилять-пилять. - LightElf(12.06.2023 23:24)
- Ну, кагбе малоногость предполагает ограниченный функцыанал. А тут
хуяк! 128к флэши. Операцыонку захуевертить, разве что. - mse homjak(12.06.2023 23:22)
- Х.З. но заказал и такой до-кучи... Жаль, что у WCH нет 28-ногих в
TSSOP, но пущай будет... Гyдвин(1 знак., 12.06.2023 23:11, ссылка)
- Я тожэ заказал. Мне быстрая плывучка можэт понадобиться в малоногом
корпусе. Но куда девать 128К? - mse homjak(12.06.2023 23:23)
- Дали мне как-то девайс готовый для написать прошивку. Обязательно с загрузчиком и т.п. Упорно укладывался в половину флеши, чтобы на вторую файловую систему накатить для (в том числе) хранения обновления. - POV(12.06.2023 23:28)
- Две копии прошивки, таблицы Брадиса, фотографии разработчиков... - LightElf(12.06.2023 23:25)
- Да! mse homjak(1 знак., 12.06.2023 23:40, картинка)
- В фас и профиль. LightElf(1 знак., 13.06.2023 11:29, картинка)
- Да! mse homjak(1 знак., 12.06.2023 23:40, картинка)
- Я тожэ заказал. Мне быстрая плывучка можэт понадобиться в малоногом
корпусе. Но куда девать 128К? - mse homjak(12.06.2023 23:23)
- SPI SCLK заводишь на таймер. Как только появляется SCLK таймер отмахивает тебе нужную длительность NSS. - RxTx(12.06.2023 00:12)
- Кароч... СПИ курильщика во всей красе... CS сбрасывал перед записью
в регистр данных. Попутно выяснил, что прерывание по RXNEIE
выставляется сильно до конца транзакцыи в 16 бит. Видимо, после
приёма 8 бит. О цэ дило, как говорят небратья. Пришлось колхозить
последовательность инструкцый в прерывании. Что-жэ оно мне
напринимает из АЦП, хотелось бы узнать? mse homjak(1 знак., 11.06.2023 13:14, картинка)
- ну да, эти дебилы думают, что все транзакцыи 8-бит. И на DFF им
насрать. mse homjak(1 знак., 11.06.2023 15:36, картинка)
- Рэзуме: смысла в использовании прерываний по концу педерачи нет
никакого, для малых делителей ЦЛК СПИ. Дажэ призрачная возможность
дать бэкграунду пол-микросекунды времени на 16-битной посылке,
сжирается затратами на прерывание. Т.е. в цыкле смотрим на Бизи и
машем ношкой. Работа на педерачу с ДМА, тожэ смысла не имеет из-за
идиотской работы SS. Кагтатаг. Справедливо для процов WCH и STM. - mse homjak(11.06.2023 16:03)
- Ну не всем надо лапой дрыгать. - LightElf(11.06.2023 20:46)
- Ну-у-у... У большинства СПИ девайсов по фронту CS команда/данные
защолкиваюца куда надо. Т.е. CS должно щщолкать когда нужно, а не
когда захочеца. Не всем-жэ светодиодные линейки проталкивать. - mse homjak(11.06.2023 20:56)
- А вот щас абыдна было :-) - LightElf(12.06.2023 01:56)
- ;О) - mse homjak(12.06.2023 09:36)
- А вот щас абыдна было :-) - LightElf(12.06.2023 01:56)
- Ну-у-у... У большинства СПИ девайсов по фронту CS команда/данные
защолкиваюца куда надо. Т.е. CS должно щщолкать когда нужно, а не
когда захочеца. Не всем-жэ светодиодные линейки проталкивать. - mse homjak(11.06.2023 20:56)
- Ну не всем надо лапой дрыгать. - LightElf(11.06.2023 20:46)
- Рэзуме: смысла в использовании прерываний по концу педерачи нет
никакого, для малых делителей ЦЛК СПИ. Дажэ призрачная возможность
дать бэкграунду пол-микросекунды времени на 16-битной посылке,
сжирается затратами на прерывание. Т.е. в цыкле смотрим на Бизи и
машем ношкой. Работа на педерачу с ДМА, тожэ смысла не имеет из-за
идиотской работы SS. Кагтатаг. Справедливо для процов WCH и STM. - mse homjak(11.06.2023 16:03)
- ну да, эти дебилы думают, что все транзакцыи 8-бит. И на DFF им
насрать. mse homjak(1 знак., 11.06.2023 15:36, картинка)
- Они в этом полностью повторили поведение STM32. Всё правильно у
тебя работает, как и должно по задумке ST (но не по нашей). В
режиме мастера у STM32 NSS не работает как строб (вопреки
ожиданию). При SPI_CR2.SSOE=1 на NSS будет просто 0, пока активен
SPI периферал. +Полезно знать что после передачи посылки SPI
периферал отрубается (внутри HAL или сам не помню) и выходы
переходят в Z-state (floating), втч NSS, если выставить внутренний
пуллап, поднимаются относительно медленно. RxTx(170 знак., 11.06.2023 00:58, картинка)
- Насчёт "сам отрубается", нет. У меня тарабанит в цикле. Отрубается в ХАЛ, как по ссылке. Нахуя? А, главное, зачем? mse homjak(1 знак., 11.06.2023 08:20, ссылка)
- у меня 003 закуплено, жду однопроводный WlinkE отладчик с алика -
имеется WLink - он умеет только двухпроводный. как приедут поробую
отпишусь про spi если еще будет актуально. - klen(10.06.2023 09:49)
- Если есть возможность посмотреть на каком STM32F1**, как SPI
работает с аппаратным NSS, гляньте, пожалуйста. У ST во всех
примерах нашёл только soft_nss. Такое впечатление, что там зарыта
нехилая собака, если дажэ производитель намекает, что "туда нэ
хады". Тут ужэ и китайцам пенять нечего. Хотя, чо там такого, ХЗ. - mse homjak(10.06.2023 11:43)
- ды это вроде в f1xx нет аппаратного nss, посколько нет регистра
указывающего сколько битов посылка - а без этого никто не можежет
знать когда закрыть аппаратно cs. в старших микросхемах есть это -
можно указать размер слова и количество слов в транзакции, тут есть
аппаратный cs. f1 - унылое гомно мамонта, разве не так? - klen(10.06.2023 18:28)
- Смутно вспоминается, что у F10x аппаратный nSS только для слейва
имеется. Но я его давно ковырял, могу ошибаться. Что до унылости -
я полностью согласен, но тут норот его почему-то любит. - LightElf(10.06.2023 19:54)
- Именно. "....NSS – вывод предназначен для выбора подчинённого
устройства в режиме Slave, при подаче на его вход логического ноля,
также с помощью этого вывода можно переключать режимы SPI
(Master/Slave), в мультимастерной шине....Итак, вывод NSS работает
не совсем так, как привычный CS у AVR, и в режиме Master для выбора
ведомого необходимо использовать GPIO." petrd(1 знак., 11.06.2023 09:16, ссылка)
- Не... Это ужэ отмазки типа "не баг, а фича". В базе, логика работы СПИ обязана поддерживаться. Тем более, что эта логика простейшая. Да и просто логика пользования: вы даёте ДМА, СПИ на частоте Фцлк/2 и(внезапно!) нужно следить за Бизи и махать лапкой вручную, соревнуясь в скорости с ДМА и Фцлк/2. "Нахуя? И, главное, зачем?"(С). Ясен%, что для ЦПУ за 20р, это простительно. И для ЦПУза 200р, это простительно, потому, что у него полный фарш на борту, как у иного, за 1000. Но mse homjak(41 знак., 11.06.2023 11:12)
- Норот любит СН32V003. 20 ног, 48МГц, R-V. Цэна, 20р на Али. Лихая
замена Мега*8. Но цэна имеет свою цэну. - mse homjak(10.06.2023 19:59)
- вот вот - с втроника начинаю окучивать... 307 окучился неплохо (правда usb и 1G ethernet за вымя еще не щупал). должно окучится еще лучше. - klen(10.06.2023 20:04)
- Дык о чем и речь. Нафига они скопировали SPI от F10x, а не от F0x? - LightElf(10.06.2023 20:04)
- это да - видно что старье местами соджрано, но может очень долго
драли.. - klen(10.06.2023 20:05)
- Меня тожэ сам принцып обескуражывает. Если бы драли собсно,
СТМ-АРМ, было бы понятно, СТМ дал лицэнзию или просто спиздили всё,
что нужно для тупого копирования и вперде. Но ядро-то другое. Т.е.
они делали всё, начиная с текста. Можэт удалось спиздить тексты или
ИПкорки СТМ, а разбираться и править... Да гори оно огнём. Хотя,
чего им стоило переписать тот-жэ СПИ? Чо там военного-то? - mse homjak(10.06.2023 20:36)
- я не знаю чего там военного но рукожопы из ST до сих пор не могут
сделать правильный I2C - оно кривое по сей день. чтоб не быть
голословным - цитата из эрраты на stm32h750 пилагается -> klen(10229 знак., 10.06.2023 20:52)
- I2C у ST никогда нормально не работал, так что не стоит и начинать. Но они же ещё и UART регулярно забаживают, вот в чем штука. LightElf(103 знак., 11.06.2023 15:11)
- Блин... Можэт это им китайцы ИПкорки пишут? а они тока свой логотип
рисуют? Тогда всё сходица. - mse homjak(10.06.2023 20:54)
- чайник.. ты до сих пор не вкурсе - пишут индусы и тырят китайцы,
причем индусы не успевают дорисовать - холст и краски исчезают во
время чиханий когда они дурь занюхиват, без дури микросхемы не
получаюцца - klen(10.06.2023 21:25)
- Блин... Как у них всё сложно... mse homjak(1 знак., 10.06.2023 21:57, youtube)
- чайник.. ты до сих пор не вкурсе - пишут индусы и тырят китайцы,
причем индусы не успевают дорисовать - холст и краски исчезают во
время чиханий когда они дурь занюхиват, без дури микросхемы не
получаюцца - klen(10.06.2023 21:25)
- я не знаю чего там военного но рукожопы из ST до сих пор не могут
сделать правильный I2C - оно кривое по сей день. чтоб не быть
голословным - цитата из эрраты на stm32h750 пилагается -> klen(10229 знак., 10.06.2023 20:52)
- Меня тожэ сам принцып обескуражывает. Если бы драли собсно,
СТМ-АРМ, было бы понятно, СТМ дал лицэнзию или просто спиздили всё,
что нужно для тупого копирования и вперде. Но ядро-то другое. Т.е.
они делали всё, начиная с текста. Можэт удалось спиздить тексты или
ИПкорки СТМ, а разбираться и править... Да гори оно огнём. Хотя,
чего им стоило переписать тот-жэ СПИ? Чо там военного-то? - mse homjak(10.06.2023 20:36)
- это да - видно что старье местами соджрано, но может очень долго
драли.. - klen(10.06.2023 20:05)
- Именно. "....NSS – вывод предназначен для выбора подчинённого
устройства в режиме Slave, при подаче на его вход логического ноля,
также с помощью этого вывода можно переключать режимы SPI
(Master/Slave), в мультимастерной шине....Итак, вывод NSS работает
не совсем так, как привычный CS у AVR, и в режиме Master для выбора
ведомого необходимо использовать GPIO." petrd(1 знак., 11.06.2023 09:16, ссылка)
- Каг это нету? 8-16 бит. STM32F101/103, выписка из регистра SPI_CR1: mse homjak(1 знак., 10.06.2023 19:54, картинка)
- Смутно вспоминается, что у F10x аппаратный nSS только для слейва
имеется. Но я его давно ковырял, могу ошибаться. Что до унылости -
я полностью согласен, но тут норот его почему-то любит. - LightElf(10.06.2023 19:54)
- Мне кажется, что в STM с "мультимастер" там что-то сильно
намуд(р)или и забажили, а китайцы лишь добросовестно все баги
воспроизвели. - reZident(10.06.2023 13:26)
- Имана. "Лучший ответ на вопрос"как запрограммировать STM32 SPI NSS
hardmode" Мякотка в концэ... mse homjak(1262 знак., 10.06.2023 13:50)
- Смутно припоминаю, что у LPC17xx в SPI/SSP такая же бодяга с
сигналом SSEL заложена. Я этот пин для SSEL обычно закладывал в
электрическую схему, но по-моему наши программисты всегда софтверно
им дрыгали. - reZident(10.06.2023 14:06)
- Я особо членоморфировал от "deinit_SPI". - mse homjak(10.06.2023 16:11)
- Смутно припоминаю, что у LPC17xx в SPI/SSP такая же бодяга с
сигналом SSEL заложена. Я этот пин для SSEL обычно закладывал в
электрическую схему, но по-моему наши программисты всегда софтверно
им дрыгали. - reZident(10.06.2023 14:06)
- Имана. "Лучший ответ на вопрос"как запрограммировать STM32 SPI NSS
hardmode" Мякотка в концэ... mse homjak(1262 знак., 10.06.2023 13:50)
- ды это вроде в f1xx нет аппаратного nss, посколько нет регистра
указывающего сколько битов посылка - а без этого никто не можежет
знать когда закрыть аппаратно cs. в старших микросхемах есть это -
можно указать размер слова и количество слов в транзакции, тут есть
аппаратный cs. f1 - унылое гомно мамонта, разве не так? - klen(10.06.2023 18:28)
- Если есть возможность посмотреть на каком STM32F1**, как SPI
работает с аппаратным NSS, гляньте, пожалуйста. У ST во всех
примерах нашёл только soft_nss. Такое впечатление, что там зарыта
нехилая собака, если дажэ производитель намекает, что "туда нэ
хады". Тут ужэ и китайцам пенять нечего. Хотя, чо там такого, ХЗ. - mse homjak(10.06.2023 11:43)
- А не надо по СТМовскому, различий полно CH32 не пробовали, но с
GD32 секса поимели. - Visitor(09.06.2023 22:20)
- По родному тоже пытался, результат тот-жэ. Да и с СТМовским
совпадает до буквы. Вернее, китайцкий уверяет, что переключения
направления LSB/MSB нет, а он есть. Единственное, подозреваю, что
NSS выведен в другое место. Хотя я весь порт просмотрел. - mse homjak(09.06.2023 22:27)
- Так тама вроде только два варианта, не? reZident(1 знак., 09.06.2023 22:32, картинка)
- Ну да. Только порт в "0", как будто альтернативная функция выведена
другая. - mse homjak(09.06.2023 22:41)
- Мож там еще и порядок инициализации регистров играет какую рояль?
Ну типа вначале все настроить унутре и только потом разрешить
использование понаруже. Кстате, а pull-upить резистором NSS не
пробовал? - reZident(09.06.2023 23:06)
- Там всего в 2 регистрах инициализация. Сперва пишешь в один, потом,
в другой. Если наоборот, то да, СПИ не пашет. - mse homjak(09.06.2023 23:15)
- Прикольно. Ткнулся осцылом в NSS и пальцем через иголку дал
наводку. NSS настроен как вход. Хотя, его пин настроен как пушпул
альтернативной функцыи. И разрешение в настройках СПИ для NSS, как
выход. - mse homjak(09.06.2023 23:24)
- Отож! Похоже SPI почему-то как слейв, либо "мультимастер"
проинициализировался. Может тут чего полезное написано? reZident(1 знак., 09.06.2023 23:33, картинка)
- Завтра на свежую голову покурю СТМ. - mse homjak(09.06.2023 23:33)
- Отож! Похоже SPI почему-то как слейв, либо "мультимастер"
проинициализировался. Может тут чего полезное написано? reZident(1 знак., 09.06.2023 23:33, картинка)
- Прикольно. Ткнулся осцылом в NSS и пальцем через иголку дал
наводку. NSS настроен как вход. Хотя, его пин настроен как пушпул
альтернативной функцыи. И разрешение в настройках СПИ для NSS, как
выход. - mse homjak(09.06.2023 23:24)
- Там всего в 2 регистрах инициализация. Сперва пишешь в один, потом,
в другой. Если наоборот, то да, СПИ не пашет. - mse homjak(09.06.2023 23:15)
- Мож там еще и порядок инициализации регистров играет какую рояль?
Ну типа вначале все настроить унутре и только потом разрешить
использование понаруже. Кстате, а pull-upить резистором NSS не
пробовал? - reZident(09.06.2023 23:06)
- Ну да. Только порт в "0", как будто альтернативная функция выведена
другая. - mse homjak(09.06.2023 22:41)
- Так тама вроде только два варианта, не? reZident(1 знак., 09.06.2023 22:32, картинка)
- А пишут, что софт без компиляции запускается.
Пиздятпреувеличили? - POV(09.06.2023 22:23)- Преувеличили. В CH32 даже на ARM ядре отсебятины много. Что-то сложнее мигнания светодиодом без модификации не заведется. - AlexG(10.06.2023 04:02)
- У CH32V ядро другое, без перекомпиляции никак. - LightElf(10.06.2023 00:52)
- Пардон, не уточнил - я про GD32 - POV(10.06.2023 20:42)
- Заводится. У меня одна и та же прошивка без перекомпиляции работает и в STM32F103RB и в GD32F103RB. С GD были нюансы, поправил и теперь оба на одном и том же коде работают, без всяких #ifdef GD32.......#ifdef STM32....... - petrd(11.06.2023 08:44)
- Именно так. Подтверждаю. Но я Ethernet дела не имел, а Visitor с ним работает, может там есть отличия. Был затык у меня с работой USB-Host, пришлось сделать мизерную правку. И есть так-же аппаратные отличия, их приходится учитывать. - il-2(11.06.2023 08:11)
- Пардон, не уточнил - я про GD32 - POV(10.06.2023 20:42)
- По родному тоже пытался, результат тот-жэ. Да и с СТМовским
совпадает до буквы. Вернее, китайцкий уверяет, что переключения
направления LSB/MSB нет, а он есть. Единственное, подозреваю, что
NSS выведен в другое место. Хотя я весь порт просмотрел. - mse homjak(09.06.2023 22:27)
- Попробывал ДМА. Хорошо работает. Для упоротых, типа меня, есть
вариант сделать олдскульный СПИ на ДМА. Правда, сожрёт ОЗУ и
скорость СЦК получается в