![]() |
![]() |
#1 |
Резидент клуба
Регистрация: 05.01.2014
Сообщений: 502
|
![]()
Данная плата, содержит на своем борту мк(STM32F103C8T6), где записана прошивка программатора (ST-Link) и мк(STM32F051R8T6), куда собственно и записываем наши прошивки, при помощи STM32 ST-LINK Utility. Вашему вниманию предлагаю небольшую программку, написанную в среде разработки Keil μVision 5, при помощи которой инициализировать и работать с трансивером CC1101. Использовался аппаратный SPI с программным "Выбором кристалла", конфиг сделан под 433.92МГц AM!
config.h Код:
#define SRES 0x30 #define SCAL 0x33 #define SRX 0x34 #define STX 0x35 #define SIDLE 0x36 #define SPWD 0x39 #define IOCFG2 0x00 #define IOCFG1 0x01 #define IOCFG0 0x02 #define FIFOTHR 0x03 #define SYNC1 0x04 #define SYNC0 0x05 #define PKTLEN 0x06 #define PKTCTRL1 0x07 #define PKTCTRL0 0x08 #define ADDR 0x09 #define CHANNR 0x0A #define FSCTRL1 0x0B #define FSCTRL0 0x0C #define FREQ2 0x0D #define FREQ1 0x0E #define FREQ0 0x0F #define MDMCFG4 0x10 #define MDMCFG3 0x11 #define MDMCFG2 0x12 #define MDMCFG1 0x13 #define MDMCFG0 0x14 #define DEVIATN 0x15 #define MCSM2 0x16 #define MCSM1 0x17 #define MCSM0 0x18 #define FOCCFG 0x19 #define BSCFG 0x1A #define AGCTRL2 0x1B #define AGCTRL1 0x1C #define AGCTRL0 0x1D #define WOREVT1 0x1E #define WOREVT0 0x1F #define WORCTRL 0x20 #define FREND1 0x21 #define FREND0 0x22 #define FSCAL3 0x23 #define FSCAL2 0x24 #define FSCAL1 0x25 #define FSCAL0 0x26 #define RCCTRL1 0x27 #define RCCTRL0 0x28 #define FSTEST 0x29 #define PTEST 0x2A #define AGCTEST 0x2B #define TEST2 0x2C #define TEST1 0x2D #define TEST0 0x2E #define PATABLE 0x3E const unsigned char cc_config[] = { IOCFG0, 0x00, IOCFG2, 0x0D, FIFOTHR, 0x47, PKTCTRL0,0x32, FSCTRL1, 0x06, FSCTRL0, 0x00, FREQ2, 0x10, FREQ1, 0xB0, FREQ0, 0x71, MDMCFG4, 0xF5, MDMCFG3, 0x83, MDMCFG2, 0x33, MDMCFG1, 0x22, MDMCFG0, 0xF8, MCSM2, 0x07, MCSM1, 0x30, MCSM0, 0x18, AGCTRL2, 0x03, AGCTRL1, 0x40, AGCTRL0, 0x91, FREND1, 0x56, FREND0, 0x11, FSCAL3, 0xE9, FSCAL2, 0x2A, FSCAL1, 0x00, FSCAL0, 0x1F, TEST2, 0x81, TEST1, 0x35, TEST0, 0x09, PATABLE, 0x00, PATABLE, 0xC0, PATABLE, 0x00, PATABLE, 0x00, PATABLE, 0x00, PATABLE, 0x00, PATABLE, 0x00, PATABLE, 0x00 }; main.c Код:
#include "stm32f0xx_spi.h" #include "stm32f0xx_rcc.h" #include "stm32f0xx_gpio.h" #include "config.h" GPIO_InitTypeDef PORT_GPIOA; SPI_InitTypeDef SPI_port; #define SS GPIO_Pin_4 #define CS_L GPIOA->BRR = (1<<4) //CS = L #define CS_H GPIOA->BSRR = (1<<4) //CS = H unsigned int i; void delay(unsigned int delayTime) { for (i = 0; i < delayTime; i++); } void InitGPIOA() { RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA,ENABLE); PORT_GPIOA.GPIO_Mode = GPIO_Mode_OUT; PORT_GPIOA.GPIO_OType = GPIO_OType_PP; PORT_GPIOA.GPIO_Pin = SS; PORT_GPIOA.GPIO_PuPd = GPIO_PuPd_UP; PORT_GPIOA.GPIO_Speed = GPIO_Speed_Level_3; GPIO_Init(GPIOA,&PORT_GPIOA); } void InitSPI() { /* SPI SCK and MOSI*/ PORT_GPIOA.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_7; PORT_GPIOA.GPIO_Mode = GPIO_Mode_AF; PORT_GPIOA.GPIO_Speed = GPIO_Speed_50MHz; PORT_GPIOA.GPIO_OType = GPIO_OType_PP; PORT_GPIOA.GPIO_PuPd = GPIO_PuPd_DOWN; GPIO_Init(GPIOA, &PORT_GPIOA); RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1,ENABLE); SPI_port.SPI_CPOL = SPI_CPOL_High; SPI_port.SPI_CPHA = SPI_CPHA_2Edge; SPI_port.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256; SPI_port.SPI_DataSize = SPI_DataSize_8b; SPI_port.SPI_Direction = SPI_Direction_2Lines_FullDuplex; SPI_port.SPI_FirstBit = SPI_FirstBit_MSB; SPI_port.SPI_Mode = SPI_Mode_Master; SPI_port.SPI_NSS = SPI_NSS_Soft; SPI_Init(SPI1,&SPI_port); SPI_Cmd(SPI1, ENABLE); } void spi_send(unsigned char command) { SPI_SendData8(SPI1,command); while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_BSY) == SET) {} } void cc1101_strobe(unsigned char s) { CS_H; delay(150); CS_L; delay(50); spi_send(s); delay(50); CS_H; } void rtx_rx() { cc1101_strobe(SIDLE); cc1101_strobe(SRX); } void rtx_tx() { cc1101_strobe(SIDLE); cc1101_strobe(STX); } void cc1101_init() { int a; cc1101_strobe(SRES); CS_H; delay(150); CS_L; delay(50); for(a=0; a<74; a++) { delay(1); spi_send(cc_config[a]); delay(1); } delay(50); CS_H; } int main() { InitGPIOA(); GPIO_PinAFConfig(GPIOA, GPIO_PinSource5, GPIO_AF_0); GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_0); InitSPI(); CS_H; cc1101_init(); rtx_rx(); } Последний раз редактировалось Бурый; 03.04.2015 в 12:38. |
![]() |
![]() |
![]() |
#2 |
Резидент клуба
Регистрация: 05.01.2014
Сообщений: 502
|
![]()
Схема подключения CC1101 к данной плате в рамках данного проекта
PA4 - CS (SS) PA5 - SCK PA7 - MOSI Добавлено через 2 минуты В дальнейшем, будет рассмотрен прием Keeloq с выводом принятой посылки по UART. |
![]() |
![]() |
![]() |
#3 |
Резидент клуба
Регистрация: 21.08.2011
Сообщений: 1,158
|
![]()
лучше папкой проэкт выкладывать,.
А что за платка? Добавлено через 54 секунды Настройки прерываний не вижу для приема А какой дисплей будешь подключать в дальнейшем? |
![]() |
![]() |
![]() |
#4 |
Резидент клуба
Регистрация: 05.01.2014
Сообщений: 502
|
![]()
На данном этапе реализована работа с трансивером CC1101 (слушать эфир, можно конечно и глушилку сделать, вариантов достаточно) Основная цель - привлечение молодежи. Прерывания пока не настраивал, собственно как и таймер. В дальнейшем думаю целесообразно дополнить экраном от Nokia 5110. Потом будет отдельно сделан конфиг под Si4432.
Фото платы, позже выложу, скорее всего, будет офлрмлятся как отдельный проект, как я это вижу - отдельная монтажная плата с экраном и трансивером на борту. Главное чтобы народ подтягивался. Последний раз редактировалось Бурый; 04.04.2015 в 11:11. |
![]() |
![]() |
![]() |
#5 |
Резидент клуба
Регистрация: 05.01.2014
Сообщений: 502
|
![]()
А вот и сама плата!
|
![]() |
![]() |
![]() |
#6 | |||||||||||||||||||||||
Резидент клуба
Регистрация: 21.08.2011
Сообщений: 1,158
|
![]()
Замечательная эпоха экрана 5110 уже прошла, судя от сообщениям его сложно достать во многих регионах. Также при выводе пакета кейлога он пишеться на нем в две строки, можно вывести только три пакета на экране. Это шесть строк по 14 символов в строке. А если еще нужно служебную информацию выводить...Плюс монохром. Для реального привлечения молодежи и перспектив дальнейшего развития проэкта необходимо закладывать железо которое хотят видеть пользователи. Ну как вариант из этого проэкта, в дальнейшем, можно будет сделать контроллер для умного дома с опросом беспроводных датчиков и исполнительных устройств, с выводом в цвете всей информации и управлением бытовыми приборами. Это я клоню к использованию в проэкте цветного дисплея, ну как-то не считаю правильным цеплять на 32 битный контроллер монохромный дисплей. Есть вариант на дисплее 1616 нокии, там 9ти битный SPI, в продаже есть он. http://phreakerclub.com/forum/showpo...&postcount=297 Но лучший вариант это 320*240 точек дисплей 2.2" http://phreakerclub.com/forum/showpo...&postcount=297 Ну если планируется задействовать тач скриин тогда 2.8" дисплей. |
|||||||||||||||||||||||
![]() |
![]() |
![]() |
#7 |
Резидент клуба
Регистрация: 05.01.2014
Сообщений: 502
|
![]()
russo_turiso спасибо за информацию, про экран - согласен!
|
![]() |
![]() |
![]() |
#8 |
Резидент клуба
Регистрация: 21.08.2011
Сообщений: 1,158
|
![]()
Правильная ссылка для 2.2" http://phreakerclub.com/forum/showpo...6&postcount=18
Это для 2.8" дисплея на ILI9325 контролере дисплея с тачскрином. Платка STM32-mini v3.0 Картинку урезал в качестве, зеленым это хан пакеты. Последний раз редактировалось russo_turisto; 04.04.2015 в 20:43. |
![]() |
![]() |
![]() |
#9 | |||||||||||||||||||||||
Модератор
Регистрация: 27.03.2011
Сообщений: 2,316
|
![]()
Несколько лет такая платка валяется на полке-показалась слишком замудренной настройка проектов.Хорошо если будет продвигаться это направление здесь-будет толчком для изучения..
Добавлено через 2 минуты
Не согласен-на алиекспрессе спокойно купить можно.Я вот на OLED смотрю-не так и дорого,но проще с подключением и информативно.
__________________
Правильно поставленный вопрос-на половину полученный ответ;) ++++++++++++++++++++++++++++++++++++++ [url]http://www.youtube.com/watch?v=ktnn-s3ebzw[/url] |
|||||||||||||||||||||||
![]() |
![]() |
![]() |
#10 | |||||||||||||||||||||||
Вступил в клуб
Регистрация: 31.01.2012
Сообщений: 84
|
![]()
я как раз OLED дисплей прикрутил к анализатору на ардуине, скоро выложу на форум, осталось подправить кое какие косяки в коде. |
|||||||||||||||||||||||
![]() |
![]() |