Перейти к содержанию
    

вывод потока данных через TMR+DMA

Может у кого есть идеи как вывести данные в порт GPO через ДМА

Идея такова , есть массив  где записаны длинны импульсов, есть второй такой же где записано будет ли это 1 или 0

Например Arr_time[0] = 100; Arr_polarita[0] = 1;

               Arr_time[1] = 123; Arr_polarita[1] = 0;

итд

Сейчас это выводиться через таймер с прерыванием

Хотелось бы просто это как то стартануть через  ДМА все это и заниматься другими вычислениями без прерываний пока ДМА вываливает эти данные в порт

Есть какие то идеи?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 12/2/2022 at 10:00 AM, haker_fox said:

Микроконтроллер-то какой?

работет сейчас на STm32f429/ . Отладить хочу на нем, Но в перспективе есть желание уйти на китайца. Есть уже опыт переноса софта. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Один канал DMA обеспечивает таймер отсчитываемыми интервалами (если они разные), а другой канал DMA, пинаемый этим таймером, в порт выставляет единички-нулики...
Как-то так.
Изменено пользователем Obam
ДМА - нельзя, надо - ПДП

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А нельзя ли сделать один массив в котором будут поочередно записаны длительности высокого и низкого уровней?  У вас ведь всего два уровня, верно?

Изменено пользователем tgruzd

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

5 hours ago, tgruzd said:

А нельзя ли сделать один массив в котором будут поочередно записаны длительности высокого и низкого уровней?  У вас ведь всего два уровня, верно?

 

А что это даст в плане вывода через DMA? 🙂

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 12/2/2022 at 11:28 PM, Obam said:

Один канал DMA обеспечивает таймер отсчитываемыми интервалами (если они разные), а другой канал DMA, пинаемый этим таймером, в порт выставляет единички-нулики...
Как-то так.

 

Спасибо, такая мысль  тоже крутится, нашел что-то подобное 

AN4666 Application note Parallel synchronous transmission using GPIO and DMA

буду капать в этом направлении

Надо вывести  пакеты подобные манчестеру. Беда в том что кроме стандартного клока присуствуют вставки с нестандартными значениями времени битов

что портит всю картину и требует индивидуального  тайминга на каждый бит а не просто клока для потока

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

46 минут назад, spirit_1 сказал:

Надо вывести  пакеты подобные манчестеру. Беда в том что кроме стандартного клока присуствуют вставки с нестандартными значениями времени битов

что портит всю картину и требует индивидуального  тайминга на каждый бит а не просто клока для потока

Просто берёте МК с SGPIO и не нужно никакого колхозинга с таймера+DMA. И никакого джиттера из-за этого DMA. И точность длин импульсов получаете с точностью до такта CPU.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 12/3/2022 at 11:41 AM, jcxz said:

Просто берёте МК с SGPIO и не нужно никакого колхозинга с таймера+DMA. И никакого джиттера из-за этого DMA. И точность длин импульсов получаете с точностью до такта CPU.

 То что описано выше это  одна из задач решаемых на данном МК,  есть другие параметры как то доступность, скорость выполнения, скорость АЦП , память, цена итд ткоторые так же дожны удовлетворять 

Пэтому хотелость бы это сделать на классическом вариане . И почему колхозинг? Если у контроллера перферия позволяет чтото то сделать за счет комбинации переферии это замечательно и гибко

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, spirit_1 сказал:

Пэтому хотелость бы это сделать на классическом вариане . И почему колхозинг? Если у контроллера перферия позволяет чтото то сделать за счет комбинации переферии это замечательно и гибко

Ну вот у LPC43xx она как раз и удовлетворяет. А вы пытаетесь сляпать на том, где не удовлетворяет. Потому и колхозинг.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 12/4/2022 at 2:25 AM, jcxz said:

Ну вот у LPC43xx она как раз и удовлетворяет. А вы пытаетесь сляпать на том, где не удовлетворяет. Потому и колхозинг.

Я бы не сказал что по описанию она меня удовлетворяет. Попробую обьснить

Мне сейчас необходим контроллер с

1)минимальной ценой, 

2.) Минимально 2 ADC 12 бит и не менее 2.5 Msps на канал работающие синхроннно

3). Максимальня произволительность ядра для вычисления DSP  целых числел как минимум

Мспользуеться все это в трансивере, АDC  оцифровывают IQ  и далее обрабатываем ядром.  

Пердача как бог пошлет, сейчас через прерывания , надо бы через ДМА но на фукционал это не влияет никоим образом

Сейчас это STM32F429  который стал стоить хрен знает сколько и к тому же еще попроьуй найди

 Ваш вариант стоит  около 20 евро

https://eu.mouser.com/c/semiconductors/embedded-processors-controllers/microcontrollers-mcu/arm-microcontrollers-mcu/?adc resolution=2 x 10 bit&m=NXP&series=LPC431x~~LPC433x&tradename=LPC&rp=semiconductors%2Fembedded-processors-controllers%2Fmicrocontrollers-mcu%2Farm-microcontrollers-mcu|~Series&sort=pricing

при этом имеет АЦП  при разрешении 10 бит всего лишь 400ksps

 и ядро М4 с частотой 200 мгц

Мне это не подходит, как миниуи по причине АЦП 0.4msps

Какая альиернатива?  например такая AT32F435

Что имееем 

1. Цена 3-4$ vs 17-20 $(NXP)

2.ADC 12 bit (5.6 msps!) vs 10bit 0.4msps(NXP)

3, M4 288мгц vs M4 200 мгц(NXP)

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, spirit_1 said:

Я бы не сказал что по описанию она меня удовлетворяет. Попробую обьснить

Главное, что Вы учитываете, что контроллер ПДП - конкурент процессору за шину, и, наоборот. Другими словами, если процессор займёт шину, то ПДП будет в это время ждать тихо в сторонке. Соответственно, даже при большом желании, он не сможет начать выводить очередной импульс на ножку. Потом шина освободится и этот импульс будет выведен. Но время ожидания ПДП будет составлять джиттер.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, spirit_1 сказал:

при этом имеет АЦП  при разрешении 10 бит всего лишь 400ksps

 и ядро М4 с частотой 200 мгц

Советую вам внимательнее что-ли читать мануалы. Открываем даташит на LPC4370 и читаем:

Цитата

Analog peripherals
 One 10-bit DAC with DMA support and a data conversion rate of 400 kSamples/s. 
LBGA256 package only.
 Two 8-channel, 10-bit ADCs (ADC0/1) with DMA support and a data conversion 
rate of 400 kSamples/s for a total of 16 independent channels. The 10-bit ADCs 
are only available on the LBGA256 package.
One 6-channel, 12-bit high-speed ADC (ADCHS) with DMA support and a data 
conversion rate of 80 MSamples/s.

И там не "ядро М4 с частотой 200 мгц", а 3 ядра M4+M0+M0 каждое up to 204МГц. Т.е. - если уж так хочется ногодрыжить, то делать это можно полностью на отдельном ядре, не мешая основному M4 заниматься полезными делами. Да и ногодрыжить (через DMA или иначе) там вовсе незачем, потому как имеется специально предназначенный для таких дел SGPIO.

2 часа назад, spirit_1 сказал:

2.ADC 12 bit (5.6 msps!) vs 10bit 0.4msps(NXP)

Т.е. - всего лишь в 14 раз медленнее чем у NXP?  :biggrin:

2 часа назад, spirit_1 сказал:

3, M4 288мгц vs M4 200 мгц(NXP)

Я в китайских МК не силён. Но по опыту с али чётко помню, что все китайские ватты и амперы нужно делить примерно на 10. Может и с мегагерцами также?  :biggrin:

 

PS: Вас упорно сносит в сторону ногодрыга и колхоза. :unknw:  Вместо того, чтобы использовать специально предназначенную периферию. Пытаетесь сваять что-то на неподходящем. Как показывает практика - до удовлетворительного результата это обычно не доводит. Но тут уже в мировоззрении что-то менять надо. не иначе...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мспользуеться все это в трансивере, АDC оцифровывают IQ и далее обрабатываем ядром.
Возможно, вы забурились не настолько глубоко, по сему посмотрите у https://habr.com/ru/users/dmitriyrudnev/posts/
несколько статей про "звуковуху" для SDR на F4xx - и возможно будете искать решение не на АЦП в микроконтроллере.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 12/5/2022 at 1:45 AM, Obam said:

Мспользуеться все это в трансивере, АDC оцифровывают IQ и далее обрабатываем ядром.
Возможно, вы забурились не настолько глубоко, по сему посмотрите у https://habr.com/ru/users/dmitriyrudnev/posts/
несколько статей про "звуковуху" для SDR на F4xx - и возможно будете искать решение не на АЦП в микроконтроллере.

в чем именно я заблудился? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...