Views: 799
В PIC32MX795F512H доступно 3 SPI это SPI2, SPI3, SPI4.
Настройка SPI модуля сводиться к следующим параметрам, например, для SPI2 для работы со светодиодами APA102, в этом варианте нам требуются только две линии линия данных и линия синхронизации.
Выключим модуль (если он был включен)
// SPI2CON=0; // выключить SPI //
Выберем тип буфера, 0 – обычный или 1-расширенный, в расширенном режиме в зависимости от того какой раз мер данных мы получаем разную глубину FIFO. Если размер данных 8 бит, то получаем 16 буферов, приема передачи в отделенности, 16 бит – 8 байт, если 32 бит – 4 байта в каждом буфере.
// SPI2CONbits.ENHBUF=1; // Расширенный буфер //
Настраиваем длину данных, в нашем случае 8 бит
// SPI2CONbits.MODE32=0; // 0 - 8-bit - 16 буферов //
Задаем режим работы модуля
// SPI2CONbits.MSTEN=1; // 1 = Master mode //
Задаем параметры шины синхронизации
// SPI2CONbits.CKP=1; // пассивный уровень шины CLOCK высокий SPI2CONbits.CKE=0; // данные передаются от активного к пассивному уровню пассивного к активному уровню //
Задаем тактовую частоту шины
// SPI2BRG = 15; // 2,5MHz для 80 MHz //
Включаем модуль в работу
// SPI2CONbits.ON=1; // Включить модуль //
В общем виде
// настройка SPI
SPI2CON=0; // выключить SPI
SPI2CONbits.ENHBUF=1; // Расширенный буфер
SPI2CONbits.MODE32=0; // 0 - 8-bit - 16 буферов
SPI2CONbits.MSTEN=1; // 1 = Master mode
SPI2CONbits.CKP=1; // пассивный уровень шины CLOCK высокий
SPI2CONbits.CKE=0; // данные передаются от активного к пассивному уровню пассивного к активному уровню
SPI2BRG = 15; // 2,5MHz для 80 MHz
SPI2CONbits.ON=1; // Включить модуль
//
Если необходимо работать с прерывания можно настроить
//
SPI2CONbits.STXISEL=0b00; //
IFS1bits.SPI2TXIF = 0; // сбросить флаг прерывания TX
IEC1bits.SPI2TXIE = 1; // разрешить прерывания от TX
IPC7bits.SPI2IP = 3; // приоритет 3
IPC7bits.SPI2IS = 0; // субприоритет уровень 0
//
Это может быть интересно
Development board based on MCU PIC18F47Q84Views: 2804 PIC18F47Q84 Microcontroller Family with CAN Flexible Data Status: In Production.
Проект с использованием MCC часть 11Views: 1030 Можно несколько облагородить программу вынести наши процедуры обработки нажатия кнопок в отдельные функции. Но вы должны понимать, что это хоть и не значительно, но будет тормозить общую скорость …
MCC PIC24 – модуль OUTPUT COMPARE – режиме ШИМViews: 1308 Во многих системах управления, для формирования управляющих сигналов требуется модуль ШИМ, он позволяет не только формировать импульсы заданной длительности, но и с применением обычного RC фильтра строить простые …
Гаджеты для домашней автоматики – Датчик приближенияViews: 2209 Управление светодиодным освещением – Датчик приближения. Данный гаджет предназначен для управления внутренним освещением мебели. Датчик позволяет определить закрытие или открытие дверцы или ящика и при этом включать или …
REFERENCE CLOCK OUTPUT MODULEViews: 609 REFERENCE CLOCK OUTPUT MODULE Модуль формирования опорного тактового сигнала Модуль опорного тактового сигнала обеспечивает возможность посылать сигнал синхронизации на тактовый опорный выходной контакт или контакты (CLKR) в зависимости от …
LED модуль P10C4V12Views: 3324 LED панели на обычных регистрах типа 74HC595. Они выпускаются как монохромные так двух и полно цветные, особенность, что они предназначены для текстовой информации и имеют один уровень яркости. Общую яркость …
MCC PIC24 – модуль OUTPUT COMPARE – в режиме генератора звуковых сигналовViews: 844 При проектировании простых устройств автоматики, часто необходимо иметь механизм звукового оповещения. Самый верхний уровень, это формирование голосовых сообщений, но об этом, как то по позже… В самом примитивном …
Pogo Pin Connector LibViews: 36 У своїх проектах почав застосовувати з’єднувачі та контакти типу Pogo Pin. Для цього до своєї існуючої БД додав нову бібліотеку. Огляд від ІІ Pogo Pin (погопін) – це …
Проект с использованием MCC часть 15Views: 1772 EUSART – Универсальный асинхронный приёмопередатчик (УАПП, англ. Universal Asynchronous Receiver-Transmitter, UART) — узел вычислительных устройств, предназначенный для организации связи с другими цифровыми устройствами. … читать на вики. Внесем изменения в нашу схему, …
ESP8266 процедура получение данных даты и времени от серверов точного времени.Views: 6271 Эта функция доступна уже в версии 1.6.1. Для многих приложений, необходимо часы реального времени, если в вашем проекте есть модуль WiFI ESP8266, то легко можно сделать следующим образом. …
