реклама на сайте
подробности

 
 
5 страниц V  < 1 2 3 4 > »   
Reply to this topicStart new topic
> Microblaze+DDR2+UART, собрать проект в ise
lastpoint
сообщение Sep 16 2013, 13:13
Сообщение #16


Участник
*

Группа: Участник
Сообщений: 50
Регистрация: 1-08-12
Из: Смоленск
Пользователь №: 72 975



Цитата
Частота дискретизации 3мегасемпла. Частота сигнала не помню какую точно задавал ( около 1кГц )
- значит на форме где-то 1/100 периода ? И еще, если АЦП 8-битное (это 24000000бит/сек) , а com-port настроен на 9600 бит/сек, то как происходит передача данных на ПК :принял семпл-передал, остальные пропустил или принял несколько семплов-отослал, потом опять часть принял-отослал)? в первом случае частота семплирования намного меньше, чем ожидается, а во втором должны выходить куски сигнала, не связанные с собой
Go to the top of the page
 
+Quote Post
vitali36
сообщение Sep 16 2013, 14:55
Сообщение #17


Частый гость
**

Группа: Участник
Сообщений: 88
Регистрация: 2-07-13
Пользователь №: 77 354



Ацп 14-ти разрядный. Данные я разделяю. Сначала 8, потом 6 дополненные двумя нулями. А в самой программе на c# данные скидываю в массив, но т.к ацп 14 разрдядный я просто делаю конкатенацию 0 элемент с 1, 2 c 3 и т.д. Скорость 921600. Вы мне скажите график не похож что ли?
Golikov.A. Да, частота определяется самим ацп. Писалось по даташиту все - там прежде чем ацп запустить нужно предусилитель настроить. По поводу временной метки, не очень понял. Вообще я сейчас хочу все это доделать с памятью, вывести график и посмотреть как что) . Только вот не пойму все входы с ацп ли нужно к microblaze подключать. rst, clk и выход с ацп я подключил, ругается потом xps на spi_adc. Вообще хочу спасибо всем сказать что помогаете мне - тратите свое личное время

Сообщение отредактировал vitali36 - Sep 16 2013, 15:03
Go to the top of the page
 
+Quote Post
Sergey_Bekrenyov
сообщение Sep 16 2013, 15:10
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 323
Регистрация: 14-12-10
Из: Королёв
Пользователь №: 61 599



Цитата(vitali36 @ Sep 16 2013, 18:55) *
Ацп 14-ти разрядный. Данные я разделяю. Сначала 8, потом 6 дополненные двумя нулями. А в самой программе на c# данные скидываю в массив, но т.к ацп 14 разрдядный я просто делаю конкатенацию 0 элемент с 1, 2 c 3 и т.д. Скорость 921600. Вы мне скажите график не похож что ли?
Golikov.A. Да, частота определяется самим ацп. Писалось по даташиту все - там прежде чем ацп запустить нужно предусилитель настроить. По поводу временной метки, не очень понял. Вообще я сейчас хочу все это доделать с памятью, вывести график и посмотреть как что) . Только вот не пойму все входы с ацп ли нужно к microblaze подключать. rst, clk и выход с ацп я подключил, ругается потом xps на spi_adc. Вообще хочу спасибо всем сказать что помогаете мне - тратите свое личное время


Прицепите Чипскоп и он выведет Вам график. Вы пытаетесь настроить кучу модулей одновременно.
Go to the top of the page
 
+Quote Post
vitali36
сообщение Sep 16 2013, 16:21
Сообщение #19


Частый гость
**

Группа: Участник
Сообщений: 88
Регистрация: 2-07-13
Пользователь №: 77 354



Мне не график нужно вывести в данный момент. Я добавляю ацп ( vhdl модуль к микроблейз) . Вернее уже добавил, теперь хочу связать входы-выходы. clk, rst от ацп привязал к Bus2IP_CLK, Bus2IP_Reset, а выход ацп с данными к IP2RFIFO_Data. но ругается xps потом на вход spi_adc. С чем его связать нужно?
Go to the top of the page
 
+Quote Post
Maverick
сообщение Sep 16 2013, 16:40
Сообщение #20


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



Опишите для ясности чем Вы владеете
- какое ацп
- с помощью какой микросхемы передаете порядка 1 мегабита по юарту (просто возможно передача и на большей скорости например через FIFO, SPI, например это возможно у FTDI)


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Sep 16 2013, 17:35
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Модуль АЦП человек написал сам, как я понимаю

учтите что обычно ресет шины (Bus2IP_Reset) обратный, посмотрите какой уровень у нее при ресете, там что-то не как обычно в микросхемах насколько я помню.

Не очень понятно как вы хотите привязать АЦП к фифо, я что-то такого фифо не припоминаю, по описанию оно для чего сделано? Это не от Езернета фифо случаем оторвали?


Про времянную метку я предлагаю вот что

берем счетчик 8 бит, который каждое считывание ацп увеличиваем на 1. и ваши данные с АЦП превращаем

временная метка + данные ацп, то есть 14+8 = 22 бита, потом это передаете на компьютер то есть не 2 байта на отсчет а 3.

если все хорошо там будет

1 АДЦ_код
2 АДЦ код
....

в таком варианте ваши точки графика получают не только Y но и Х координату, и уже можно будет определеннее сказать у вас нарушение данных или их последовательности, может какие то пропускаются, а какие то принимаются слишком долго с паузами.... Если есть какое то синхронизирующее устройство, то времянную метку лучше брать с него, запустить на нем такой же счетчик и забирать каждую синхропосылку...

Смысл локализовать проблему, а потом уже решать ее, а не крутить кучу блоков, половину которых вы соединяете методом тыка (как у меня создается впечатление)

Go to the top of the page
 
+Quote Post
vitali36
сообщение Sep 16 2013, 18:26
Сообщение #22


Частый гость
**

Группа: Участник
Сообщений: 88
Регистрация: 2-07-13
Пользователь №: 77 354



Ацп Linear Technology LTC1407A-1 ADC. Я так же хочу сделать как в этом примере http://www.fpgadeveloper.com/2008/10/integ...peripheral.html , только вместо модуля умножителя мой модуль ацп. Фифо не отрывал ни откуда: xps сгенерил вместе с ddr2 похоже. Вот мой проект ( не microblaze ) . там все с комментариями.
Прикрепленные файлы
Прикрепленный файл  rx_tx_amp_adc_v3.rar ( 1.32 мегабайт ) Кол-во скачиваний: 14
 
Go to the top of the page
 
+Quote Post
Sergey_Bekrenyov
сообщение Sep 16 2013, 19:50
Сообщение #23


Местный
***

Группа: Свой
Сообщений: 323
Регистрация: 14-12-10
Из: Королёв
Пользователь №: 61 599



Цитата(vitali36 @ Sep 16 2013, 22:26) *
Ацп Linear Technology LTC1407A-1 ADC. Я так же хочу сделать как в этом примере http://www.fpgadeveloper.com/2008/10/integ...peripheral.html , только вместо модуля умножителя мой модуль ацп. Фифо не отрывал ни откуда: xps сгенерил вместе с ddr2 похоже. Вот мой проект ( не microblaze ) . там все с комментариями.


замените данные АЦП на счетчик - проверите стык uart и Ваш софт. И начните с 8 бит
Go to the top of the page
 
+Quote Post
vitali36
сообщение Sep 17 2013, 07:44
Сообщение #24


Частый гость
**

Группа: Участник
Сообщений: 88
Регистрация: 2-07-13
Пользователь №: 77 354



Ребят, ну выконечно разогнались)) В данный момент пока что задача состоит только в том, чтобы проверить то же самое(не меняя ничего в модклях, без добавления временных меток и т.д), только задействовав память. Посмотреть результат и уже от этого отталкиваться. Для этого я решил использовать microblaze. Создал проект microblaze, в sdk протестировал память и uart - работает. Следующий шаг - добавление модуля ацп. В этой статье(уже кидал ссылку) http://www.fpgadeveloper.com/2008/10/integ...peripheral.html показано добавление модуля на примере умножителя(два числа перемножаются, записываются в fifo, считываются и по uart передаются на комп). Вот я хочу сделать также, только вместо этого умнжителя мой модуль ацп.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Sep 17 2013, 10:39
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



хотите я кину пример где через езернет настраиваются драйверы шаговых двигателей, и вы попробуете свое АЦП вместо мотора воткнуть?..


У вас есть модуль сбора данных с ацп? он может полученные данные выдать на параллельную шину, и дернуть одной ножкой вверх-вниз?

Не может - допишите это дело 10 минут.

Дальше делаете так
микроблайз + уарт
дальше добавляете стандартную IPcore fifo

у него есть вход и выход, подаете данные АЦП на вход, и дергаете ножкой они сохраняются в ФИФО.

дальше это фифо вешаете на шину процессора, для того чтобы забрать данные надо будет просто прочитать из адресного пространства этого модуля и все.

дальше процессором в вечном цикле читаете данные из фифо и кладете в память, а потом читаете из памяти и кладете в уарт, и делаете что хотите...

но реально проблему решаете не с того конца.


я бы взял написал модуль что читает данные с ацп и пихает их в фифо. Для этого сделал бы фифо не на шину проца, а нативным, там есть такая галочка.

Обернул бы этот модуль в модуль что данные из фифо по запросу выдает на проц, это тоже делается через визард (создается шаблон модуля с регистровым доступом и чуть дописывается внутри)

дальше бы все это запустил и читал бы данные из фифо и слал бы их наверх, размер фифо может быть до полумегобайта (зависит от плис). Оттестировтаь тракт хватит. Но только реально никакая память не решит проблемы разности скорость приема и передачи, при условии бесконечности данных...
Go to the top of the page
 
+Quote Post
vitali36
сообщение Sep 17 2013, 11:00
Сообщение #26


Частый гость
**

Группа: Участник
Сообщений: 88
Регистрация: 2-07-13
Пользователь №: 77 354



Цитата
хотите я кину пример где через езернет настраиваются драйверы шаговых двигателей, и вы попробуете свое АЦП вместо мотора воткнуть?..

Т.е вместо uart попробовать спользовать ethernet и тогда память никакая не нужна?
Цитата
У вас есть модуль сбора данных с ацп? он может полученные данные выдать на параллельную шину, и дернуть одной ножкой вверх-вниз?

Модуль сбора данных с ацп есть. Выдать данные на параллельную шину - это можно организовать.
Цитата
Дальше делаете так
микроблайз + уарт
Микроблайз с uart есть. Сделал проект а xps. Там же ddr2 у меня(при создании проекта указывал).
Цитата
дальше добавляете стандартную IPcore fifo
Это каким образом добавить и где его взять?
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Sep 17 2013, 11:53
Сообщение #27


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата
Т.е вместо uart попробовать спользовать ethernet и тогда память никакая не нужна?

это был сарказм на тему что вы используете не те модули что вам надо, а те что у вас есть...


Вам надо понять так называемый workflow, перестать спешить, сделать 1 раз хорошо а не много раз плохо.

И так, вот как все делается:

1. в платформ студии делаете процессор микроблайз, добавляете уарт, память все что вам надо.

2. в платформ студии делаете шаблон нового модуля
-Hardware -> create or import ... -> create template for new....
задаете где положить модуль, даете ему имя и версию, выбираете тип шины к которой он подключится и так далее
в самом конце не забудьте попросить визард сделать ISE и XST проекты. не делайте сразу мастер, сделайте сначала слейв

3. открываете ISE в нем открываете только что сделанный проект вашего модуля.
в нем вы увидите какие то файлы, есть основной верхний файл, и в нем есть файл user.v(vhd) зависит от того верилог или вхдл вы попросите у визарда.

Это файл - ваша модуль, в нем есть кусок доступа к регистрам со стороны процессора, кусок чтения и записи.

4. теперь в ISE делаете добавить новый модуль, и там выбираете IP core, в выпавшем меню выбираете FIFO, просите сделать его нативным а не на шину (так проще с ним работать в вашем модуле)

5. можете добавить ваш модуль сбора данных с ацп, и собираете все во едино, ваша задача чтобы данные с АЦП попадали в ФИФО, а при запросе на чтение регистра процессором, туда пихались данные из ФИФО.

как диагностировать пустоту фифо придумывайте сами.

6. имплементируете проект в ISE и возвращаетесь в платформ студию

7. в платформ студии импортируете модуль
- hardware -> create or import ... -> import exist
выбираете ваш модуль, теперь в списке доступных модулей в разедел пользовательских (user) добавлен ваш модуль, перетаскиваете его и подключаете к процессору.

8. создаете процессор, и экспортите его в сдк

9. открываете сдк пишите программу.


это базовый поток, НАСТОЯТЕЛЬНО рекомендую по нему пройти, сделать простенький модуль, почитать пописать регистры, по получать данные.

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

также добавление IP core возможны и в платформ студии к процессору напрямую или к другим вашим модулям, среди них множество всяких полезностей: UART, SPI, Ethernert-mac, таймеры, порты ввода-вывода и куча куча куча всего
Go to the top of the page
 
+Quote Post
vitali36
сообщение Sep 17 2013, 12:30
Сообщение #28


Частый гость
**

Группа: Участник
Сообщений: 88
Регистрация: 2-07-13
Пользователь №: 77 354



Ладно, буду делать все по порядку, как ты сказал. Сгенерил проект в xps, открыл в ise, при добавлении fifo в ip core можно выбрать fifo generator v. 8.5 или 9.1. Но рядом колонки Axi4, axi4-stream, axi4 - lite. Мне не plb случаем нужно?
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Sep 17 2013, 13:21
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



если фифо к процу на прямую, то плб, если такого нет, то есть переходник.
Но для использования в вашем модуле внутри ISE надо натив фифо, оно вообще не на шину, у него параллельный выход - выход, клок, и строб разрешения чтения и записи...
Go to the top of the page
 
+Quote Post
vitali36
сообщение Sep 17 2013, 16:00
Сообщение #30


Частый гость
**

Группа: Участник
Сообщений: 88
Регистрация: 2-07-13
Пользователь №: 77 354



у меня ise не ниже 14. Толоко axi4 interface. Может другую ise скачать?
Go to the top of the page
 
+Quote Post

5 страниц V  < 1 2 3 4 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st June 2025 - 18:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.01938 секунд с 7
ELECTRONIX ©2004-2016