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

 
 
> Simulink. Генерация кода. SCI
SergQ
сообщение Feb 22 2012, 12:56
Сообщение #1





Группа: Участник
Сообщений: 12
Регистрация: 22-02-12
Пользователь №: 70 410



Подскажите, как настроить SCI для получения эха через DSP. Сейчас если сгенерить код и загрузить его в DSP, в SCI выводиться "ES " Светодиод на GPIO34 моргает нормально. Убрать недер и терминатор не получается - Симулинк ошибку выдает.

Сообщение отредактировал SergQ - Feb 22 2012, 12:58
Эскизы прикрепленных изображений
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  led.zip ( 86.29 килобайт ) Кол-во скачиваний: 16
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
evg123
сообщение Feb 23 2012, 06:21
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 353
Регистрация: 11-09-06
Из: Минск
Пользователь №: 20 282



Цитата(SergQ @ Feb 22 2012, 16:56) *
Подскажите, как настроить SCI для получения эха через DSP. Сейчас если сгенерить код и загрузить его в DSP, в SCI выводиться "ES " Светодиод на GPIO34 моргает нормально. Убрать недер и терминатор не получается - Симулинк ошибку выдает.

Вы начните так : поставьте дискретное время (например раз в сек.) и просто передавайте байт, слово или long int в блок "DSC transmit". Со стороны компьютера на терминале вы должны видеть раз в сек. поступающие байты данных. Если это отработает - идите дальше.
То что у вас сейчас нарисовано - работать не будет. 1)нужен нульмодем чтобы замкнуть выход на вход 2)чтобы что-то получить надо что-то отправить, а у вас - наоборот - вы пытаетесь отправить то, что ещё не получили.
Go to the top of the page
 
+Quote Post
SergQ
сообщение Feb 23 2012, 15:48
Сообщение #3





Группа: Участник
Сообщений: 12
Регистрация: 22-02-12
Пользователь №: 70 410



Цитата
Вы начните так : поставьте дискретное время (например раз в сек.)
и просто передавайте байт, слово или long int в блок "DSC transmit". Со стороны компьютера на терминале вы должны видеть раз в сек. поступающие байты данных. Если это отработает - идите дальше.


Спасибо за помощь. Получилось.


Цитата
То что у вас сейчас нарисовано - работать не будет. 1)нужен нульмодем чтобы замкнуть выход на вход 2)чтобы что-то получить надо что-то отправить, а у вас - наоборот - вы пытаетесь отправить то, что ещё не получили.


я хотел сделать так:
из терминала отправляю символ, он уходит в ДСП и возвращается в терминал, где я его и должен увидеть.

На С для AVR это выглядело бы примерно так:
#pragma vector = USART_RXC_vect
__interrupt void USART_RXC_Interrupt(void)
{
UartTxByte(UDR);
}

Но мы в Simulink-e... и надо ли прерывание?
Go to the top of the page
 
+Quote Post
evg123
сообщение Feb 24 2012, 14:04
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 353
Регистрация: 11-09-06
Из: Минск
Пользователь №: 20 282



Цитата(SergQ @ Feb 23 2012, 18:48) *
я хотел сделать так:...

Есть пример:
Simulink Help->Simulink Coder-> DEMOS->Embedded Targets->Texas Instruments C2000->HIL Verification of IIR Filter via SCI
Я так понимаю, вы у себя его можете опробовать.
Там будут ответы на 99% вопросов.

По поводу ассинхронного ввода - в принципе никаких проблем судя по документации.
1. Разрешаете прерывание в "SCI Receive",
2. настраиваете длину FIFO на котором сгенерируется прерывание.
3. Сам блок "SCI Receive" вводите внутрь блока "Function-Call Subsystem"
4. Вставляетет в модель блок "C280x/C28x3x Hardware Interrupt",
5. направляете его выход на блок "Function-Call Subsystem" (см.п.3)
6. Выход подсистемы "Function-Call Subsystem" "синхронизируете" (поскольку она ассинхронная) блоком "Rate Transition"
и далее обрабатываете полученные данные по обстоятельствам.

Так, скорее всего должно получиться, надо пробовать. Здесь только работает метод проб и ошибок.
Всегда смотрите на сгенерированный код.
Go to the top of the page
 
+Quote Post
SergQ
сообщение Feb 25 2012, 10:51
Сообщение #5





Группа: Участник
Сообщений: 12
Регистрация: 22-02-12
Пользователь №: 70 410



Большое спасибо, прерывание, вообщем, работает.

Не получилось:
1. синхронизация блоком "Rate Transition".
Поместил блок "SCI transmit" в "Function-Call Subsystem" - работает.
Не понятно, какой ставить параметр "Output port sample time"

2. в терминал прихлдят нечитаемые символы.Не понятно, как избавиться то хедеров и терминаторов,
если они мне не нужны.


И главное, как открыть полученный код в CCS4 и воспользоваться дебагером с брек-поинтами?
XDS100V1 это позволяет?
Создавать проект вручную и прилинковывать файлы? Может проще как-то?
Go to the top of the page
 
+Quote Post



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

 


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


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