| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| SPI, DMA http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=14826 |
Страница 1 от 1 |
| Автор: | Цецо [ Вто Окт 11, 2016 1:21 pm ] |
| Заглавие: | Re: SPI, DMA |
Така както изглежда, четеш един семпъл повече, все едно трансфера ти е за 5 вместо 4 аксеса. Обаче в тоя отрязък от кода никъде не виждам къде зареждаш броя на трансферите. Виж там да не бъркаш нещо. Ако имаш дебъгер сложи прекъсване точно преди енейбъла на ДМА-то и виж в регистъра за броя трансфери какво имаш - 5 или 4. |
|
| Автор: | bobi13 [ Вто Окт 11, 2016 1:25 pm ] | |||||||||
| Заглавие: | Re: SPI, DMA | |||||||||
Извинявам се, така го зареждам
|
||||||||||
| Автор: | Цецо [ Вто Окт 11, 2016 1:34 pm ] |
| Заглавие: | Re: SPI, DMA |
Не съм работил с 7ма серия, като за 4та изглежда ОК кода. Да няма някава особенност в ДМА-то на 7ма серия, ама едва ли. |
|
| Автор: | tolstolob [ Вто Окт 11, 2016 1:36 pm ] |
| Заглавие: | Re: SPI, DMA |
. |
|
| Автор: | miro_atc [ Вто Окт 11, 2016 1:51 pm ] | |||||||||
| Заглавие: | Re: SPI, DMA | |||||||||
А дали са само това? Имаш някаква структура, на която просвояваш някои полета, ами другите полета каква стойност имат? Поне виж дали декларацията е статик или ауто, ако е ауто вземи я забърши тая структура щото простотиите на ST край нямат... А най-добре дето ти каза Цецо - слагаш един брейкпоинт и гледаш как се програмира и SPI и DMA-то. |
||||||||||
| Автор: | miro_atc [ Вто Окт 11, 2016 2:22 pm ] |
| Заглавие: | Re: SPI, DMA |
Сори, не погледнах добре кода... той не е и за гледане, ама това е друга тема Значи RX-Only режима на SPI е някакво безумие. В момента в който разрешиш периферията и тя тръгва да чете и така до откат. Няма значение какви дължини слагаш на DMA-то, те си важат само за DMA-то. Съветът ми е да не ползваш подобни щуротии. Сложи си го на нормален режим, нека си праща.. ти като не му програмиш MOSI никой няма да разбере че "праща" За пращането пускаш ДМА без MINC, така ще прати едно и също нещо колкото пъти му кажеш и ще спре. |
|
| Автор: | bobi13 [ Вто Окт 11, 2016 2:30 pm ] |
| Заглавие: | Re: SPI, DMA |
Добре, ще пробвам. |
|
| Автор: | Цецо [ Вто Окт 11, 2016 5:39 pm ] |
| Заглавие: | Re: SPI, DMA |
Да Миро е прав. Единствения проблем е, че губиш един канал на DMA-то залудо, а те в СТМ-а са малко кът. |
|
| Автор: | miro_atc [ Сря Окт 12, 2016 9:06 am ] |
| Заглавие: | Re: SPI, DMA |
Ако има проблем с ДМА-то може да види как работи пущината. От картинката се вижда, че все пак спира. Въпросът е дали спира щото изключва SPI-a или той спира сам да изчака да му изпразниш DR-a. Ако е второто може да мине без пращане, само трябва да си пуска ДМА-то с един трансфер по-малко, а последните данни да си ги чете ръчно след като изчака да дойдат и спре животното. И друго дето се вижда от картинката - много криви сигнали... Не знам с какво е снимано и доколко е истина, ама сякаш трябва да се намали силата на драйверите или някаква серийна терминация, че така изглежда като радио Хоризонт |
|
| Автор: | bobi13 [ Чет Окт 13, 2016 12:31 pm ] | |||||||||
| Заглавие: | Re: SPI, DMA | |||||||||
От осцилоскопа е. Сложих SPI в режим Rx/Tx и всичко се оправи. Все още ми е интересно къде е проблема, в хардуера или в самата библиотека. Благодаря за помощта. |
||||||||||
| Автор: | miro_atc [ Чет Окт 13, 2016 12:53 pm ] |
| Заглавие: | Re: SPI, DMA |
Нямаш проблем, просто така си работи в RX only режим - още като го конфигурираш и тръгва автоматично и така докато може... Не е ясно само дали изкава да опразниш получените данни или не. Ако изчаква както казах по-горе, пускаш един трансфер по-малко и докато чака го спираш. Иначе в движение няма как да го спреш точно след определен брой трансфер, трябва да налучкваш времена и да играеш тото... |
|
| Страница 1 от 1 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|