-
xakez
-
Автор темы
-
Не в сети
-
Новый участник
-
-
Сообщений: 11
-
Спасибо получено: 0
-
-
-
-
-
|
Chaosorg пишет: Посмотрел я плату, которая к Вам приехала :) Вроде вот эта www.altera.com/products/boards_and_kits/...ne-v-gx-starter.html
Ну что ж - это следующая ступень в плане потенциальных возможностей относительно Marsahod 3 и тем более 2
Понимание Ваших целей снизилось:( Зачем для такой FPGA "помощник" в лице STM32? Хочется понять, какого типа софт Вы "крутите" на STM32 - это просто "микроконтроллерный" C/C++ без ОС или RTOS или что? Т.е. согласитесь, что одно дело сделать что-то типа технодемо, совместимое только само с собой, а другое дело сделать способную на подмножество OpenGL видеокарту с драйвером под какую-то ось, ну или хотя бы под какую-то библиотеку, вернее какое-то где-то еще используемое API
И еще. Вы планируете один экземпляр устройства или тираж с BGA корпусом?
Плата эта:)
STM нужен сейчас для уменьшения количества кода для разработки сейчас)
На стмке "своя ось", выполняющая сугубо узкие цели - общение с авто и окружающими ее девайсами типа Bluetooth.
Мы планируем мелкосерийное производство. Если интересно - стучитесь скайп - xakkez - в кратце расскажу, ну а если сработаемся - расскажу в подробностях:)
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Chaosorg
-
-
Не в сети
-
Завсегдатай
-
-
Сообщений: 312
-
Спасибо получено: 18
-
-
-
|
xakez пишет:
Chaosorg пишет: Посмотрел я плату, которая к Вам приехала :) Вроде вот эта www.altera.com/products/boards_and_kits/...ne-v-gx-starter.html
Ну что ж - это следующая ступень в плане потенциальных возможностей относительно Marsohod 3 и тем более 2
Понимание Ваших целей снизилось:( Зачем для такой FPGA "помощник" в лице STM32? Хочется понять, какого типа софт Вы "крутите" на STM32 - это просто "микроконтроллерный" C/C++ без ОС или RTOS или что? Т.е. согласитесь, что одно дело сделать что-то типа технодемо, совместимое только само с собой, а другое дело сделать способную на подмножество OpenGL видеокарту с драйвером под какую-то ось, ну или хотя бы под какую-то библиотеку, вернее какое-то где-то еще используемое API
И еще. Вы планируете один экземпляр устройства или тираж с BGA корпусом?
Плата эта:)
STM нужен сейчас для уменьшения количества кода для разработки сейчас)
На стмке "своя ось", выполняющая сугубо узкие цели - общение с авто и окружающими ее девайсами типа Bluetooth.
Мы планируем мелкосерийное производство. Если интересно - стучитесь скайп - xakkez - в кратце расскажу, ну а если сработаемся - расскажу в подробностях:)
Ну... будет с чем постучаться - постучусь :) Конечно, интересно, но ведь не одному мне. Что, кроме рекрутинга, останется от этой темы на этом форуме? Я поэтому именно здесь, а не в привате, попытаюсь еще задать сугубо технические вопросы о проекте:
1. Разве это хорошо - BGA в автомобиле? Ведь перепады температур и вибрации же... Или BGA просто потому, что понравилась отладочная плата "на вырост", а на самом деле проект должен помещаться в FPGA с планарным корпусом и обладателям Марсоход 2/3 это может быть тоже интересно?
2. Вы говорили, что "написали ... свою графическую либу" - API сугубо свое?
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
xakez
-
Автор темы
-
Не в сети
-
Новый участник
-
-
Сообщений: 11
-
Спасибо получено: 0
-
-
-
-
-
|
Chaosorg пишет:
Ну... будет с чем постучаться - постучусь :) Конечно, интересно, но ведь не одному мне. Что, кроме рекрутинга, останется от этой темы на этом форуме? Я поэтому именно здесь, а не в привате, попытаюсь еще задать сугубо технические вопросы о проекте:
1. Разве это хорошо - BGA в автомобиле? Ведь перепады температур и вибрации же... Или BGA просто потому, что понравилась отладочная плата "на вырост", а на самом деле проект должен помещаться в FPGA с планарным корпусом и обладателям Марсоход 2/3 это может быть тоже интересно?
2. Вы говорили, что "написали ... свою графическую либу" - API сугубо свое?
1. BGA потому что понравилась плата. По сути, после завершения стадии программирования от платы остается только FPGA и то, скорее всего не этот а FPGA, а тот в который проект влезает. Обвязка, память и т.п. разводятся уже на новой плате.
2. Ну это уже совсем другая история, не связанная с ПЛИСом) Если кратко, то это некий "велосипед", который на вход принимает пачку параметров: x,y, ширина, высота, тип элемента, в зависимости от типа элемента - указатель на структуру с настройками для конкретного элемента. Выделяет память и следит за ее переполнением. Далее есть методы для перерисовки элементов, которые регистрируют области перерисовки. Есть процесс смешивания, который смешивает только измененную часть окна. Ну и процесс, который меняет буффер если нужно раз в 30мс. Наверное да - сугубо свое.
оффтоп: там есть некое подобие событийной модели, правда в XML пока не вложено. А так, из кода можно взять "контрол" и "подписаться" на его OnMouseDown :)
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
xakez
-
Автор темы
-
Не в сети
-
Новый участник
-
-
Сообщений: 11
-
Спасибо получено: 0
-
-
-
-
-
|
Новые вводные, научились использовать LPDDR2 - пока что тупо в один такт пишем в нее - в другой читаем - данные корректные.
"исследование" затрудняется достаточно долгой компиляцией)
Используем альтеровский lpddr2 модуль. На вход 50Mhz резонатор. Соответственно модуль верхнего уровня "соединяет провода" как надо, а данные гоняются по шине:
.avl_read_req_0(ddr_req == 2'b01), // .read
.avl_write_req_0(ddr_req == 2'b10), // .write
.avl_ready_0(avl_ready), //здесь следим за "завершением" чтения и/или записи
.avl_rdata_0(readData), // wire [31:0] .readdata
.avl_wdata_0(writeData), // reg [31:0]
Ну и код примерно такой: always @(posedge CLOCK_50_B5B)
begin
if (avl_ready)
передаем или получаем
else
ddr_req =2'b00;
Что я упустил?)
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
-
Chaosorg
-
-
Не в сети
-
Завсегдатай
-
-
Сообщений: 312
-
Спасибо получено: 18
-
-
-
|
xakez пишет: Новые вводные, научились использовать LPDDR2 - пока что тупо в один такт пишем в нее - в другой читаем - данные корректные.
"исследование" затрудняется достаточно долгой компиляцией)
Используем альтеровский lpddr2 модуль. На вход 50Mhz резонатор. Соответственно модуль верхнего уровня "соединяет провода" как надо, а данные гоняются по шине:
.avl_read_req_0(ddr_req == 2'b01), // .read
.avl_write_req_0(ddr_req == 2'b10), // .write
.avl_ready_0(avl_ready), //здесь следим за "завершением" чтения и/или записи
.avl_rdata_0(readData), // wire [31:0] .readdata
.avl_wdata_0(writeData), // reg [31:0]
Ну и код примерно такой:always @(posedge CLOCK_50_B5B)
begin
if (avl_ready)
передаем или получаем
else
ddr_req =2'b00;
Что я упустил?)
Ну тут не весь же код...
Неготовность модуля может быть вызвана Вашим же запросом на чтение, например. Т.е. Вы подадите ему адрес откуда хотите прочесть, ему понадобится время на извлечение информации и он снимет сигнал готовности, в каком-то такте Вам информацию выставит... Где Ваш код помнит о том, что он хочет сделать - попросить что-то еще или получить ответ на предыдущий вопрос? "Передаем" и "получаем" не обязательно одноактные команды, особенно "получаем"
перечитал Ваше сообщение еще раз - похоже, что вся многотактная последовательность чтения/записи "спрятана" в альтеровском модуле. Тогда проблем не вижу.
P.S.
Вы бы почитали и позаписывали бы все-таки по разным адресам разные данные для теста. Произвольное чтение не может быть в один такт, на сколько мне известно:)
|
|
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
|
Время создания страницы: 0.102 секунд