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

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

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

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

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

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


 
Опции темы

STM32F030C8 SPI SSD1306

Непрочитано 02.11.2016, 20:24  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 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 (s [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_GPIOA, ENABLE);//5,6,7
   RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
   
   /* 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(GPIOA, GPIO_PinSource5, GPIO_AF_0);
  GPIO_PinAFConfig(GPIOA, GPIO_PinSource6, GPIO_AF_0);
  GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_0);
   
  CS_OFF;
  
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);
   
  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
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: STM32F030C8 SPI SSD1306

Издеваешься, да?
Переписывай без SPL попутно штудируя RM.
Кто влезет получит бан!!!
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 02.11.2016, 20:53  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 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
Почётный гражданин KAZUS.RUN
 
Аватар для NewWriter
 
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
NewWriter на пути к лучшему
По умолчанию Re: STM32F030C8 SPI SSD1306

Так этот дисплейчик на I2C или на SPI?
Я тоже заказал себе один такой на пробу. Насколько я понял, интерфейс там переключается перемычками. А в оригинале на ленте шлейфа вроде как есть даже параллельный.
Не нашел инфы по току потребления.
NewWriter вне форума  
Непрочитано 02.11.2016, 21:17  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 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.RUN
 
Регистрация: 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.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: STM32F030C8 SPI SSD1306

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


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

Сообщение от miwutka Посмотреть сообщение
Для нормальной работы RESET ножка должна быть притянута к +3
Да.
omercury вне форума  
Непрочитано 02.11.2016, 22:36  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 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.RUN
 
Регистрация: 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_byte, uint8_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
Сообщений: 9,979
Сказал спасибо: 928
Сказали Спасибо 2,261 раз(а) в 1,557 сообщении(ях)
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, время: 09:02.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.