Easyelectronics.ru

Электроника для всех
Текущее время: 26 июн 2022, 22:27

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 25 ] 
Автор Сообщение
 Заголовок сообщения: STM8S207RB
СообщениеДобавлено: 05 янв 2021, 16:23 
Старожил
Аватара пользователя

Зарегистрирован: 04 фев 2016, 12:43
Сообщения: 226
Откуда: BELARUS
Код:
#include "stm8s.h"
//STM8S207
//STM8S103
//**************************************************************************//
//==========================================================================//
//**************************************************************************//
void assert_failed(uint8_t* file, uint32_t line){ 
}
//**************************************************************************//
//==========================================================================//
//**************************************************************************//
void delay(uint32_t delay){ 
  while (delay--);
}
//**************************************************************************//
//==========================================================================//
//**************************************************************************//
char putchar (char c){
  /* Write a character to the UART1 */
  UART1_SendData8(c);
  /* Loop until the end of transmission */
  while (UART1_GetFlagStatus(UART1_FLAG_TXE) == RESET);
  return (c);
}
//**************************************************************************//
//==========================================================================//
//**************************************************************************//
int main( void )
{
CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1);
CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
UART1_DeInit();
UART1_Init((uint32_t)500000, UART1_WORDLENGTH_8D, UART1_STOPBITS_1, UART1_PARITY_NO,UART1_SYNCMODE_CLOCK_DISABLE, UART1_MODE_TX_ENABLE);
// GPIO_Init(GPIOB, GPIO_PIN_5, GPIO_MODE_OUT_PP_LOW_FAST);
while(1){
    delay(100000);
    //GPIO_WriteReverse(GPIOB, GPIO_PIN_5);
    putchar('t');
    putchar('e');
    putchar('s');
    putchar('t');
   
  }

}



Выводит иероглифы если в режиме отладки по строчно, то почти совпадает.
Среда разработки IAR и STVD+COSMIC результат один и тот же.

Если препроцессору в IAR сказать, что контроллер STM8S103 и выбрать его в настройках среды, то на этом контроллере проблем не возникает. Также пробовал подкидывать другой такой-же STM8S207 проблема таже. Пробовал задействовать UART3 ничего не помогает. Ковырять регистры пока не полез. Можно частоту на ружу вывести но блин.. Может чего для этого мк по другому?

_________________
#ElectroHobby


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S207RB
СообщениеДобавлено: 05 янв 2021, 16:32 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 1703
У S103 и S207 разные максимальные частоты, может где-то прописано, что у 207 частота(кварц) 24MHz, а реально у тебя 16 MHz, как у S103.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S207RB
СообщениеДобавлено: 05 янв 2021, 16:39 
Старожил
Аватара пользователя

Зарегистрирован: 04 фев 2016, 12:43
Сообщения: 226
Откуда: BELARUS
Да есть такое в stm8s.h #define HSI_VALUE ((uint32_t)16000000) /*!< Typical Value of the HSI in Hz */ одинаковая для HSI для HSE будет разная. Внешнего кварца у меня нет работаю на HSI.

_________________
#ElectroHobby


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S207RB
СообщениеДобавлено: 05 янв 2021, 16:58 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 1703
Putchar() еще неправильный. TXE должен проверяться в начале, потому что переданный байт сразу уходит в сдвиговый регистр и TXE устанавливается когда данные только начинают передаваться.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S207RB
СообщениеДобавлено: 05 янв 2021, 17:02 
Старожил
Аватара пользователя

Зарегистрирован: 04 фев 2016, 12:43
Сообщения: 226
Откуда: BELARUS
Reflector писал(а):
Putchar() еще неправильный. TXE должен проверяться в начале, потому что переданный байт сразу уходит в сдвиговый регистр и TXE устанавливается когда данные только начинают передаваться.

Так в примерах от ST:
Код:
PUTCHAR_PROTOTYPE
{
  /* Write a character to the UART1 */
  UART1_SendData8(c);
  /* Loop until the end of transmission */
  while (UART1_GetFlagStatus(UART1_FLAG_TXE) == RESET);

  return (c);
}

Да и дело не в этом, я уже пробовал ставить проверку, перед отправкой. Ну и еще рас и ничего......

_________________
#ElectroHobby


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S207RB
СообщениеДобавлено: 05 янв 2021, 17:17 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 1703
BorisBritwa писал(а):
Так в примерах от ST

Я с STM8 не работаю, но на STM32 TXE проверяется перед отправкой и судя по документации на STM8 там дело обстоит точно так же.
Цитата:
Да и дело не в этом

Почему тогда при пошаговом выполнении получаются близкие к ожидаемым результаты?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S207RB
СообщениеДобавлено: 05 янв 2021, 17:28 
Старожил
Аватара пользователя

Зарегистрирован: 04 фев 2016, 12:43
Сообщения: 226
Откуда: BELARUS
Я писал выше, что перед тем как написать еще рас проверил(поставил проверку перед отправкой) результат мусор на выходе. На другом мк. тот же код, просто меняю модель процессора и пересобираю проект все работает. Запаял внешний кварц на 24МHz буду тестить.

_________________
#ElectroHobby


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S207RB
СообщениеДобавлено: 05 янв 2021, 17:46 
Старожил
Аватара пользователя

Зарегистрирован: 18 июн 2011, 16:29
Сообщения: 2585
Откуда: Волноваха
а что у вас за бодрейт в 500К такой?
на 9600 пробовали, работает?

_________________
Хранитель форума


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S207RB
СообщениеДобавлено: 05 янв 2021, 17:51 
Старожил
Аватара пользователя

Зарегистрирован: 04 фев 2016, 12:43
Сообщения: 226
Откуда: BELARUS
115200 не работает.
На stm8s103 1000000 заявленные выдает нормально. Мне нужен Лям и то маловато думаю использовать в качестве лог. анализатора шины адреса для процессора Z80. Хотя бы глянуть в каких адресах че пишется и читается.А именно у меня есть компьютер Байт который не работает.

_________________
#ElectroHobby


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S207RB
СообщениеДобавлено: 05 янв 2021, 17:54 
Старожил
Аватара пользователя

Зарегистрирован: 18 июн 2011, 16:29
Сообщения: 2585
Откуда: Волноваха
• High-precision baud rate generator system
­ Common programmable transmit and receive baud rates up to fMASTER/16
на 9600 работает??где-то проблемы с настройкой скорости

http://www.count-zero.ru/2016/stm8_spl_printf/

_________________
Хранитель форума


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S207RB
СообщениеДобавлено: 05 янв 2021, 17:55 
Старожил

Зарегистрирован: 23 янв 2016, 15:37
Сообщения: 1703
BorisBritwa писал(а):
Мне нужен Лям и то маловато думаю использовать в качестве лог. анализатора шины адреса для процессора Z80.

STM32 какие-то есть? Я когда-то делал ЛА на 20-ти ногом F030, могу скинуть прошивку с клиентом. А еще лучше если F303 есть, там уже USB.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S207RB
СообщениеДобавлено: 05 янв 2021, 18:10 
Старожил
Аватара пользователя

Зарегистрирован: 04 фев 2016, 12:43
Сообщения: 226
Откуда: BELARUS
STM32 есть на выбор. Так мне 5В логика нужна. И я уже запаял 20 проводов , продефайнил все это в проекте.

_________________
#ElectroHobby


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S207RB
СообщениеДобавлено: 05 янв 2021, 18:15 
Старожил
Аватара пользователя

Зарегистрирован: 04 фев 2016, 12:43
Сообщения: 226
Откуда: BELARUS
Финский писал(а):
• High-precision baud rate generator system
­ Common programmable transmit and receive baud rates up to fMASTER/16
на 9600 работает??где-то проблемы с настройкой скорости

http://www.count-zero.ru/2016/stm8_spl_printf/


Да скорее придётся лезть в регистры и смотреть.

_________________
#ElectroHobby


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S207RB
СообщениеДобавлено: 05 янв 2021, 18:21 
Старожил
Аватара пользователя

Зарегистрирован: 18 июн 2011, 16:29
Сообщения: 2585
Откуда: Волноваха
BorisBritwa писал(а):
думаю использовать в качестве лог. анализатора шины адреса для процессора Z80.
чем лог. анализатор на Кипарисе не подходит?
PulseView даже умеет в Z80 смотреть:
Show

_________________
Хранитель форума


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S207RB
СообщениеДобавлено: 05 янв 2021, 18:35 
Старожил
Аватара пользователя

Зарегистрирован: 04 фев 2016, 12:43
Сообщения: 226
Откуда: BELARUS
Дело в принципе какого Х оно не работает.У меня есть лог известный анализатор от Dreamsourcelab но это кувалдой гвозди забивать.

_________________
#ElectroHobby


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S207RB
СообщениеДобавлено: 05 янв 2021, 18:55 
Старожил
Аватара пользователя

Зарегистрирован: 18 июн 2011, 16:29
Сообщения: 2585
Откуда: Волноваха
хм... есть в наличии инструмент, специально заточенный под такие задачи - но вместо его использования изобретаете велосипед.

_________________
Хранитель форума


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S207RB
СообщениеДобавлено: 05 янв 2021, 19:16 
Старожил
Аватара пользователя

Зарегистрирован: 04 фев 2016, 12:43
Сообщения: 226
Откуда: BELARUS
Финский писал(а):
хм... есть в наличии инструмент, специально заточенный под такие задачи - но вместо его использования изобретаете велосипед.

Это уже дело принципа. Почему не работает UART на stm8s207, хотя на stm8sf103 все работает? Из проекта не выхожу меняю модель проца и пере собираю проект. Ошибок нет. Я уже все почти проверил .Завтра дам ответ почему оно не работает, осталось пару вещей. Я НА ЭТО УБИЛ УЖЕ ЦЕЛЫЙ ДЕНЬ!!!

_________________
#ElectroHobby


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S207RB
СообщениеДобавлено: 05 янв 2021, 19:29 
Старожил
Аватара пользователя

Зарегистрирован: 18 июн 2011, 16:29
Сообщения: 2585
Откуда: Волноваха
Код:
CLK->CKDIVR = CLK_PRESCALER_HSIDIV1;                         // F_CPU 16 MHz

   UART1->BRR2 = 0x03;                                          // UART baudrate 9600
   UART1->BRR1 = 0x68;
   UART1->CR2 |= UART1_CR2_REN|UART1_CR2_TEN|UART1_CR2_RIEN;                   // Rx Tx enable
Вложение:
2021-01-05_16-27-31.png
2021-01-05_16-27-31.png [ 95.58 Кб | Просмотров: 2295 ]

Код:
void uart_send_chr(char c)
{
  UART1->DR = c;
  while (!(UART1->SR & UART1_SR_TXE));
}

void uart_send_str(const char* str)
{
  while (*str)
  {
    uart_send_chr(*str++);
  }
}

Попробуй вручную настроить бодрейт. Вот выдержка из проекта на STM8S003, все работает, отсылает и принимает.

_________________
Хранитель форума


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S207RB
СообщениеДобавлено: 05 янв 2021, 19:30 
Старожил
Аватара пользователя

Зарегистрирован: 18 июн 2011, 16:29
Сообщения: 2585
Откуда: Волноваха
UART1_CR2_RIEN - не добавляй, это прерывания по приему.

_________________
Хранитель форума


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S207RB
СообщениеДобавлено: 05 янв 2021, 22:17 
Старожил

Зарегистрирован: 16 окт 2013, 01:27
Сообщения: 2042
Мне прямо интересно стало, нашел свой старый проект 2013 года под 44 выводный STM8S207 - UART точно работал на скоростях от 4800 до 115200 (иначе всех скоростей не было бы в менюшке)

Код SPL
Код:
const unsigned long UART_SPEED[]={4800,9600,14400,19200,38400,57600,115200};
void Uart_init(void)
   {
      UART1_DeInit;
         speed=FLASH_ReadByte(0x004000); Delay(100);
         if (speed<1 || speed>6) {speed=1;}
         UART1_Init(UART_SPEED[speed],UART1_WORDLENGTH_8D,UART1_STOPBITS_1, UART1_PARITY_NO, UART1_SYNCMODE_CLOCK_DISABLE , UART1_MODE_TXRX_ENABLE);
         UART1_Cmd(ENABLE);
   }

Прием нужен только для начальной инициализации с компом, далее работал исключительно на передачу...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S207RB
СообщениеДобавлено: 06 янв 2021, 16:46 
Старожил
Аватара пользователя

Зарегистрирован: 04 фев 2016, 12:43
Сообщения: 226
Откуда: BELARUS
Всем спасибо за участие. Залил следующий код:

Код:
#include "stm8s.h"

void assert_failed(uint8_t* file, uint32_t line){ 
}

static void CLK_Config(void)
{
    uint8_t  status = FALSE;

    CLK_DeInit();

    /* Configure the Fcpu to DIV1*/
    CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1);
   
    /* Configure the HSI prescaler to the optimal value */
    CLK_SYSCLKConfig(CLK_PRESCALER_HSIDIV1);

    /* Output Fcpu on CLK_CCO pin */
    CLK_CCOConfig(CLK_OUTPUT_CPU);
     
    /* Configure the system clock to use HSI clock source and to run at 16Mhz */
    status = CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO, CLK_SOURCE_HSI, DISABLE, CLK_CURRENTCLOCKSTATE_DISABLE);
}

int main( void )
{
CLK_Config();
while(1){
  }

}



На пине PE0 меряю частоту ,а там целых 17MHz.Указываю значение HSI 17Mhz пересобираю проект и ВСЕ РАБОТАЕТ)

НЕ ИЗУЧАЛ ДАЛЕЕ ПОКА ЭТОТ ВОПРОС, НО ДУМАЮ ЭТО КАК-ТО МОЖНО ИСПРАВИТЬ? ИХ КАК-ТО НА ЗАВОДЕ КАЛИБРУЮТ ИЛИ БРАК?

_________________
#ElectroHobby


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S207RB
СообщениеДобавлено: 06 янв 2021, 16:51 
Старожил
Аватара пользователя

Зарегистрирован: 18 июн 2011, 16:29
Сообщения: 2585
Откуда: Волноваха
тебе попался engineering sample overclock edition :))

а еще экземпляры есть? интересно, один такой, или партия.

_________________
Хранитель форума


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S207RB
СообщениеДобавлено: 06 янв 2021, 17:41 
Старожил
Аватара пользователя

Зарегистрирован: 04 фев 2016, 12:43
Сообщения: 226
Откуда: BELARUS
Финский писал(а):
тебе попался engineering sample overclock edition :))

а еще экземпляры есть? интересно, один такой, или партия.

Два брал у одного продавца и два тоже самое.

_________________
#ElectroHobby


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S207RB
СообщениеДобавлено: 09 янв 2021, 13:10 
Старожил
Аватара пользователя

Зарегистрирован: 28 янв 2010, 11:56
Сообщения: 4322
Откуда: Vinnitsya
Там вроде какой-то CLK_HSITRIMR есть...

_________________
Китайская комплектация - европейское качество!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S207RB
СообщениеДобавлено: 09 янв 2021, 21:22 
Старожил

Зарегистрирован: 16 окт 2013, 01:27
Сообщения: 2042
У инженерного маркировка должна быть STM8E207


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 25 ] 


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB