PIC32 – SPI

Views: 799


В PIC32MX795F512H доступно 3 SPI это SPI2, SPI3, SPI4.

Cat_SPI_01схема в PDF 

Значок

PIC32 – SPI - схема подключения 45.28 KB 288 downloads

PIC32 – SPI - схема ...

Настройка 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
//


Это может быть интересно


  • ESP8266  процедура получение данных даты и времени от серверов точного времени.ESP8266 процедура получение данных даты и времени от серверов точного времени.
    Views: 6264 Эта функция доступна уже в версии 1.6.1. Для многих приложений, необходимо часы реального времени,  если в вашем проекте есть модуль WiFI ESP8266, то легко можно сделать следующим образом. …
  • DS18B20 – удаленный контроль температурыDS18B20 – удаленный контроль температуры
    Views: 3248 Контроль температуры с использованием датчиков температуры DS18B20 и платы ILLISSI-4B-09-primum Проект позволяет подключать к плате ILLISSI-4B-09-primum до 16 датчиков температуры DS18B20, удаленных более 300 метров,  и выводить информацию …
  • Flight controller for FPV drone.Flight controller for FPV drone.
    Views: 50 Reverse engineering of a flight controller (SpeedyBee F405 V4 55A 30×30 Stack). Мене зацікавила конструкція основних компонентів FPV-дрона. Першим варіантом, який я розглянув, був контролер польоту від китайської …
  • Проект с использованием MCC часть 13Проект с использованием MCC часть 13
    Views: 1252 Так как используя MCC мы можем его использовать со своими библиотеками, поэтому настало время и свое создать. Для начала откроем наш заголовочный файл в нем очень много букв: По …
  • Униполярный шаговый двигательУниполярный шаговый двигатель
    Views: 2479     В приводах различных устройств часто применяются шаговые двигатели, Шаговый двигатели различают двух типов униполярные – когда обмотки коммутируются током текущим только в одну сторону, например при …
  • ch-светомузыка и AK4113ch-светомузыка и AK4113
    Views: 1524 Пришло время вернуться к светомузыке. На сегодня использование аналогового входа стало непрактичным, на сегодня необходимо использовать S/PDIF и Toslink. С этим надо было как то разобрать, что это …
  • PIC32MZ – Core Timer (библиотека)PIC32MZ – Core Timer (библиотека)
    Views: 588 Переработанные файлы от Microchip, библиотека для работы с Core Timer.
  • HVLD модуль на примере PIC24FJ128GA204HVLD модуль на примере PIC24FJ128GA204
    Views: 858 HVLD модуль представляет собой простое устройство, для контроля напряжения питания микроконтроллера или внешнего напряжения (через делитель). Его задача при “выходе” напряжения за заданные пределы сформировать сообщение микроконтроллеру, что …
  • Четырех канальный терморегулятор ch-4000Четырех канальный терморегулятор ch-4000
    Views: 3432  Четыре независимых канала регулирования температуры, одновременно можно подключить 16 датчиков температуры DS18B20 с удалением до трехсот метров. Можно для регулировки выбрать любой датчик, подключенный к устройству. Каждый канал может работать …
  • УКВ – радиоприем, часть 1УКВ – радиоприем, часть 1
    Views: 9830 Музыкальная тема к статье, слушаем: Первый мой радиоприемник, выглядел так. Использовал исключительно в школе на уроках, держась за одно ухо и преданно смотря на училку и сладко улыбаясь. …


Поделись этим!