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

 
 
 
Reply to this topicStart new topic
> Передача данных PIC->MAXII по SPI
Feo
сообщение Jul 26 2014, 08:38
Сообщение #1





Группа: Новичок
Сообщений: 2
Регистрация: 26-07-14
Пользователь №: 82 371



С МК я передаю данные в плис по SPI. На данный момент передается 5 байт.
Каждый байт - это значения заполнения 4 каналов ШИМ + 1 байт значение угла поворота шаговика.
Задача организовать передачу не 4 а 10-15 байт, организовать как минимум 10 независимых каналов шим в плис.

Но вот загвоздка: стоит мне убрать строку из главного модуля проекта
output wire [39:0]byte_data_received
как мои шим перестают генерироваться и шаговик перестает двигаться, но пакеты по SPI приходят от МК исправно (проверил анализатором).
Господа подскажите в чем может быть ошибка?


Прикрепленные файлы
Прикрепленный файл  77.rar ( 529.73 килобайт ) Кол-во скачиваний: 25
 
Go to the top of the page
 
+Quote Post
iosifk
сообщение Jul 26 2014, 09:39
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Feo @ Jul 26 2014, 12:38) *
С МК я передаю данные в плис по SPI. На данный момент передается 5 байт.
Каждый байт - это значения заполнения 4 каналов ШИМ + 1 байт значение угла поворота шаговика.
Задача организовать передачу не 4 а 10-15 байт, организовать как минимум 10 независимых каналов шим в плис.

Но вот загвоздка: стоит мне убрать строку из главного модуля проекта
output wire [39:0]byte_data_received
как мои шим перестают генерироваться и шаговик перестает двигаться, но пакеты по SPI приходят от МК исправно (проверил анализатором).
Господа подскажите в чем может быть ошибка?

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


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Feo
сообщение Nov 11 2014, 12:01
Сообщение #3





Группа: Новичок
Сообщений: 2
Регистрация: 26-07-14
Пользователь №: 82 371



В процессе разработки программа принимает данные от МК по SPI, после в плис эти данные разбираются, обрабатываются и ПЛИС должен вернуть данные с датчика в МК в виде 5 байт.
Работа с датчиком описана в модуле Humidity, в данном модуле в регистр HYM побитно набираются данные. После завершения приема данных от датчика переводим данные в регистр HYM2. HYM2 передаем в модуль SPI. Далее, пока передача по SPI не активна, заносим данные в HYM_send. Который уже в процессе обмена по SPI возвращается в МК.

Проблема в том, что если помещаю в HYM2 константу - все работает идеально, процесс передачи мониторю ТТЛ-анализатором. Т.е. и ТТЛ и мк принимают все идеально верно.
Код
HYM2<=40'b1111010101010101010101010101010101010101;


Если отсылаю значение регистра, то приходят только первые 2 байта, хотя ТТЛ-анализатор исправно видит все байты, как и в первом случае.
Код
else if (FSDR_fallingedge==1 & id_gorb!=1 & shet>30 & shet<75)
begin
HYM <= {HYM[38:0], 1'b1}; //заносим 1
shet<=0;
end else if (FSDR_fallingedge==1 & id_gorb!=1 & shet>10 & shet<35)
begin
HYM <= {HYM[38:0], 1'b0}; //заносим 0
shet<=0;
end else if (shet>100) begin
shet<=0;
mstate<=3; //стейт в ожидание новой передачи
HYM2<=HYM;//40'b1111010101010101010101010101010101010101;
end



Прикрепленные файлы
Прикрепленный файл  Humidity.v ( 4.74 килобайт ) Кол-во скачиваний: 8
Прикрепленный файл  spi_slave.v ( 2.18 килобайт ) Кол-во скачиваний: 8
 
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 26th July 2025 - 00:11
Рейтинг@Mail.ru


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