jcxz 234 6 декабря, 2023 Опубликовано 6 декабря, 2023 · Жалоба 5 часов назад, auric сказал: Для меня это не так очевидно как вам это кажется, я читал как по регистрам отследить появление HF, но к сожалению при 0xFFFFFFF9 в LR вроде как отсыл был к неправильной адресации - для меня не особо говорит, что и где искать... Открываем "Technical Reference Manual" for Cortex-M3. И читаем в нём раздел "Exceptions". В частности его параграф "5.8.2 Returning the processor from an ISR" содержит описание кодов EXC_RETURN. Одним изкоторых и является ваше 0xFFFFFFF9 (это не адрес, это спец.значение EXC_RETURN). Также в этом разделе можно найти описание формата кадра стека, созданного процессом стекинга и рассказывается как из EXC_RETURN узнать расположение этого кадра стекинга. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
auric 0 8 января Опубликовано 8 января · Жалоба В 05.12.2023 в 18:01, amaora сказал: Я тут делал передачу по SPI через DMA без прерываний. Нужен таймер и несколько (больше двух) каналов DMA. Можно и несколько CS так переключать. А вот может ли так F103 надо читать маны. в итоге сделал переключение CS на прерываниях (полностью на DMA повесить управление SPI не получилось), но в итоге если работать с односторонней передачей, то проще действительно использовать таймер, тем более мне он пригодился для дополнительных пауз, тк нужно выдерживать задержку от конца последнего CLK импульса до поднятия /CS. А в случае использования еще и приема от периферии (у меня канал DMA на прием как назло оказался занят) подошел и IE_RXNE флаг вполне, что собственно и писали тоже в советах В 27.11.2023 в 22:34, mitya1698 сказал: так как spi синхронный, то окончание приема означает как раз окончание передачи, они же по одному клоку работают. но только задержки надо контролировать, чтобы не было все быстро (кстати по поводу задержек уже другая история). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mitya1698 18 8 января Опубликовано 8 января · Жалоба тоесть у вас отправка по дма, а прием по прерываниям? не очень ясно смысл сего действа. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 234 8 января Опубликовано 8 января · Жалоба 3 часа назад, auric сказал: проще действительно использовать таймер, тем более мне он пригодился для дополнительных пауз, тк нужно выдерживать задержку от конца последнего CLK импульса до поднятия /CS. Паузы можно создавать и без таймера. Достаточно просто пин SCLK перевести в состояние GPIO (предварительно выставив нужный GPIO-уровень) и передать по SPI любое слово подходящего размера (предварительно выставив нужную скорость). И таймер расходовать не нужно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
auric 0 8 января Опубликовано 8 января (изменено) · Жалоба 5 часов назад, mitya1698 сказал: тоесть у вас отправка по дма, а прием по прерываниям? не очень ясно смысл сего действа. Ну да - канал, отвечающий за DMA_RX занят USART-ом (так получилось, недоглядел, плату переделывать не очень хотелось). В принципе не критично, тк прием нужен не во всех пакетах. Но все равно такая схема удобнее поллинга флагов внутри основной/фоновой программы. 3 часа назад, jcxz сказал: Паузы можно создавать и без таймера. Достаточно просто пин SCLK перевести в состояние GPIO (предварительно выставив нужный GPIO-уровень) и передать по SPI любое слово подходящего размера (предварительно выставив нужную скорость). И таймер расходовать не нужно. пока не понял как это должно работать, вроде пин SCLK при работе с периферией SPI назначается как AFIO (если конечно работа SPI не делается так сказать "вручную"). Изменено 8 января пользователем auric Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mitya1698 18 8 января Опубликовано 8 января · Жалоба В 08.01.2024 в 12:42, jcxz сказал: Паузы можно создавать и без таймера. Достаточно просто пин SCLK перевести в состояние GPIO (предварительно выставив нужный GPIO-уровень) и передать по SPI любое слово подходящего размера (предварительно выставив нужную скорость). И таймер расходовать не нужно. Так перед тем как перевести SCLK в GPIO надо также чем-то дождаться окончания передачи/приема, а если чем-то дождались, то уже можно и CS ом порулить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 234 8 января Опубликовано 8 января · Жалоба 4 минуты назад, mitya1698 сказал: Так перед тем как перевести SCLK в GPIO надо также чем-то дождаться окончания передачи/приема, а если чем-то дождались, то уже можно и CS ом порулить. Дожидаться этого можно ожиданием завершения DMA. Таймер тут не нужен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mitya1698 18 8 января Опубликовано 8 января · Жалоба при DMA на передачу, оно завершится раньше фактической передачи, все как обычно жеж. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 234 8 января Опубликовано 8 января · Жалоба 2 минуты назад, mitya1698 сказал: при DMA на передачу, оно завершится раньше фактической передачи, все как обычно жеж. Естественно receive-DMA. Вроде это само собой разумеется. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mitya1698 18 8 января Опубликовано 8 января · Жалоба тема про передачу и cs. чем ваши паузы через sclk помогут? или это просто не првязанная к теме информация? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 234 8 января Опубликовано 8 января · Жалоба Паузы нужны не мне, а товарищу, которому я отвечал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mitya1698 18 8 января Опубликовано 8 января · Жалоба В 08.01.2024 в 09:20, auric сказал: тк нужно выдерживать задержку от конца последнего CLK импульса до поднятия /CS В 08.01.2024 в 18:08, jcxz сказал: Паузы нужны не мне, а товарищу, которому я отвечал. товарищу как раз нужны были паузы от clk до cs Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться