Views: 801
В 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
//
Это может быть интересно
APA102 – светодиоды со встроенным драйвером и SPI интерфейсомViews: 3603 APA102 В 2014 году фирма Shenzhen Led Color Optoelectronic Co., Ltd http://www.szledcolor.com/ начала производство светодиодов на драйвере APA102. Это серия так называемых светодиодов со встроенным драйвером. Основной особенностью этих …
REFERENCE CLOCK OUTPUT MODULEViews: 609 REFERENCE CLOCK OUTPUT MODULE Модуль формирования опорного тактового сигнала Модуль опорного тактового сигнала обеспечивает возможность посылать сигнал синхронизации на тактовый опорный выходной контакт или контакты (CLKR) в зависимости от …
Емкостной сенсорViews: 3246 Изучаем изготовление емкостных сенсоров на PIC-микроконтроллере. Конструкция емкостных сенсоров имеет вид: Емкостные сенсоры строятся по схеме высокочастотного генератора, сам принцип основан на измерение частоты этого генератора. Частота зависит …
Счетчики посетителейViews: 1310 Вас сосчитали!? или счетчики посетителей. Для чего нужны счетчики посетителей? Какие они бывают? ТОРГОВЛЯ. Подсчитайте, сколько ваш магазин посещает человек за день. Кок много человек приходит утром, какое …
NeoPixel LED and PIC24Views: 781 Популярность однопроводной шины для управления светодиода типа WS2812 не ослабевает, а новые типы светодиодов в корпусах 3,5*3,5мм, 2,0*2,0мм становяться все больше привлекательными. Построение дисплеев для анимации требуют все …
PIC32MZ – Core Timer (библиотека)Views: 589 Переработанные файлы от Microchip, библиотека для работы с Core Timer.
Датчик контроля протечки воды ch-c0020Views: 2123 Как здорово летом под теплым дождем с тобою вдвоем оказаться. Как классно по лужам бежать босиком, с тобою играть и смеяться! Но совсем грустно оказаться под таким дождем, который течет с …
LED драйвер TM1639Views: 2485 TМ1639 позволяет работать на матрицу 8*8 или 8 семисегметных индикаторов. Может работать как на индикаторы с общим катодом, но и есть возможность подключать общим анодом. Для управления драйвером …
Просто о структурах и объединениях в СиViews: 2391 Какие задачи нам позволяют решать структуры и объединения? Для разработчика встроенных систем эффективность и компактность кода всегда на первом месте. Если программировании на Ассемблере ты сам определяешь как …
Kitchen timer with contactless gesture controlViews: 817 Кухонний таймер з безконтактним керуванням жестами дозволяє встановити необхідний період часу для приготування страв, не торкаючись пристрою. Дуже зручно під час приготування їжі, коли руки забрудниться. Усі …
