Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Настройка отправки сообщения




1) Создание нового проекта.

1.1) В Code Composer Studio создать новый проект Lab9.pjt. Открыть файл Lab9.c и сохранить его в E:\C281x\Labs\Lab9\lab9.c.

1.2) Добавить в проект файлы:

C:\tidcs\c28\dsp281x\v100\DSP281x_headers\source\DSP281x_GlobalVariableDefs.c

C:\tidcs\c28\dsp281x\v100\DSP281x_common\source\DSP281x_PieCtrl.c

C:\tidcs\c28\dsp281x\v100\DSP281x_common\source\ DSP281x_PieVect.c

C:\tidcs\c28\dsp281x\v100\DSP281x_common\source\DSP281x_DefaultIsr.c

C:\tidcs\c28\dsp281x\v100\DSP281x_common\source\DSP281x_CpuTimers.c

C:\tidcs\c28\dsp281x\v100\DSP281x_headers\cmd\F2812_Headers_nonBIOS.cmd

C:\tidcs\c28\dsp281x\v100\DSP281x_common\cmd\F2812_EzDSP_RAM_lnk.cmd

C:\ti\c2000\cgtoolslib\ rts2800_ml.lib

2) Настройка параметров проекта, компоновка проекта и загрузка выходного файла.

2.1) Включить в проект заголовочные файлы: Project → Build Options, в закладке Compiler выбрать Preprocessor и в поле Include Search Path (-i) ввести:

C:\tidcs\C28\dsp281x\v100\DSP281x_headers\include;..\include

2.2) Задать глубину стека: Project → Build Options → Linker → Stack Size: 0x400.

2.3) Закрыть Build Options, кликнув OK.

3) Преобразование файла Lab9.c.

3.1) Настроить в основной программе цикл while() таким образом, чтобы каждая отправка осуществлялась через 1 секунду. Сделать прерывание «CPU core timer 0» через каждые 50 мс для увеличения значения “CpuTimer0.InterruptCount”.

3.2) Создать новую структуру в основной программе “ECanaShadow”:

struct ECAN_REGS ECanaShadow;

3.3) В подпрограмме «Gpio_select()» настроить периферийные функции CANTxA и CANRxA для работы с CAN-модулем:

GpioMuxRegs.GPFMUX.bit.CANTXA_GPIOF6 = 1;

GpioMuxRegs.GPFMUX.bit.CANRXA_GPIOF7 = 1;

3.4) В конце кода программы создать подпрограмму InitCan(), с помощью которой осуществить следующие шаги:

3.4.1) В регистрах “ECanaRegs.CANTIOC” и “ECanaRegs.CANRIOC” установить биты “TXFUNC” и “RXFUNC”.

3.4.2) Включить режим HECC модуля CAN (регистр “ECanaRegs.CANMC”).

3.4.3) Для получения доступа к регистрам времени установить бит “CCR” регистра “ECanaRegs.CANMC”.

3.4.4) Для передачи запроса инициализации CAN установить флаг “CCE” регистра “ECanaRegs.CANES”.

3.4.5) Установить параметры “BRP”, “TSEG1” и “TSEG2” регистра “ECanaRegs.CANBTC” таким образом, чтобы скорость передачи была 100 кбит/с.

3.4.6) После установки параметров регистра “ECanaRegs.CANBTC” запретить к нему доступ - очистить бит CCR регистра “ECanaRegs.CANMC”.

3.4.7) Отключить все mailboxes, кроме того, который отправляет сообщение, установкой в 0 полей регистра “ECanaRegs.CANME”.

3.5) Для подготовки mailbox#5 к отправке сообщения сделать следующее:

3.5.1) Установить идентификатор сообщения 0x10000000 (бит “IDE” регистра “EcanaMboxes.MBOX5.MSGID”). Также установить бит IDE регистра “EcanaMboxes.MBOX1.MSGID” в 1.

3.5.2) Для установления mailbox#5 передающим, сбросить бит “MD5” регистра “ECanaRegs.CANMD”. Так как мы не имеем доступа к регистру “ECanaRegs.CANMD”, то сделать это следующим образом:

ECanaShadow.CANMD.all = ECanaRegs.CANMD.all;

ECanaShadow.CANMD.bit.MD5 = 0;

ECanaRegs.CANMD.all = ECanaShadow.CANMD.all;

Активировать mailbox#5:

ECanaShadow.CANME.all = ECanaRegs.CANME.all;

ECanaShadow.CANME.bit.ME5 = 1;

ECanaRegs.CANME.all = ECanaShadow.CANME.all;

3.8.3) Установить длину сообщения равной 1 (бит DLC регистра “ECanaMboxes.MBOX5.MSGCTRL”).

4) Присоединение байта данных и отправка.

Теперь надо организовать периодическую загрузку байта данных в mailbox и отправку с помощью цикла while(1). Для этого:

4.1) Из входных портов GPIO-Port B (с 15 по 8 бит) загрузить байт данных в регистр “ECanaMboxes.MBOX5.MDL.byte.BYTE0”.

4.2) Послать запрос передачи mailbox#5. Для этого в регистре “ECanaShadow.CANTRS” установить бит TRS5=1, а все остальные 0. Затем загрузить все это в регистр “ECanaRegs.CANTRS”.

4.3) Как только придет запрос на отправку сообщения, флаг “ECanaRegs.CANTA.bit.TA5” будет установлен в 1.

4.4)Установить бит “ECanaRegs.CANTA.bit.TA5” в исходное состояние:

ECanaShadow.CANTA.all = 0;

ECanaShadow.CANTA.bit.TA5 = 1;

ECanaRegs.CANTA.all = ECanaShadow.CANTA.all;

5) Тестирование программы.

5.1) Сбросить ЦСП: Debug → Reset CPU, Debug → Restart.

5.2) Перейти к главной подпрограмме: Debug → Go main.

5.3) Запустить программу: Debug → Run.

 





Поделиться с друзьями:


Дата добавления: 2017-02-24; Мы поможем в написании ваших работ!; просмотров: 278 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Велико ли, мало ли дело, его надо делать. © Неизвестно
==> читать все изречения...

2466 - | 2142 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.