Easyelectronics.ru

Электроника для всех
Текущее время: 22 сен 2018, 14:35

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



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

Начать новую тему Ответить на тему  [ Сообщений: 18 ] 
Автор Сообщение
 Заголовок сообщения: Программный UART на STM8S003
СообщениеДобавлено: 26 сен 2014, 15:17 
Старожил
Аватара пользователя

Зарегистрирован: 28 сен 2012, 22:11
Сообщения: 328
Откуда: г.Таганрог/г.Геленджик/г.Одесса
Доброго времени суток.
Требуется сделать программную реализацию UART для МК STM8S003F3, т.к. аппаратный уже занят. Нашел пример от ST на просторах интернета, но он идет под ST Visual Develop и в IAR компилироваться отказывается. Может кто-то делал подобное или может подсказать по реализации?

_________________
Количество полученного опыта прямо пропорционально выведенному из строя оборудованию....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программный UART на STM8S003
СообщениеДобавлено: 26 сен 2014, 16:55 
Старожил

Зарегистрирован: 15 янв 2013, 13:24
Сообщения: 5665
http://www.st.com/web/en/catalog/tools/PF257991# --> красная кнопка "Download" внизу страницы.
Это проект для апноута AN2781 - "UART emulation software in STM8S and STM8A microcontrollers".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программный UART на STM8S003
СообщениеДобавлено: 26 сен 2014, 17:22 
Старожил
Аватара пользователя

Зарегистрирован: 28 сен 2012, 22:11
Сообщения: 328
Откуда: г.Таганрог/г.Геленджик/г.Одесса
Вот как раз про него я и говорил

_________________
Количество полученного опыта прямо пропорционально выведенному из строя оборудованию....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программный UART на STM8S003
СообщениеДобавлено: 26 сен 2014, 17:43 
Старожил

Зарегистрирован: 15 янв 2013, 13:24
Сообщения: 5665
А что не понравилось компилятору? Он как-то конкретно обругался?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программный UART на STM8S003
СообщениеДобавлено: 26 сен 2014, 17:55 
Старожил
Аватара пользователя

Зарегистрирован: 28 сен 2012, 22:11
Сообщения: 328
Откуда: г.Таганрог/г.Геленджик/г.Одесса
Сначала он обругал строки, где было условие наличия определенного компилятора. Я их удалил, и после этого он начал ругаться на библиотеки периферии, Изначально только на GPIO, выпилил, начал ругаться на все остальное. Ужасно убогая IDE. Жаль, что компилятор к Eclipse нельзя прикрутить, как те же STM32.

По идее библиотеки можно выпилить, но не совсем понятно, что означают эти строки:
Код:
   TIM3_TimeBaseInit(TIM3_PRESCALER_1, 833);\
   TIM3_ITConfig(TIM3_IT_UPDATE, ENABLE);\
   TIM3_UpdateRequestConfig(TIM2_UPDATESOURCE_REGULAR);\
   TIM3_Cmd(ENABLE);


Точнее понятно, но непонятно, как их заменить на обычные небиблиотечные.

Так же и тут:
Код:
   TIM3->CCER1&= ~TIM3_CCER1_CC2E;\
   TIM3->CCMR2= (((2<<4) & TIM3_CCMR_ICxF) | ((1<<0) & TIM3_CCMR_CCxS));\
   TIM3->CCER1|= TIM3_CCER1_CC2P | TIM3_CCER1_CC2E;\


Только тут уже и смысл не особо понятен. Да и сама библиотека написана так, как будто основной целью было сделать ее как можно менее пригодной для восприятия. Даже для STM32 периферийные библиотеки проще организованы.

_________________
Количество полученного опыта прямо пропорционально выведенному из строя оборудованию....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программный UART на STM8S003
СообщениеДобавлено: 26 сен 2014, 23:36 
Старожил

Зарегистрирован: 18 фев 2013, 14:22
Сообщения: 512
Дело не в IDE, дело в непонимании СИ или в нежелании разбираться.
Первое выпиливается из stm8s_tim3.c, по второму - там и так регистры.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программный UART на STM8S003
СообщениеДобавлено: 27 сен 2014, 00:08 
Старожил
Аватара пользователя

Зарегистрирован: 28 сен 2012, 22:11
Сообщения: 328
Откуда: г.Таганрог/г.Геленджик/г.Одесса
Да Си как раз понимаю, с STM32 так и разбирался. Но при этом у меня навигация в разы удобнее была. Ладно, продолжу в понедельник

_________________
Количество полученного опыта прямо пропорционально выведенному из строя оборудованию....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программный UART на STM8S003
СообщениеДобавлено: 01 окт 2014, 13:53 
Старожил
Аватара пользователя

Зарегистрирован: 28 сен 2012, 22:11
Сообщения: 328
Откуда: г.Таганрог/г.Геленджик/г.Одесса
В общем библиотеку переделал, все скомпилировалось, но ничего не работает. На выводе Tx нет сигнала.

_________________
Количество полученного опыта прямо пропорционально выведенному из строя оборудованию....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программный UART на STM8S003
СообщениеДобавлено: 01 окт 2014, 17:44 
Старожил
Аватара пользователя

Зарегистрирован: 28 сен 2012, 22:11
Сообщения: 328
Откуда: г.Таганрог/г.Геленджик/г.Одесса
Все, запустил. Переделал библиотеку для AVR. Теперь возникла другая проблема. У меня выводы программного USART находятся на PORTC. Там же находится выход на RST внешней периферии. Перед отсылкой данных выставляю высокий уровень на RST. Начинаю передачу. НО, как только начинается передача, состояние выхода меняется на противоположенное по непонятным причинам. При этом, если из функции передачи убрать изменение состояние вывода то состояние RST не меняется. Выводы настроены так:
Код:
  GPIOC->DDR = 1<<7 | 1<<5 | 1<<4;
  GPIOC->CR1 = 1<<7 | 1<<5 | 1<<4;
  GPIOC->CR2 = 0;


Изменение состояния:
Код:
#define W_RST_H GPIOC->ODR |= 1<<4

#define W_RST_L GPIOC->ODR &= ~1<<4

void set_tx_pin_low(){
GPIOC->ODR &= ~1<<5;
}

void set_tx_pin_high(){
GPIOC->ODR |= 1<<5; 
}


В чем может быть проблема?

_________________
Количество полученного опыта прямо пропорционально выведенному из строя оборудованию....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программный UART на STM8S003
СообщениеДобавлено: 01 окт 2014, 19:42 
Старожил
Аватара пользователя

Зарегистрирован: 30 янв 2014, 18:09
Сообщения: 594
Откуда: Киев
Уж лучше не порт целиком, а битбангом. Типа так:
Код:
PORTC5 = 1;

Для этого я нашёл хорошее дополнение к файлу stm8s.h Очень удобно конфигурировать порты и управлять ими.
Выкладываю под спойлером:
Show


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программный UART на STM8S003
СообщениеДобавлено: 03 окт 2014, 11:53 
Старожил
Аватара пользователя

Зарегистрирован: 28 сен 2012, 22:11
Сообщения: 328
Откуда: г.Таганрог/г.Геленджик/г.Одесса
Спасибо. Библиотеку для USART добью, выложу =)

_________________
Количество полученного опыта прямо пропорционально выведенному из строя оборудованию....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программный UART на STM8S003
СообщениеДобавлено: 06 окт 2014, 13:58 
Старожил
Аватара пользователя

Зарегистрирован: 28 сен 2012, 22:11
Сообщения: 328
Откуда: г.Таганрог/г.Геленджик/г.Одесса
Все еще мучаюсь с библиотекой. Передача работает прекрасно, а вот с приемом проблема. Больше одного байта не принимается, точнее при передачи больше одного байта принимается какая-то ересь. Прошу помощи. Архив в проектом прикладываю.


Вложения:
Aero.rar [120.71 Кб]
Скачиваний: 214

_________________
Количество полученного опыта прямо пропорционально выведенному из строя оборудованию....
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программный UART на STM8S003
СообщениеДобавлено: 06 окт 2014, 15:41 
Старожил
Аватара пользователя

Зарегистрирован: 28 сен 2012, 22:11
Сообщения: 328
Откуда: г.Таганрог/г.Геленджик/г.Одесса
Все, разобрался

_________________
Количество полученного опыта прямо пропорционально выведенному из строя оборудованию....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программный UART на STM8S003
СообщениеДобавлено: 06 сен 2015, 18:23 
Здравствуйте!

Зарегистрирован: 06 сен 2015, 18:19
Сообщения: 1
BARS_ писал(а):
Спасибо. Библиотеку для USART добью, выложу =)

с нетерпением ждем:)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программный UART на STM8S003
СообщениеДобавлено: 06 окт 2015, 17:13 
Старожил
Аватара пользователя

Зарегистрирован: 13 май 2010, 01:32
Сообщения: 940
Откуда: Ижевск
https://vk.com/doc-73481857_423913762
вот автор поделился готовым

_________________
Attiny13aПо20р.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программный UART на STM8S003
СообщениеДобавлено: 13 апр 2016, 19:19 
Здравствуйте!

Зарегистрирован: 25 мар 2014, 00:11
Сообщения: 3
А как сделать просто програмный ТХ на скорости 9600? без приёма


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программный UART на STM8S003
СообщениеДобавлено: 13 апр 2016, 20:19 
Старожил

Зарегистрирован: 08 окт 2012, 00:25
Сообщения: 871
На таймере и прерывании... до 115200 и выше можно догнать...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программный UART на STM8S003
СообщениеДобавлено: 13 апр 2016, 21:13 
Старожил

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5120
Аппаратный занят-занят? Если устройство ведущее или протокол обмена иным образом позволяет можно коммутировать аппаратный uart на разные линии
Успешно применял для этого аналоговый шифратор-дешифратор 4052


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

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


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

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


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

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

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