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
//
Это может быть интересно
NS108-5050-16bit от NewstarViews: 699 Кто уже использует в своих проектах адресуемые светодиоды хорошо знакомы с такими как WS2812 и им подобные. Эти светодиоды для управления используют однопроводную шину. Из-за этого пропускная способность …
AD9833 – Programmable Waveform Generator – part twoViews: 1937 Прошло время и появилась тема, что-бы закончить проект AD9833 – Programmable Waveform Generator. Приехали печатные платы. В этот раз я печатные платы заказывал в https://jlcpcb.com/ делал это в …
Altium Designer my setup system and project structureViews: 1059 Используйте только последнее обновление!!! Updates https://catcatcat.d-lan.dp.ua/altium-designer-my-libraries-project-templates-system-settings-by-catcatcat-v23-09/ Тут хочу поделиться как я настраиваю Altium Designer и как я использую файлы DXPPreferences.DXPPrf для быстрой конфигурации и получения …
VU Meter Tower ARTViews: 1750 Стерео индикатор уровня аудио сигнала. Компактность и удобство проектирования устройств на светодиодах WS2812B, а также легкость реализации алгоритма родило идею созданию своей конструкции. В этом проекте я предоставлю …
Проект с использованием MCC часть 08Views: 1272 И так создадим проект в котором при помощи двух кнопок мы сможем управлять яркостью светодиодов. При использовании МСС у нас лафа полная, добрые дяди с Microchipa подготовили функции, …
Гаджеты для домашней автоматики – Датчик приближенияViews: 2175 Управление светодиодным освещением – Датчик приближения. Данный гаджет предназначен для управления внутренним освещением мебели. Датчик позволяет определить закрытие или открытие дверцы или ящика и при этом включать или …
PIC18 – модуль DMAViews: 1361 Введение Модуль прямого доступа к памяти (DMA) предназначен для обслуживания передачи данных непосредственно между различными областями памяти без вмешательства процессора. Исключив при этом необходимость в интенсивной обработки …
Arduino LCD + STONE STVI056WT-01 + Strain gaugeViews: 648 Author li grey email: greyli1987@outlook.com The strain assessment instrument is used to assess the degree of corresponding muscle strain by obtaining the muscle surface action potential through silver …
I2C MODULE – PIC18F25K42 Device ID Revision = A001Views: 1205 I2C MODULE Обход ошибок в версии I2C MODULE – PIC18F25K42 Device ID Revision = A001 В Серии K42 применен совершенно новый модуль шины I2C, который позволяет поддерживать все …
Analog-to-Digital Converter with Computation Technical BriefViews: 1476 Аналого-цифровой преобразователь с вычислительным модулем. ВВЕДЕНИЕ Аналого-цифровой преобразователь (ADC) с вычислительным модулем (ADC2) в 8-разрядном микроконтроллере Microchip имеет встроенные вычислительные функции, которые обеспечивают функции пост-обработки, такие как передискретизация, …
