Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 02.11.2016, 20:24  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию STM32F030C8 SPI SSD1306

Добрый день. Настраиваю SPI для SSD1306. Получил с SPI интерфейсом. Вот хочу и его наладить... Чтото пока не получается... На ножках полный ноль судя по осциллографу... Подскажите что не так, может инит не правильный...?

PHP код:

void SPI1_SendByte
(uint8_t byte)
{
    while(!(
SPI1-›SR SPI_SR_TXE));
    
SPI1-›DR=byte;
}
//==================================================  ============================
void  SPI1_WR_String(const char *s)
int i 0;
 while (
[i] != 0) {
    
SPI1_SendByte (s[i++]);
    }
}
//==================================================  ============================
uint8_t SPI1_ReadByte(uint8_t byte)
{
//  while (!(SPI1-›SR & SPI_SR_TXE));
  
SPI1-›DR=byte;
  while (!(
SPI1-›SR SPI_SR_RXNE));
  return (
SPI1-›DR);
}

void SPI_ini(void)
{
   
GPIO_InitTypeDef  GPIO_InitStructure;
   
SPI_InitTypeDef   SPI_user;
   
   
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOAENABLE);//5,6,7
   
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOBENABLE);
   
   
/* TIM1 channel 2 pin (PE.11) configuration */
  
GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_5 GPIO_Pin_6 GPIO_Pin_7;
  
GPIO_InitStructure.GPIO_Mode GPIO_Mode_AF;
  
GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;
  
GPIO_InitStructure.GPIO_OType GPIO_OType_PP;
  
GPIO_InitStructure.GPIO_PuPd GPIO_PuPd_NOPULL;
  
GPIO_Init(GPIOA, &GPIO_InitStructure);
   
   
//for ssd1306 CS,REC,DC
  
GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_0 GPIO_Pin_1 GPIO_Pin_2;
  
GPIO_InitStructure.GPIO_Mode GPIO_Mode_OUT;
  
GPIO_Init(GPIOB, &GPIO_InitStructure);

  
/* Connect TIM pins to AF2 */
  
GPIO_PinAFConfig(GPIOAGPIO_PinSource5GPIO_AF_0);
  
GPIO_PinAFConfig(GPIOAGPIO_PinSource6GPIO_AF_0);
  
GPIO_PinAFConfig(GPIOAGPIO_PinSource7GPIO_AF_0);
   
  
CS_OFF;
  
  
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1ENABLE);
   
  
SPI1-›CR1 |= SPI_CR1_BIDIMODE  //1-line bidirectional data mode selected
            
SPI_CR1_BIDIOE     //Output enabled (transmit-only mode)
            
SPI_CR1_SSM                //Software slave management enabled
            
SPI_CR1_SSI                // с SSM тоже должен быть 1
            
SPI_CR1_SPE                //SPI enable
            
SPI_CR1_BR_2 SPI_CR1_BR_1 // 128 делитель
            
SPI_CR1_MSTR               //Master configuration
            
SPI_CR1_CPOL               // Clock polarity to 1 when idle
            
SPI_CR1_CPHA;              // Clock phase The second clock
   
  
SPI1-›CR2 |= SPI_CR2_DS_2 SPI_CR2_DS_1 SPI_CR2_DS_0//8-bit
  
   

Пишу прямо в регистр в основном цикле для проверки SPI1-›DR = 0x0f; - на ножках глухо...
Реклама:

Последний раз редактировалось miwutka; 02.11.2016 в 21:10.
miwutka вне форума  
Непрочитано 02.11.2016, 20:44  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: STM32F030C8 SPI SSD1306

Издеваешься, да?
Переписывай без SPL попутно штудируя RM.
Кто влезет получит бан!!!
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 02.11.2016, 20:53  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: STM32F030C8 SPI SSD1306

пипец ))) ща пропишу. Но на выходе получил сигнал. Делитель слишком маленький был. Получилась высокая частота. Ща перепишу. И начинаю разбираться с протоколом DC, RES, CS видимо чтото с ними не так делаю...
Кстати SPI уже пишу модульно.

Последний раз редактировалось miwutka; 02.11.2016 в 20:55.
miwutka вне форума  
Непрочитано 02.11.2016, 21:14  
NewWriter
Заблокирован
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,221 раз(а) в 1,319 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: STM32F030C8 SPI SSD1306

Так этот дисплейчик на I2C или на SPI?
Я тоже заказал себе один такой на пробу. Насколько я понял, интерфейс там переключается перемычками. А в оригинале на ленте шлейфа вроде как есть даже параллельный.
Не нашел инфы по току потребления.
NewWriter вне форума  
Непрочитано 02.11.2016, 21:17  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: STM32F030C8 SPI SSD1306

Вот мои две маленькие либы для SSD1306. Думаю там чтото не так с ножками DC, RES. CS вроде работает нормально. Для нормальной работы RESET ножка должна быть притянута к +3 вольта или к минусу? Немогу понять по даташиту на 18 странице на дисплей что читать про SPI. 3-wire или 4-wire?? Из-за этого немогу понять что делать с пином на дисплее DC.....
Вложения:
Тип файла: rar UserSource.rar (3.4 Кб, 0 просмотров)

Последний раз редактировалось miwutka; 02.11.2016 в 21:24.
miwutka вне форума  
Непрочитано 02.11.2016, 21:20  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: STM32F030C8 SPI SSD1306

Сообщение от NewWriter Посмотреть сообщение
Так этот дисплейчик на I2C или на SPI?
С I2C я уже подружился )) Теперь с SPI хочу подружиться... Заказывал на космодроме СПИ дисплей, а пришел I2C. Поэтому надо оба изучить.
miwutka вне форума  
Непрочитано 02.11.2016, 22:24  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: STM32F030C8 SPI SSD1306

Сообщение от miwutka Посмотреть сообщение
Подскажите что не так
Мих, я ж тебе ещё в предыдущий раз давал...
Этот косяк уже устранён.


Сообщение от miwutka Посмотреть сообщение
Думаю там чтото не так с ножками DC, RES. CS вроде работает нормально.
Достаточно и трёх проводков кроме питания: CS, MOSI и CD/

Сообщение от miwutka Посмотреть сообщение
Для нормальной работы RESET ножка должна быть притянута к +3
Да.
omercury вне форума  
Непрочитано 02.11.2016, 22:36  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: STM32F030C8 SPI SSD1306

omercury, да да, я ж ваш пример и изучаю )) Теперь хочю свою либу от I2C переписать под SPI)) Она просто удобная. Там для обновления дисплея есть функция DisplayUpdate. Вот я такой у вас не нашел, поэтому думаю свою заточить под SPI. Я в инит вник тогда а в то как писать в память дисплея чтобы зажечь точки так и не вник...
miwutka вне форума  
Непрочитано 02.11.2016, 23:35  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: STM32F030C8 SPI SSD1306

Вот моя функция для I2C. Подскажите control_byte (0х40 она или 0х00) это наша ножка DC?

Посоветуйте логический анализатор нормальный плиз...
PHP код:

void     ssd1306_send
(uint8_t control_byteuint8_t data)
        {
        
I2C1-›CR2 =  I2C_CR2_AUTOEND | (2‹‹16) | (SSD1306_I2C_ADDR‹‹1); 
        
            
/* Check Tx empty */
      //while (!(I2C1-›ISR & I2C_ISR_TXE) );
     
while ( (!(I2C1-›ISR I2C_ISR_TXE) ) && (Timeout == 0) )
      {
         
I2C_Timout++;
         if (
I2C_Timout == ssd1306_I2C_TIMEOUT) {I2C_Timout 0;Timeout 1; }
      };
      
Timeout 0;
      
I2C_Timout 0;
    
     
I2C1-›TXDR control_byte
     
I2C1-›CR2 |= I2C_CR2_START
        
//таймаут
        
while ( (!(I2C1-›ISR I2C_ISR_TXE) ) && (Timeout == 0) )
      {
         
I2C_Timout++;
         if (
I2C_Timout == ssd1306_I2C_TIMEOUT) {I2C_Timout 0;Timeout 1; }
      };
      
Timeout 0;
      
I2C_Timout 0;
        
I2C1-›TXDR data
        
    
            
        } 

Последний раз редактировалось miwutka; 03.11.2016 в 00:03.
miwutka вне форума  
Непрочитано 03.11.2016, 09:21  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: STM32F030C8 SPI SSD1306

miwutka, Для начала ссылку на лот, фотку своего дисплея в нормальном разрешении.
Есть 2 варианта SPI!
__________________
Осторожно , злой кот
dosikus вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
FAQ (ЧаВО) по PROTEUS для начинающих и не только dosikus Proteus 221 07.03.2024 22:45
Кто-нибудь работал с RF модулями nRF2401A? Easyrider83 Автоматика и аппаратура связи 1481 04.09.2021 23:24
Atmega16 - много переферийных устройств SPI pavned AVR 21 23.01.2013 07:00
Работа с EEPROM по SPI dominik2 Микроконтроллеры, АЦП, память и т.д 15 05.05.2012 00:24
Помогите с ЦАП AD7708/AD7718 или их аналогами ST_Senya Микроконтроллеры, АЦП, память и т.д 9 30.11.2009 19:03


Часовой пояс GMT +4, время: 19:42.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot