Например TDA7294

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

Текущее время: Пт ноя 14, 2025 09:39:11

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


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



Начать новую тему Ответить на тему  [ Сообщений: 2579 ]     ... , , , 18, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Чт апр 24, 2014 13:09:01 
Опытный кот

Карма: 3
Рейтинг сообщений: -47
Зарегистрирован: Пт авг 12, 2011 09:14:27
Сообщений: 833
Откуда: Млечный путь/Земля/РФ/Екатеринбург
Рейтинг сообщения: 0
HHIMERA писал(а):
В STM8L многие мелкие дисплеи можно уже мутить хардварно

Поясните чуть больше, не понял. Имеется в виду поддержка LCD?
Вольтметр-модуль можно и купить, тут нет особого смысла изобретать велосипед.

HHIMERA писал(а):
вместо 2313 можно купить две STM8S003F3

Всё зависит от количества, нюансы есть и там и там
1. объем AVR нам, например, 200 шт в месяц (на изделие), в том корпусе который нам надо, что бы нам привезли удобный нам корпус из стмов,нужно брать около тыщи этих самых эстм
2. срок поставки авр в течении недели поставка после оплаты, стм от 5 до 8 недель ожидания, но бюджет жестко поделён, и я не могу, например, залезть в ФОТ для оплаты 1килоштук стм, разве что только в свою ЗП, что мне не надо.
3. для перехода на другой процессор нужно:
3.1. переписать код, гдето легко, гдето можно умом пойти.
3.2. отрассировать новые платы
3.3. заплатить за изготовление новых плат (подготовка, шаблоны)
3.4. монтажницам нужно время что бы всё запомнить, конечно, есть бумаги, документация, но при большом объеме лишний раз читать бумажку не совсем хорошо
3.5. поддержка потребуется и новым платам.
3.6. пункты 3.1-3.5 кто то должен делать

PS осталось поправить 39 ерроров хардваре зависимых :shock:

_________________
Разработал:
-BLDC
-ФУОЗ/МПСЗ
-SMART BMS
-ECU/EDC на STM32F4(43%)+CPLD(57%)
-Моноинжектор на ATSAMD20G16
-контроллер эффектов для RGB LED ленты
-умные часы/обратный счет/секундомер
-устройство измерения емкости АКБ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Чт апр 24, 2014 13:55:18 
Друг Кота

Карма: -18
Рейтинг сообщений: 29
Зарегистрирован: Вс дек 05, 2010 06:10:34
Сообщений: 4583
Откуда: ЮВ
Рейтинг сообщения: 0
Если всё так плохо... то и не вижу смысла заморачиваться... При переходе с STM на АВР проблем было бы не меньше...
В общем... тут обсуждать то и нечего...

Цитата:
Имеется в виду поддержка LCD?

Не только чисто стекляшки... Те же HD44780... мелкие от мобилок... LED семисегментники... типа MT10t7 и пр. ...
DMA и таймер в STM8L делают чудеса...

_________________
"Я не даю готовых решений, я заставляю думать!"(С)


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

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
Цитата:
в том корпусе который нам надо, что бы нам привезли удобный нам корпус из стмов,нужно брать около тыщи

стало интересно - какие же это корпуса, имхо стм SSOP20 намного удобнее чем авр SOIC20


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пт апр 25, 2014 10:53:48 
Опытный кот

Карма: 3
Рейтинг сообщений: -47
Зарегистрирован: Пт авг 12, 2011 09:14:27
Сообщений: 833
Откуда: Млечный путь/Земля/РФ/Екатеринбург
Рейтинг сообщения: 0
HHIMERA писал(а):
Если всё так плохо... то и не вижу смысла заморачиваться... При переходе с STM на АВР проблем было бы не меньше...
В общем... тут обсуждать то и нечего...

Есть ещё такая штука, как унификация используемой элементной базы.

В разовом устройстве или хобби без разницы какой проц.

_________________
Разработал:
-BLDC
-ФУОЗ/МПСЗ
-SMART BMS
-ECU/EDC на STM32F4(43%)+CPLD(57%)
-Моноинжектор на ATSAMD20G16
-контроллер эффектов для RGB LED ленты
-умные часы/обратный счет/секундомер
-устройство измерения емкости АКБ


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пт апр 25, 2014 11:49:24 
Друг Кота

Карма: -18
Рейтинг сообщений: 29
Зарегистрирован: Вс дек 05, 2010 06:10:34
Сообщений: 4583
Откуда: ЮВ
Рейтинг сообщения: 0
pcb писал(а):
Есть ещё такая штука, как унификация используемой элементной базы.

Дык... тады всё не в пользу АВР...

_________________
"Я не даю готовых решений, я заставляю думать!"(С)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пт апр 25, 2014 16:19:46 
Опытный кот

Карма: 3
Рейтинг сообщений: -47
Зарегистрирован: Пт авг 12, 2011 09:14:27
Сообщений: 833
Откуда: Млечный путь/Земля/РФ/Екатеринбург
Рейтинг сообщения: 0
HHIMERA писал(а):
тады всё не в пользу АВР

Самая короткая дорога, та, которую знаешь - народная мудрость. :tea:

Удачных выходных.

_________________
Разработал:
-BLDC
-ФУОЗ/МПСЗ
-SMART BMS
-ECU/EDC на STM32F4(43%)+CPLD(57%)
-Моноинжектор на ATSAMD20G16
-контроллер эффектов для RGB LED ленты
-умные часы/обратный счет/секундомер
-устройство измерения емкости АКБ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Программирование STM8
СообщениеДобавлено: Вт май 13, 2014 20:14:58 
Потрогал лапой паяльник
Аватар пользователя

Карма: 19
Рейтинг сообщений: 8
Зарегистрирован: Чт окт 31, 2013 10:54:32
Сообщений: 384
Рейтинг сообщения: 0
Изучаю stm8, добрался до прерываний..

Прочитал статью http://we.easyelectronics.ru/STM8/8l-ku ... -exti.html , решил попробовать подобное сделать на stm8.

Плата такая http://www.st.com/web/catalog/tools/FM1 ... 3/PF252276

Ну и вопрос как объявить внешнее прерывания правильно. Или скиньте пример.
И еще как сбросить флаг внешнего прерывания, или тут не надо?

Есть только прерывания от портов: EXTI0.....EXTI4

Таблица векторов
Спойлер
Код:
/*----------
 *      Interrupt vector numbers
 *----------*/
#define AWU_vector                           0x03
#define CLK_CSS_vector                       0x04
#define CLK_SWITCH_vector                    0x04
#define beCAN_FMP_vector                     0x0A
#define beCAN_FULL_vector                    0x0A
#define beCAN_FOVR_vector                    0x0A
#define beCAN_EWGF_vector                    0x0B
#define beCAN_EPVF_vector                    0x0B
#define beCAN_BOFF_vector                    0x0B
#define beCAN_LEC0_vector                    0x0B
#define beCAN_LEC1_vector                    0x0B
#define beCAN_LEC2_vector                    0x0B
#define beCAN_RQCP0_vector                   0x0B
#define beCAN_RQCP1_vector                   0x0B
#define beCAN_RQCP2_vector                   0x0B
#define beCAN_WKUI_vector                    0x0B
#define SPI_TXE_vector                       0x0C
#define SPI_RXNE_vector                      0x0C
#define SPI_WKUP_vector                      0x0C
#define SPI_MODF_vector                      0x0C
#define SPI_OVR_vector                       0x0C
#define SPI_CRCERR_vector                    0x0C
#define TIM1_OVR_UIF_vector                  0x0D
#define TIM1_CAPCOM_BIF_vector               0x0D
#define TIM1_CAPCOM_TIF_vector               0x0D
#define TIM1_CAPCOM_CC1IF_vector             0x0E
#define TIM1_CAPCOM_CC2IF_vector             0x0E
#define TIM1_CAPCOM_CC3IF_vector             0x0E
#define TIM1_CAPCOM_CC4IF_vector             0x0E
#define TIM1_CAPCOM_COMIF_vector             0x0E
#define TIM2_OVR_UIF_vector                  0x0F
#define TIM2_CAPCOM_TIF_vector               0x10
#define TIM2_CAPCOM_CC1IF_vector             0x10
#define TIM2_CAPCOM_CC2IF_vector             0x10
#define TIM2_CAPCOM_CC3IF_vector             0x10
#define TIM3_OVR_UIF_vector                  0x11
#define TIM3_CAPCOM_TIF_vector               0x12
#define TIM3_CAPCOM_CC1IF_vector             0x12
#define TIM3_CAPCOM_CC2IF_vector             0x12
#define TIM3_CAPCOM_CC3IF_vector             0x12
#define UART1_T_TXE_vector                   0x13
#define UART1_T_TC_vector                    0x13
#define UART1_R_RXNE_vector                  0x14
#define UART1_R_OR_vector                    0x14
#define UART1_R_IDLE_vector                  0x14
#define UART1_R_PE_vector                    0x14
#define UART1_R_LBDF_vector                  0x14
#define I2C_SB_vector                        0x15
#define I2C_ADDR_vector                      0x15
#define I2C_ADD10_vector                     0x15
#define I2C_STOPF_vector                     0x15
#define I2C_BTF_vector                       0x15
#define I2C_WUFH_vector                      0x15
#define I2C_RXNE_vector                      0x15
#define I2C_TXE_vector                       0x15
#define I2C_BERR_vector                      0x15
#define I2C_ARLO_vector                      0x15
#define I2C_AF_vector                        0x15
#define I2C_OVR_vector                       0x15
#define UART3_T_TXE_vector                   0x16
#define UART3_T_TC_vector                    0x16
#define UART3_R_RXNE_vector                  0x17
#define UART3_R_OR_vector                    0x17
#define UART3_R_IDLE_vector                  0x17
#define UART3_R_PE_vector                    0x17
#define UART3_R_LBDF_vector                  0x17
#define UART3_R_LHDF_vector                  0x17
#define ADC2_AWDG_vector                     0x18
#define ADC2_EOC_vector                      0x18
#define TIM4_OVR_UIF_vector                  0x19
#define FLASH_EOP_vector                     0x1A
#define FLASH_WR_PG_DIS_vector               0x1A


PS... нашел статью, так можно делать? http://blog.mark-stevens.co.uk/2012/08/ ... the-stm8s/


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Чт май 15, 2014 13:19:41 
Потрогал лапой паяльник
Аватар пользователя

Карма: 19
Рейтинг сообщений: 8
Зарегистрирован: Чт окт 31, 2013 10:54:32
Сообщений: 384
Рейтинг сообщения: 0
Как установить библиотеку STM8 Firmware library в IAR? :(


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

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
Посмотреть как сделано в готовом шаблоне или воспользоваться шаблоном.
Цитата:
Наипростейший путь создания нового проекта - это воспользоваться шаблоном-примером. В каждом архиве периферийной библиотеки имеется такой пример, который после разархивирования находится в папке ProjectSTM8S_StdPeriph_TemplateEWSTM8.

http://www.compel.ru/lib/ne/2013/8/8-st ... srede-iar/


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Чт май 15, 2014 18:23:04 
Потрогал лапой паяльник
Аватар пользователя

Карма: 19
Рейтинг сообщений: 8
Зарегистрирован: Чт окт 31, 2013 10:54:32
Сообщений: 384
Рейтинг сообщения: 0
Не могу разобраться с внешними прерываниями, уже третий день мучаюсь.. При нажатии на кнопку меняет свое состояние светодиод.

платка такая http://www.st.com/st-web-ui/static/acti ... 040810.pdf
Спойлер
Код:
#include <intrinsics.h>
#include <iostm8s103f3.h>

#pragma vector = 8
__interrupt void EXTI_PORTB_IRQHandler(void)
{
    PD_ODR_bit.ODR7 = 1;     
}


void main()
{
  __disable_interrupt();
  //настройка led
  PD_DDR_bit.DDR0=1;
  PD_ODR_bit.ODR0=0;
  PD_CR1_bit.C10=1;
  //настройка кнопки
  PB_DDR_bit.DDR7=0;
  PB_CR1_bit.C17=0;
  PB_CR2_bit.C27=1;
 
  EXTI_CR1_PBIS=0;
  EXTI_CR2_TLIS=0;
   __enable_interrupt();
   while (1)
   {
      __wait_for_interrupt();
   }
}


Помогите исправить ошибку. Где что не так.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Чт май 15, 2014 18:52:13 
Друг Кота

Карма: -18
Рейтинг сообщений: 29
Зарегистрирован: Вс дек 05, 2010 06:10:34
Сообщений: 4583
Откуда: ЮВ
Рейтинг сообщения: 0
Во-первых... Данный МК не очень подходит для обучения... ресурс флэш мал...
Во-вторых... настраивается PD_ODR_bit.ODR0 ... а в прерывании юзается PD_ODR_bit.ODR7...

_________________
"Я не даю готовых решений, я заставляю думать!"(С)


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

Карма: 19
Рейтинг сообщений: 8
Зарегистрирован: Чт окт 31, 2013 10:54:32
Сообщений: 384
Рейтинг сообщения: 0
HHIMERA писал(а):
Во-вторых... настраивается PD_ODR_bit.ODR0 ... а в прерывании юзается PD_ODR_bit.ODR7...


Исправил. Но все ровно не работает. Походу неправильно настроил регистры отвечающие за прерывания. Перевел я с даташипа:

Эти биты можно записать только тогда, когда I1 и I0 в регистре CCR оба установлены в 1 (уровень 3).

СпойлерBits 7:6PDIS[1:0]:
Port D external interrupt sensitivity bits
These bits can only be written when I1 and I0 in the CCR register are both set to 1 (level 3).
They define the sensitivity of Port D external interrupts.
00: Falling edge and low level
01: Rising edge only
10: Falling edge
....


Может из за этого?


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

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 0
а пример из SPL работает?
Цитата:
This example provides a short description of how to use the EXTI peripheral:
- Configuration of External Interrupt / Falling edge and TLI
- LEDs are toggling at each interrupt detection


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пт май 16, 2014 08:04:15 
Потрогал лапой паяльник
Аватар пользователя

Карма: 19
Рейтинг сообщений: 8
Зарегистрирован: Чт окт 31, 2013 10:54:32
Сообщений: 384
Рейтинг сообщения: 0
oleg110592 писал(а):
а пример из SPL работает?


Тыкните носом как кота, где пример этот можно найти..


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пт май 16, 2014 09:21:53 
Друг Кота
Аватар пользователя

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 1
stsw-stm8069.zip\STM8S_StdPeriph_Lib_V2.1.0\Project\STM8S_StdPeriph_Examples\EXTI\EXTI_InterruptPriority\
отсюда http://www.st.com/web/en/catalog/tools/PF258009


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пт май 16, 2014 10:28:27 
Потрогал лапой паяльник
Аватар пользователя

Карма: 19
Рейтинг сообщений: 8
Зарегистрирован: Чт окт 31, 2013 10:54:32
Сообщений: 384
Рейтинг сообщения: 0
oleg110592 писал(а):
stsw-stm8069.zip\STM8S_StdPeriph_Lib_V2.1.0\Project\STM8S_StdPeriph_Examples\EXTI\EXTI_InterruptPriority\


Работает. Эта же программа изначально залита в дискавери?

И написано с использованием библиотеки. А меня интересует код без использования библиотеки, то есть работа с битами и регистрами.


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

Карма: 32
Рейтинг сообщений: 482
Зарегистрирован: Сб сен 10, 2011 17:46:25
Сообщений: 3832
Рейтинг сообщения: 1
далее на непонятной функции SPL правой кнопкой мыши:
Изображение
смотрим, например для порта B как выглядит внутри:
Код:
        EXTI->CR1 &= (uint8_t)(~EXTI_CR1_PBIS);
        EXTI->CR1 |= (uint8_t)((uint8_t)(SensitivityValue) << 2);

где также смотрим:
Код:
#define EXTI_CR1_PBIS ((uint8_t)0x0C) /*!< PORTB external interrupt sensitivity bits mask */
EXTI_SENSITIVITY_FALL_ONLY = (uint8_t)0x02, /*!< Interrupt on Falling edge only */

и так далее
все это копируем себе в проект и получаем
Цитата:
код без использования библиотеки, то есть работа с битами и регистрами


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пт май 16, 2014 17:37:23 
Потрогал лапой паяльник
Аватар пользователя

Карма: 19
Рейтинг сообщений: 8
Зарегистрирован: Чт окт 31, 2013 10:54:32
Сообщений: 384
Рейтинг сообщения: 0
oleg110592 писал(а):
далее на непонятной функции SPL правой кнопкой мыши:


Спасибо! Разобрался! Заработало :) :))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Пт май 23, 2014 23:53:03 
Встал на лапы
Аватар пользователя

Зарегистрирован: Сб окт 20, 2012 14:07:16
Сообщений: 124
Рейтинг сообщения: 0
Столкнулся с маленькой проблемой. Написал код термометра 1-wire для stm8s103. Задержки по прерываниям таймера 2:
Спойлер
Код:
#pragma vector=TIM2_OVR_UIF_vector
__interrupt void TIM2_OVF_UIF_handler (void)
{
    if (rdflg)
    {
        PINO_1W=DWN;
        asm("nop");
        PINO_1W=UP;
        asm("nop");
        owbit=0;
        if (PINI_1W)
            owbit=1;
        rdflg=0;
    }
    if (wrflg)
    {
        PINO_1W=UP;
        wrflg=0;
    }
    TIM2_CR1_CEN=0;
    TIM2_SR1_UIF=0;
}

void cpu_init()
{
    //настройка таймера для таймингов 1-wire
    TIM2_PSCR=2; // 2000000/4 => 2 мкс
    TIM2_IER_UIE=1;
    TIM2_CR1_CEN=0;
    //включение приоритета прерываний (у tim2 - выше)
    CPU_CCR_I0=1;
    CPU_CCR_I1=0;
}

bool OneWire_Reset (void)
{
    TIM2_CNTRH=255;
    TIM2_CNTRL=255-250; //500 мкс
    wrflg=1;
    TIM4_IER_UIE=0; //отключаем прерывания динамической индикации
    TIM2_CR1_CEN=1;
    PINO_1W=DWN; //даем импульс reset
    TIM4_IER_UIE=1; //включаем прерывания динамической индикации
    while (wrflg);
    TIM2_CNTRH=255;
    TIM2_CNTRL=255-30;
    wrflg=1;
    TIM2_CR1_CEN=1;
    while (wrflg); //ждем 60 мкс
    if (PINI_1W)
        return 0; //если нет presence
    else
    {
        TIM2_CNTRH=255;
        TIM2_CNTRL=255-210;
        wrflg=1;
        TIM2_CR1_CEN=1;
        while (wrflg); //ждем еще 420 мкс
        if (PINI_1W)
            return 1;
        else
            return 0;
    }
}

Так вот, первый Reset не проходит: получается короткий (~100 мкс). А дальше все работает как часы. Пробовал TIM2_CNTRL грузить первым - та же ерунда. Знатоки stm, помогите, плиз!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Программирование STM8
СообщениеДобавлено: Сб май 24, 2014 00:18:03 
Друг Кота

Карма: -18
Рейтинг сообщений: 29
Зарегистрирован: Вс дек 05, 2010 06:10:34
Сообщений: 4583
Откуда: ЮВ
Рейтинг сообщения: 0
При инициализации таймера нужно установить TIM_EGR_UG... чтобы новые значения загрузились в регистры таймера из регистров предзагрузки...

_________________
"Я не даю готовых решений, я заставляю думать!"(С)


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

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


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

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


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

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


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