26.04.2013, 20:32
|
|
Прописка
Регистрация: 31.03.2013
Сообщений: 146
Сказал спасибо: 50
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от dosikus
|
И еще , может вам все таки нужен вывод такого вида
|
Нет, все нормально. Спасибо
А вот по SPI я так и не получил ответа , так нужно настраивать пины MISO ,MOSI, SCK, на вход и выход для работы SPI , или они автоматом переходят в нужный режим при запуске SPI ? В AVR я настаивал в ручную, а тут не знаю что делать.
|
|
|
|
26.04.2013, 21:03
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
|
Re: FAQ по STM8
Вот вместо озвучмвания своих обид на Виктора, уже бы давно проштудировали референс мануал, а он гласит:
Цитата:
|
Alternate function input
Some I/Os can be used as alternate function input. For example as the port may be used as the input capture input to a timer. Alternate function inputs are not selected automatically, you select them by writing to a control bit in the registers of the corresponding peripheral.
For Alternate Function input, you should select floating or pull-up input configuration in the DDR and CR1 registers.
|
Цитата:
|
Alternate function output
Alternate function outputs provide a direct path from a peripheral to an output or to an I/O pad, taking precedence over the port bit in the data output latch register (Px_ODR) and forcing the Px_DDR corresponding bit to 1.
An alternate function output can be push-pull or pseudo-open drain depending on the peripheral and Control register 1 (Px_CR1) and slope can be controlled depending on the Control register 2 (Px_CR2) values.
Examples:
SPI output pins must be set-up as push-pull, fast slope for optimal operation.
|
|
|
|
Сказали "Спасибо" nahimovv
|
|
|
26.04.2013, 21:11
|
|
Гуру портала
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
|
Сообщение от stmfaq
|
А вот по SPI я так и не получил ответа , так нужно настраивать пины MISO ,MOSI, SCK, на вход и выход для работы SPI , или они автоматом переходят в нужный режим при запуске SPI ? В AVR я настаивал в ручную, а тут не знаю что делать.
|
Все надеются, что у вас проснется совесть и вы все таки начнете читать даташит, ну или на худой конец протрясете SPL на предмет инициализации GPIO для SPI...
Сообщение от ut1wpr
|
А может, все-таки пусть сам пробует? Написать и отдать - какая польза?
Впрочем, тебе виднее. Я бы рассказал, КАК это сделать. Словами. А в коды пусть уж сам.
|
Таки да , но дадим шанс исправится...
__________________
Осторожно , злой кот
|
|
|
|
27.04.2013, 18:20
|
|
Временная регистрация
Регистрация: 21.01.2010
Сообщений: 36
Сказал спасибо: 2
Сказали Спасибо 14 раз(а) в 3 сообщении(ях)
|
Re: FAQ по STM8
STM8L151C4T6, какие действия нужны чтоб заработал USART2.
Вот настройки.
void Init_UART2(void)
{
USART_DeInit(USART2);
CLK_PeripheralClockConfig(CLK_Peripheral_USART2,EN ABLE);
/* Configure USART Tx as alternate function push-pull (software pull up)*/
GPIO_ExternalPullUpConfig(GPIOE, GPIO_Pin_4, ENABLE);
/* Configure USART Rx as alternate function push-pull (software pull up)*/
GPIO_ExternalPullUpConfig(GPIOE, GPIO_Pin_3, ENABLE);
/* USART configuration */
USART_Init(USART2, (u32)12000, USART_WordLength_8b, USART_StopBits_1, USART_Parity_No, (USART_Mode_Rx | USART_Mode_Tx));
USART_Cmd(USART2, ENABLE);
USART_ClearFlag(USART2, USART_FLAG_TC);
}
Вот отправка:
USART_SendData8(USART2, '9');
while (USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET);
на выводе нет ничего. USART1 работает.
|
|
|
|
27.04.2013, 18:33
|
|
Заблокирован
Регистрация: 25.04.2013
Сообщений: 1,431
Сказал спасибо: 0
Сказали Спасибо 385 раз(а) в 254 сообщении(ях)
|
Re: FAQ по STM8
А откуда в STM8L151C4T6 UART2 взялся?
|
|
|
Сказали "Спасибо" nahimovv
|
|
|
27.04.2013, 18:45
|
|
Временная регистрация
Регистрация: 21.01.2010
Сообщений: 36
Сказал спасибо: 2
Сказали Спасибо 14 раз(а) в 3 сообщении(ях)
|
Re: FAQ по STM8
Сообщение от nahimovv
|
А откуда в STM8L151C4T6 UART2 взялся?
|
Мда, мой недосмотр. Пока едут STM8l151C8t6 решил потренироваться на STM8L151C4T6. Перепаяю, проверю. Спасибо..
---------------------------------------------
Перепаял, все работает.
Последний раз редактировалось alexdos; 27.04.2013 в 18:58.
|
|
|
|
27.04.2013, 20:24
|
|
Прописка
Регистрация: 31.03.2013
Сообщений: 146
Сказал спасибо: 50
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: FAQ по STM8
Жесть, не могу победить SPI. slave в ответ шлет только 0xFF.
Даже не знаю где ошибся. Опишу ситуцию, STM8S105C6T6 должен выступать в качестве мастера SPI.
У SPI должны быть такие параметры
SPI Type: Master
SPI Clock Rate: 4000kHz
SPI Clock Phase: Cycle Half
SPI Clock Polarity: Low
SPI Data Order: MSB First
Вот инициализация пинов SPI на STM8S105
Код:
|
/////////// SPI Pin/////////
// In - Out
PC_DDR_bit.DDR7=0 ; // In MISO
PC_DDR_bit.DDR6=1; //Out MOSI
PC_DDR_bit.DDR5=1; //Out SCK
PC_CR1_bit.C17 = 0 ; // In 0-floating
PC_CR1_bit.C16 = 1; // Out Push-pull
PC_CR1_bit.C15 = 1; // Out Push-pull
PC_CR2_bit.C27 = 0; // In , interrupt disabled
PC_CR2_bit.C26 = 1; // Output speed up to 10 MHz
PC_CR2_bit.C25 = 1; // Output speed up to 10 MHz
//////////////////////////////////////////////////////////// |
Инициализация SPI
Код:
|
void SPI_Init(void)
{ SPI_CR1 =0;
SPI_CR2=0;
SPI_ICR= 0;
SPI_SR =0;
SPI_CRCPR =0;
SPI_CR1_LSBFIRST=0; // MSB First
SPI_CR1_SPE = 0; // Disable SPI.
SPI_CR1_BR=1; // 001: fMASTER/4
SPI_CR1_MSTR=1; // Master
SPI_CR1_CPOL = 0; // Clock is low when idle.
SPI_CR1_CPHA = 0; // Sample the data on the rising edge.
SPI_CR2_RXONLY=0; // Transmit and Recive
SPI_CR2_SSM=1;
SPI_CR2_SSI=1;
SPI_CR1_SPE = 1; // Enable SPI.
asm("nop");
} |
Вот функция приема /передачи
Код:
|
unsigned char spi_transfer(unsigned char data)
{
SPI_DR = data;
while (!(SPI_SR_RXNE));
return SPI_DR;
} |
В результате я не принимаю то что должен передать slave. Постоянно приходит значение 0xFF.
Может кто глянет, что я пропустил и в чем ошибся?
Последний раз редактировалось stmfaq; 27.04.2013 в 20:29.
|
|
|
|
27.04.2013, 20:36
|
|
Прописка
Регистрация: 31.03.2013
Сообщений: 146
Сказал спасибо: 50
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: FAQ по STM8
Померил напряжение на пинах SCK 0V на MISO 0V на MOSI +3.3V. Так и должно быть в ждущем режиме?
|
|
|
|
27.04.2013, 23:21
|
|
Прописка
Регистрация: 31.03.2013
Сообщений: 146
Сказал спасибо: 50
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: FAQ по STM8
Ну что такое. Ну не работает никак SPI. Может выход NSS подтянуть к Vcc ?
Из приведенной ниже схемы , не понятно что они хотели сказать про NSS , переводится как "Не использовать, если NSS управляется
программно"
Не использовать что ? ту схему что на рисунке? или они хотели сказать если не используете то сделайте так как на рисунке?
|
|
|
|
28.04.2013, 00:47
|
|
Временная регистрация
Регистрация: 08.02.2010
Сообщений: 62
Сказал спасибо: 4
Сказали Спасибо 14 раз(а) в 12 сообщении(ях)
|
Re: FAQ по STM8
первая же ссылка в инете http://hex.pp.ua/stm8-spi.php
сам я правда до SPI так и не добрался... так что свой пример не могу привести.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 14:35.
|
|