Например TDA7294

Форум РадиоКот • Просмотр темы - Программирование STM8
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Ср апр 24, 2024 00:41:56

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


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 2500 ]     ... , , , 67, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пт апр 08, 2016 12:15:35 
Опытный кот
Аватар пользователя

Карма: 16
Рейтинг сообщений: 170
Зарегистрирован: Вс дек 02, 2012 16:58:33
Сообщений: 827
Откуда: Уже не город Белых гор
Рейтинг сообщения: 0
Я экспериментировал с таким методом.
Вот здесь:
http://forum.easyelectronics.ru/viewtopic.php?f=33&t=20021


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Вс апр 10, 2016 17:18:32 
Электрический кот

Карма: 13
Рейтинг сообщений: 139
Зарегистрирован: Вс сен 25, 2011 19:09:33
Сообщений: 1040
Рейтинг сообщения: 0
Медали: 1
Мявтор 3-й степени (1)
UART с буферами и прерываниями разобрался
Еще такой вопрос
Когда велючен RX receiver можно ли считывать значение этого пина обычным образом? Т.е. Можно ли знать ноль там сейчас или единица?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Ср апр 20, 2016 12:15:27 
Мучитель микросхем
Аватар пользователя

Карма: 1
Рейтинг сообщений: 7
Зарегистрирован: Чт май 14, 2015 15:11:39
Сообщений: 424
Откуда: Саратов
Рейтинг сообщения: 0
Всем привет. В чем разница между функциями GPIO_ReadOutputData() и GPIO_ReadInputData()? Взято из библиотечного файла:
Спойлер/**
* @brief Reads the specified GPIO output data port.
* @note The port must be configured in input mode.
* @param GPIOx : Select the GPIO peripheral number (x = A to I).
* @retval GPIO output data port value.
*/
uint8_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx)
{
return ((uint8_t)GPIOx->ODR);
}

/**
* @brief Reads the specified GPIO input data port.
* @note The port must be configured in input mode.
* @param GPIOx : Select the GPIO peripheral number (x = A to I).
* @retval GPIO input data port value.
*/
uint8_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx)
{
return ((uint8_t)GPIOx->IDR);
}


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Чт апр 21, 2016 15:34:14 
Друг Кота
Аватар пользователя

Карма: 30
Рейтинг сообщений: 155
Зарегистрирован: Пн июл 28, 2008 22:12:01
Сообщений: 3604
Рейтинг сообщения: 0
FireProoF, читать RM на тему портов, Там и найдете различия регистров ODR и IDR ...


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Вс апр 24, 2016 07:31:12 
Мучитель микросхем
Аватар пользователя

Карма: 1
Рейтинг сообщений: 7
Зарегистрирован: Чт май 14, 2015 15:11:39
Сообщений: 424
Откуда: Саратов
Рейтинг сообщения: 0
Всем привет. В stm8s103 UART1 имеет пины: D4 - UART_CK, D5 - UART_TX, D6- UART_RX. Мне нужен D4 для других целей. Можно ли сделать так, чтоб UART не пользовался им?


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Вс апр 24, 2016 19:16:50 
Опытный кот
Аватар пользователя

Карма: 16
Рейтинг сообщений: 170
Зарегистрирован: Вс дек 02, 2012 16:58:33
Сообщений: 827
Откуда: Уже не город Белых гор
Рейтинг сообщения: 1
Control register 3 (UART_CR3)
Bit 3 CLKEN: Clock enable
This bit allows the user to enable the SCLK pin.
0: SLK pin disabled
1: SLK pin enabled


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Вс май 15, 2016 10:01:32 
Родился

Зарегистрирован: Сб май 07, 2016 16:19:58
Сообщений: 13
Рейтинг сообщения: 0
Здравствуйте. Хочу использовать в своем проекте STM8f003. C STM никогда не работал. И не могу найти описание регистров и их назначения. Необходимо UART и SPI. Какие даташиты смотреть? У ATMEL даташиты мне очень понравились, а у STM ничего подобного найти не могу. Все разбросано. Подскажите, дайте пожалуйста ссылки)) И еще такой вопрос, как лучше, проще работать с STM на прямую с регистрами или использовать библиотеки SPL?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Вс май 15, 2016 11:12:24 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 1
Casper17 писал(а):
а у STM ничего подобного найти не могу. Все разбросано. Подскажите, дайте пожалуйста ссылки)) И еще такой вопрос, как лучше, проще работать с STM на прямую с регистрами или использовать библиотеки SPL?

http://www2.st.com/content/st_com/en/pr ... 003f3.html
качать Datasheet, Reference Manual RM0016, Errata Sheet ES0102
в Datasheet информация о конкретном микроконтроллере, типа распиновка, количество флэша, памяти и пр.
В Reference Manual информация о внутренностях (периферия и пр.) на всю линейку микроконтроллеров, потому что периферия у всех представителей линейки однообразна, в отличии от тех же AVR.
В Errata Sheet понятно.
Работать имхо лучше напрямую с регистрами, руководствуясь Reference Manual.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Вс май 15, 2016 12:52:36 
Электрический кот

Карма: 13
Рейтинг сообщений: 139
Зарегистрирован: Вс сен 25, 2011 19:09:33
Сообщений: 1040
Рейтинг сообщения: 1
Медали: 1
Мявтор 3-й степени (1)
Casper17 STM8 не сложнее AVR, нужно только перестроиться на другую логику документации
Про документы вам уже написали
RM0016 описывает все многообразие переферии в линейке STM8S, а даташит на конкретный МК описывает корпуса, пины и то, какая конкретно переферия из всей имеющейся в линейке есть в данном конкретном МК

SPL это уровень абстракции, програмирование на нем не сильно приблизит к пониманию того как работает сам МК. Выбор за вами, но выбрав SPL будьте готовы к тому, что в итоге все равно придете к програмированию регистров, только позже, когда поймете, что с SPL ничего не понимаете) у меня было именно так, правда от SPL я отказался почти сразу


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пн май 23, 2016 14:19:52 
Электрический кот

Карма: 13
Рейтинг сообщений: 139
Зарегистрирован: Вс сен 25, 2011 19:09:33
Сообщений: 1040
Рейтинг сообщения: 1
Медали: 1
Мявтор 3-й степени (1)
пытаюсь запустить 2й канал TIM1 с PWM
затер RM до дыр, но почему-то не получается

что я упускаю?

Спойлер
Код:
   // PC4
   PC_DDR_bit.DDR4 = 1;
   PC_CR1 |= MASK_PC_CR1_C14;

   // TIM1
   TIM1_CR1   = MASK_TIM1_CR1_ARPE;
   TIM1_CR1_bit.CMS   = 0;         // 00 - edge aligned, 01 - center aligned1
   TIM1_CR2   = 0;
   TIM1_IER   = 0;
   //TIM1_EGR   = 0;
   TIM1_CCMR1   = 0;
   TIM1_CCMR2   = MASK_TIM1_CCMR2_OC2PE | MASK_TIM1_CCMR2_OC2FE;
   TIM1_CCMR2_bit.OC2M   = 6;   // 0b110 - PWM mode 1, 0b111 - PWM mode 2
   TIM1_CCMR3   = 0;
   TIM1_CNTRH   = 0;
   TIM1_CNTRL   = 0;
   TIM1_CCER1   = MASK_TIM1_CCER1_CC2NE;
   TIM1_CCER2   = 0;
   TIM1_PSCRH   = 0;
   TIM1_PSCRL   = 0;
   TIM1_ARRH   = 4;   // pwm frequency
   TIM1_ARRL   = 0;
   TIM1_CCR2H   = 1;   // pwm duty
   TIM1_CCR2L   = 0;
   TIM1_BKR   = MASK_TIM1_BKR_MOE | MASK_TIM1_BKR_OSSR;
   TIM1_CR1   |= MASK_TIM1_CR1_CEN;
   TIM1_EGR   |= MASK_TIM1_EGR_UG;


upd. кажется я понял... надо AFR0 поменять для TIM1_CH2 так? как это в IAR делается?
upd. заработало!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Ср июн 01, 2016 11:00:36 
Родился

Зарегистрирован: Сб май 28, 2016 13:35:35
Сообщений: 4
Рейтинг сообщения: 1
Добрый день. Подскажите, правильно ли я понимаю, что в STM8 не все пины можно переключать в push-pull или open-drain режим, так как у некоторых из них он жестко задаётся соответствующей периферией в обход регистра CR1 (нельзя, например, I2C-пины переключить в push-pull даже при отключенном I2C)? В ref. manual на схеме GPIO есть некий сигнал «alternate enable», о котором вообще нигде ничего не поясняется.

upd. Вопрос снят. Всё просто. Оказывается, просто не все пины поддерживают Push-Pull.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Ср июн 01, 2016 11:07:17 
Электрический кот

Карма: 13
Рейтинг сообщений: 139
Зарегистрирован: Вс сен 25, 2011 19:09:33
Сообщений: 1040
Рейтинг сообщения: 1
Медали: 1
Мявтор 3-й степени (1)
смотрите табличку в разделе Pinouts and pin description в даташите на сам МК
там все четко указано какой пин можно в какой режим переключать

так же часто можно это понять по мнемонике на символическом обозначении
например пины I2C обозначаются как (T) - true open drain, что означает:
Цитата:
In the open-drain output column, "T" defines a true open-drain I/O (P-buffer, weak pull-up, and protection diode to VDD are
not implemented).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Ср июн 08, 2016 21:11:43 
Родился

Зарегистрирован: Сб май 28, 2016 13:35:35
Сообщений: 4
Рейтинг сообщения: 0
Пытаюсь теперь закодить на том же STM8L обмен данными с датчиком по I2C1. Вопрос: по какой причине может возникать Arbitration Lost (флаг I2C1_SR2_bit.ARLO), если на шине по определению нет других мастеров? Причём возникнуть он может даже на пустой линии (к портам подключены только подтягивающие резисторы) (иногда, как и должен, выскакивает AF, а иногда - ARLO). Линии SDA и SCL в нуле никто не удерживает (если судить по значениям в регистре IDR в отладчике).
Ещё вопрос: как пользоваться флагом I2C1_CR2_bit.SWRST (software reset)? В документации нигде про него не расписано.
Также неясно, а может ли I2C контроллер вообще работать от fsysclock, «запитанного» от LSI? Ref manual гласит:
Цитата:
The peripheral input clock frequency must be at least: 1 MHz in Standard mode, 4 MHz in Fast mode

То есть при работе контроллера от LSI 38 кГц I2C корректно завести вообще нельзя?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Вс июн 12, 2016 15:11:51 
Друг Кота

Карма: 20
Рейтинг сообщений: 228
Зарегистрирован: Пт сен 13, 2013 13:11:31
Сообщений: 6388
Рейтинг сообщения: 0
Standard mode имеет частоту I2C равную 100кГц, а fast -- 400кГц. Умножать тактовую STM8 не умеют, т.ч. способа из 38кГц тактовой получить 100кГц I2C просто не существует в природе.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Вс июн 12, 2016 16:13:32 
Электрический кот

Карма: 13
Рейтинг сообщений: 139
Зарегистрирован: Вс сен 25, 2011 19:09:33
Сообщений: 1040
Рейтинг сообщения: 0
Медали: 1
Мявтор 3-й степени (1)
Что мещает на время обмена по I2C менять источник тактирования?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Вт июн 14, 2016 14:52:52 
Родился

Зарегистрирован: Сб май 28, 2016 13:35:35
Сообщений: 4
Рейтинг сообщения: 0
Извиняюсь, что не отписался. Проблема оказалась не в I2C контроллере (всё нормально работает от LSI), а в неправильном использовании датчика Am2321. Оказалось, что чтобы его корректно разбудить, нужно обратиться к нему, получить NACK и… перед отправкой стопового бита уронить всю линию (и SDA, и SCL) в 0 на 0.8 мсек. Как вам такое? :roll: Естественно I2C контроллер не даёт просто так порулить пином SDA, наплевав на стандарты шины I2C. Остаётся вручную портами дрыгать, имитируя вышеперечисленные действия. А датчик пробуждать нужно каждый раз, перед каждым считыванием показаний - после чтения он опять засыпает.
a5021 писал(а):
Standard mode имеет частоту I2C равную 100кГц, а fast -- 400кГц. Умножать тактовую STM8 не умеют, т.ч. способа из 38кГц тактовой получить 100кГц I2C просто не существует в природе.
Просто по документации не совсем было понятно, что в том контексте означает это «must». Означало ли это, что при меньшей частоте sysclock просто шину нельзя будет разогнать до 100 и 400 кГц, или же что (вдруг) имеется некая нигде не описанная аппаратная защита, которая при недостаточной частоте весь контроллер сбрасывает/вырубает (multimaster ведь…).
Иными словами, мне подумалось, что, быть может, этот «must» - своего рода «absolute maximum (в данном случае minimum) ratings».
В любом случае, вопрос снят.


Впрочем, было бы всё-таки интересно для общего развития узнать, как пользоваться флагом I2C1_CR2_bit.SWRST (software reset).


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Ср июн 15, 2016 05:26:17 
Друг Кота

Карма: 20
Рейтинг сообщений: 228
Зарегистрирован: Пт сен 13, 2013 13:11:31
Сообщений: 6388
Рейтинг сообщения: 1
А есть ли смысл работать от LSI в этом случае? Я понимаю, что чем ниже частота, тем меньше потребление. Но все операции становятся весьма долгими и в это время процессор потребляет больше, чем если бы он уже давно находился во сне, отработав по-быстрому на высокой частоте.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Вс июн 19, 2016 15:13:58 
Родился
Аватар пользователя

Зарегистрирован: Пт янв 04, 2013 18:28:18
Сообщений: 15
Рейтинг сообщения: 0
Для сброса:
Код:
I2C_CR2_SWRST=1;
I2C_CR2_SWRST=0;


//и настраиваем модуль заново

Код:
I2C_FREQR_FREQ = 16;
I2C_CR1_PE = 0;
I2C_CCRH_F_S = 0;
ccr = 80;
I2C_TRISER_TRISE = 16+1;
I2C_CCRL = ccr & 0xFF;
I2C_CCRH_CCR = (ccr >> 8) & 0x0F;
I2C_CR1_PE = 1;
I2C_CR2_ACK = 1;


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пн июл 11, 2016 21:13:34 
Родился

Зарегистрирован: Вт янв 06, 2015 14:12:15
Сообщений: 4
Рейтинг сообщения: 0
Знатоки STM проясните ремонтнику, можно ли STM8S прошить также легко и бесплатно :)) как скажем atmega32 понипрогом через RS232.
Если да то какая прога нужна, и какая схема подключения?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пн июл 11, 2016 22:39:29 
Друг Кота

Карма: 20
Рейтинг сообщений: 228
Зарегистрирован: Пт сен 13, 2013 13:11:31
Сообщений: 6388
Рейтинг сообщения: 0
Совсем бесплатно не получится, но почти бесплатно можно.

Изображение


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 2500 ]     ... , , , 67, , , ...  

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


Кто сейчас на форуме

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


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

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


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y