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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> MAX10 чтение/запись в UFM есть проблема., неправильный порядок байт при чтении
wolfman
сообщение Dec 15 2017, 06:53
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 525
Регистрация: 15-06-05
Из: Питер
Пользователь №: 6 032



Здравствуйте.

Использую Макс 10-ый, возникла идея вместо внешней флешки использовать UFM Макса. Подцепил корку в QSYS, загрузил Mif-файл,все вроде бы читается, но есть нюанс. Порядок байт не такой как в MIf-файле.

Т.е. в Mif- по нулевому адресу лежат такие данные: 0x1D05DE20, а читается из UFM 0x201d05de. Сначала подумал что проблема в отображении, т.к. читаю через i2c, начал вычитывать побайтно, таже хрень, в нулевом адресе сидит не "1D" или "20", как можно было бы ожидать, а "DE", "1D" сидит по 2-му адресу.

Смотрел в сигналтапе, адреса выставляются верно, а данные с таким вот смещением. В чём может быть дело?


--------------------
Россия это даже не страна.
Россия это секрет, завернутый в загадку и укрытый не проницаемой тайной...
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Dec 18 2017, 13:04
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 529
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Было бы здорово, если бы вы описали систему чуть боле подробно. Какие в ней компоненты, как взаимодействуют, чем тактируются (с какой частотой).
Go to the top of the page
 
+Quote Post
wolfman
сообщение Dec 18 2017, 20:10
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 525
Регистрация: 15-06-05
Из: Питер
Пользователь №: 6 032



Цитата(DmitryR @ Dec 18 2017, 23:34) *
Было бы здорово, если бы вы описали систему чуть боле подробно. Какие в ней компоненты, как взаимодействуют, чем тактируются (с какой частотой).

Система, в общем-то простая: доступ внешнего CPU к регистрам внутри Макса(чтение состояний, статистики, управление светодиодами, вентиляторами и прочее, ничего сверхъестественного). Модули практически все самописные, есть несколько модулей памяти, они штатные альтеровские. Всё подключено на шину Авалон-ММ, частота 50 МГц, данные 8 бит, адрес 16 бит. Доступ к регистрам на шине Авалон, через I2C: с одной стороны I2C слейв, с другой Авалон-ММ мастер.

Модуль I2C проверен и работает в примерно таком же проекте.

В Сигналтапе вижу, что данные с UFM выходят правильно, а вот в модуль I2C приходят в другом порядке. Возможно QSYS при согласовании разрядностей шин что-то перемудрил...

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

UPD: сделал обычную RAM, пишется/читается нормально.


--------------------
Россия это даже не страна.
Россия это секрет, завернутый в загадку и укрытый не проницаемой тайной...
Go to the top of the page
 
+Quote Post
dvladim
сообщение Dec 19 2017, 19:46
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 652
Регистрация: 24-01-07
Из: Воронеж
Пользователь №: 24 737



А вот так вот с наскока: не может ли это быть проблемой big/little endian вместе с разной разрядностью шин Avalon и UFM?
Go to the top of the page
 
+Quote Post
wolfman
сообщение Dec 20 2017, 12:01
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 525
Регистрация: 15-06-05
Из: Питер
Пользователь №: 6 032



Цитата(dvladim @ Dec 20 2017, 06:16) *
А вот так вот с наскока: не может ли это быть проблемой big/little endian вместе с разной разрядностью шин Avalon и UFM?


Я и так и так вертел, результат тот же.


--------------------
Россия это даже не страна.
Россия это секрет, завернутый в загадку и укрытый не проницаемой тайной...
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Dec 20 2017, 12:44
Сообщение #6


Гуру
******

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



Вы пишите по одному интерфейсу, а читаете по другому?
Есть возможность записать и считать по одному и тому же?
Может в угоду какой-то оптимизации линии данных переставлены.
Go to the top of the page
 
+Quote Post
wolfman
сообщение Dec 21 2017, 17:57
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 525
Регистрация: 15-06-05
Из: Питер
Пользователь №: 6 032



Нет пишу и читаю по одному интерфейсу.

В UFM писать не получается, пока только читаю.


--------------------
Россия это даже не страна.
Россия это секрет, завернутый в загадку и укрытый не проницаемой тайной...
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Dec 22 2017, 08:54
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 529
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(wolfman @ Dec 18 2017, 23:10) *
В Сигналтапе вижу, что данные с UFM выходят правильно, а вот в модуль I2C приходят в другом порядке.

Возможно вы младшие биты адреса меняете не вовремя.
Go to the top of the page
 
+Quote Post
wolfman
сообщение Dec 23 2017, 21:10
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 525
Регистрация: 15-06-05
Из: Питер
Пользователь №: 6 032



Цитата(DmitryR @ Dec 22 2017, 19:24) *
Возможно вы младшие биты адреса меняете не вовремя.

Думал об этом, но тогда разве не должно все съехать?
А тут байты переставлены внутри двойного слова.


--------------------
Россия это даже не страна.
Россия это секрет, завернутый в загадку и укрытый не проницаемой тайной...
Go to the top of the page
 
+Quote Post
wolfman
сообщение Dec 25 2017, 11:51
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 525
Регистрация: 15-06-05
Из: Питер
Пользователь №: 6 032



DmitryR
Похоже вы были правы и проблема была с адресами. Немного задержал биты адреса и сигнал чтения. Всё читается правильно.

Но запись пока не удается.


--------------------
Россия это даже не страна.
Россия это секрет, завернутый в загадку и укрытый не проницаемой тайной...
Go to the top of the page
 
+Quote Post
wolfman
сообщение Dec 28 2017, 10:32
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 525
Регистрация: 15-06-05
Из: Питер
Пользователь №: 6 032



Все заработало.


--------------------
Россия это даже не страна.
Россия это секрет, завернутый в загадку и укрытый не проницаемой тайной...
Go to the top of the page
 
+Quote Post
wolfman
сообщение Jan 10 2018, 13:22
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 525
Регистрация: 15-06-05
Из: Питер
Пользователь №: 6 032



Дабы не создавать новую тему.

Возник вопрос: необходимо стирать только страницу, а не сектор целиком, по мануалу Альтеры/Интела, получается стирать только сектор.

Может кто-то работал со страницами в UFM?


--------------------
Россия это даже не страна.
Россия это секрет, завернутый в загадку и укрытый не проницаемой тайной...
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Jan 11 2018, 11:51
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 529
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Я честно говоря даже мануал не читал, а просто пристегнул библиотечные функции. Они работают.
Go to the top of the page
 
+Quote Post
wolfman
сообщение Jan 13 2018, 10:46
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 525
Регистрация: 15-06-05
Из: Питер
Пользователь №: 6 032



Цитата(DmitryR @ Jan 11 2018, 21:21) *
Я честно говоря даже мануал не читал, а просто пристегнул библиотечные функции. Они работают.

Хм, что значит: подключил библиотечные функции?

Я подключил корку в qsys, работаю через стандартные Линуксовые функции(i2cget/i2cset). Доступ к регистрам и UFM через i2c.


--------------------
Россия это даже не страна.
Россия это секрет, завернутый в загадку и укрытый не проницаемой тайной...
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Jan 16 2018, 14:43
Сообщение #15


Профессионал
*****

Группа: Свой
Сообщений: 1 529
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



У меня там NIOS, и к нему есть библиотеки. Если вы хотите сделать иначе - то думаю, что самым быстрым способом будет изучить код этих библиотек. Там не очень много.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd July 2018 - 13:15
Рейтинг@Mail.ru


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