Views: 790
В 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
//
Это может быть интересно
Проект с использованием MCC часть 13Views: 1232 Так как используя MCC мы можем его использовать со своими библиотеками, поэтому настало время и свое создать. Для начала откроем наш заголовочный файл в нем очень много букв: По …
Дисплей KD035C-3A подключение и управлениеViews: 847 Дисплей KD035C-3A производиться компанией SHENZHEN STARTEK ELECTRONIC TECHNOLOGY CO.,LTD Характеристики Параметр Спецификация Единицы измерения Размер дисплея 70.08(H)*52.56(V) (3.5inch) mm Тип дисплея TFT active matrix Цветовая гамма 65K/262K colors Разрешение …
LATINO – открытый проект ch-светомузыкиViews: 1740 Проект построенный на некоторых принципах ch-светомузыка. Проект ознакомительный предназначен, для самостоятельного построения простого и эффективного светосинтезатора. Вывод осуществляется на ВОУ собранной на драйверах HL1606. Для этого была …
LED модуль P10C4V12Views: 3316 LED панели на обычных регистрах типа 74HC595. Они выпускаются как монохромные так двух и полно цветные, особенность, что они предназначены для текстовой информации и имеют один уровень яркости. Общую яркость …
MCC – K42 – настройка модуля DMAViews: 987 MCC – в версии v.3.95.0 и начиная ядра 4.85.0 конфигуратор предоставляет графический интерфейс для настройки модуля DMA. Для начала: Посмотреть какая версия МСС можно в закладке версии, если …
Development board based on MCU PIC18F47Q84Views: 2774 PIC18F47Q84 Microcontroller Family with CAN Flexible Data Status: In Production.
Цифровой тахометр для автомобиля CH-С3300Views: 2057 Тахометр Ch-С3300 предназначен для индикации и контроля оборотов, времени работы и максимальных оборотов развиваемых двигателем во время поездки. Датчиком может использоваться как обычный контактный прерыватель или выход датчика …
Altium Designer my Libraries, Project templates, System settings by Catcatcat V23.04Views: 428 Смотри как установить и подключить библиотеку тут. V. – 23_04 – Component Database Update. – configuration file name – DXPPreferences1.DXPPrf. – Added two projects for audio amplifier …
Проект с использованием MCC часть 04Views: 1317 Теперь простого горения светиков нам не достаточно, заставим их мигать. Для начала используем первобытно простой способ, но достаточно простой. Используем функции delay, напрягаться откуда они берутся не будем, самое …
Индикатор температурыViews: 2833 Проект для начинающих, на демо плате BB-2T3D-01. Простой индикатор температуры. Проект никак не задумывался, просто на витрину магазин Ворон нужна была демонстрационная модель на макетной плате, чего нибудь работающего. Остановились на индикаторе …
