реклама на сайте
подробности

 
 
11 страниц V  « < 9 10 11  
Reply to this topicStart new topic
> STM8, кто нибудь использует?
Harbinger
сообщение Dec 12 2012, 03:33
Сообщение #151


старший лаборант
******

Группа: Свой
Сообщений: 2 702
Регистрация: 30-09-05
Из: ЮЗЖД
Пользователь №: 9 097



Просто так, скорее всего, нет.
Но есть намёк, что из любого "discovery" можно сделать полноценный ST-Link. Пока что недосуг проверить такую гипотезу: по "board ident" определяется, как ему работать: JTAG, SWD, SWIM или всё вместе.
Схемы отладчиков во всех дискавери почти идентичны, в Вашем ките, подозреваю, тоже.


--------------------
Китайская комплектация - европейское качество! ;)
Go to the top of the page
 
+Quote Post
Alex_Pol
сообщение May 9 2013, 15:58
Сообщение #152


Частый гость
**

Группа: Свой
Сообщений: 192
Регистрация: 23-03-05
Из: Украина. Днепропетровск
Пользователь №: 3 626



Подскажите, есть ли на STM8 какой нибудь дизассемблер? Думал, можно в STVD, по аналогии с AVR студией, но что то не получается.
Go to the top of the page
 
+Quote Post
nx6310
сообщение Jun 25 2013, 08:32
Сообщение #153


Участник
*

Группа: Участник
Сообщений: 72
Регистрация: 28-06-10
Пользователь №: 58 174



Здравствуйте, уважаемые форумчане! Я использую stm8af6288 +STVD+Cosmic. Я включил прерывания по переполнению таймера TIM2. В файле stm8a_lib.с я попадаю почему то в прерывание EXTI_PORTB_IRQHandler вместо TIM2_CAP_COM_IRQHandler. Поменяв местами эти прерывания в файле stm8_interrupt_vector.c все вроде заработало, прерывания по таймеру переходили на функцию TIM2_CAP_COM_IRQHandler. Затем я включил внешнее прерывание по порту В. Теперь при возникновении обоих прерываний я попадаю в функцию TIM2_CAP_COM_IRQHandler. Такое чувство что по всем прерываниям я перехожу в один и тот же адрес обработки прерывания.
Может кто скалкивался с этим? С данным процом работаю недавно, много пока не знаю.
файл D:\projects\stm8_interrupt_vector.c
Код
#include "stm8a_it.h"

extern void @near _stext(); /* startup routine */

void @near (* const _vectab[])() =
{
  
  (void @near (*)())0x8200,
  _stext, /* RESET */
  
  (void @near (*)())0x8200,
  TRAP_IRQHandler, /* TRAP - Software interrupt */
  
  (void @near (*)())0x8200,
  TLI_IRQHandler, /* irq0 - External Top Level interrupt (TLI) */
  
  (void @near (*)())0x8200,
  AWU_IRQHandler, /* irq1 - Auto Wake Up from Halt interrupt */

  (void @near (*)())0x8200,
  CLK_IRQHandler, /* irq2 - Clock Controller interrupt */

  (void @near (*)())0x8200,
  EXTI_PORTA_IRQHandler, /* irq3 - External interrupt 0 (GPIOA) */

  (void @near (*)())0x8200,
  EXTI_PORTB_IRQHandler, /* irq4 - External interrupt 1 (GPIOB) */

  (void @near (*)())0x8200,
  EXTI_PORTC_IRQHandler, /* irq5 - External interrupt 2 (GPIOC) */

  (void @near (*)())0x8200,
  EXTI_PORTD_IRQHandler, /* irq6 - External interrupt 3 (GPIOD) */

  (void @near (*)())0x8200,
  EXTI_PORTE_IRQHandler, /* irq7 - External interrupt 4 (GPIOE) */

  (void @near (*)())0x8200,
  CAN_RX_IRQHandler, /* irq8 - CAN Rx interrupt */

  (void @near (*)())0x8200,
  CAN_TX_IRQHandler, /* irq9 - CAN Tx/ER/SC interrupt */

  (void @near (*)())0x8200,
  SPI_IRQHandler, /* irq10 - SPI End of transfer interrupt */

  (void @near (*)())0x8200,
  TIM1_UPD_OVF_TRG_BRK_IRQHandler, /* irq11 - TIM1 Update/Overflow/Trigger/Break interrupt */

  (void @near (*)())0x8200,
  TIM1_CAP_COM_IRQHandler, /* irq12 - TIM1 Capture/Compare interrupt */

  (void @near (*)())0x8200,
TIM2_UPD_OVF_BRK_IRQHandler, /* irq13 - TIM2 Update/Overflow/Break interrupt  */

  (void @near (*)())0x8200,
  TIM2_CAP_COM_IRQHandler, /* irq14 - TIM2 Capture/Compare interrupt */

  (void @near (*)())0x8200,
  TIM3_UPD_OVF_BRK_IRQHandler, /* irq15 - TIM3 Update/Overflow/Break interrupt */

  (void @near (*)())0x8200,
  TIM3_CAP_COM_IRQHandler, /* irq16 - TIM3 Capture/Compare interrupt */

  (void @near (*)())0x8200,
  LINUART_TX_IRQHandler, /* irq17 - LINUART Tx complete interrupt */

  (void @near (*)())0x8200,
  LINUART_RX_IRQHandler, /* irq18 - LINUART Rx interrupt */

  (void @near (*)())0x8200,
  I2C_IRQHandler, /* irq19 - I2C interrupt */

  (void @near (*)())0x8200,
  USART_TX_IRQHandler, /* irq20 - USART/LINUART1 Tx interrupt */

  (void @near (*)())0x8200,
  USART_RX_IRQHandler, /* irq21 - USART/LINUART1 Rx interrupt */

  (void @near (*)())0x8200,
  ADC_IRQHandler, /* irq22 - ADC1/ADC end of conversion interrupt */

  (void @near (*)())0x8200,
  TIM4_UPD_OVF_IRQHandler, /* irq23 - TIM4 Update/Overflow interrupt */

  (void @near (*)())0x8200,
  EEPROM_EEC_IRQHandler, /* irq24 - FLASH interrupt */


};

Go to the top of the page
 
+Quote Post
Jatagan
сообщение Nov 16 2016, 22:04
Сообщение #154


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 11-07-05
Пользователь №: 6 687



Только начал юзать STM8. Перепиливаю с AVR под STM8.

Вся проблема в AVR. Вылезла в 2014 году... До этого, а конкретно с 2009 года проблем не было, совсем...
Одно и тоже изделие, штампуется серийно с 2010, а с 2009 год отработал прототип. Выполняет функцию УСО, и по RS485 связана с ПК. Везде гальванразвязка, как с картами расширения, так и в конвертере. Несколько источников питания (сеть питается отдельно, поле отдельно, мало того, 220В подается на промежуточные реле, сухой контакт от отдельного БП через оптроны на МК через резисторы), экранированные кабели, короче, все по взрослому. И все было хорошо и в AVR-ах я души не чаял, считал их идеальными контроллерами, и на то были основания, до 2014 года...

Суть проблемы: Периодически перестает работать UART, причем только на передачу, прием проходит, обрабатывается, программа не сбоит, в карты расширение данные забрасывает, но, TxD молчит, как рыба об лед. Помогает только полная перезагрузка. Видимо новым AVR-ам не нравится как гупают пускатели... Причем, контроллеры, которые были куплены до 2014 работают стабильно, годами, в этом же устройстве и в тех же условиях.

Просматривая ветку, заметил холивар на предмет AVR против STM8. Улыбнуло, особенно когда обсуждали производительность... А чего она стоит, эта производительность, если железяка не надежна, и боится луюбого чиха... Впрочем, для домашнего применения самое то.

Да, кстати, сторожевой таймер на AVR-х так себе, зависает наглухо, пришлось сделать на 555 отдельный супервазер.

Схему и печатку пришлось шибко переработать... Усложнив ее... Здорово усложнив...

По этой причине перехожу на STM8S. Производитель обещает работоспособность в условиях максимально приближенным к концу света))) Проверим, в ПСУ есть такие условия!

Посмотрим, на сколько STM8-ка надежна.
Go to the top of the page
 
+Quote Post
Эдди
сообщение Nov 17 2016, 06:38
Сообщение #155


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(Jatagan @ Nov 17 2016, 01:04) *
Посмотрим, насколько STM8-ка надежна.

Вполне надежна. Но лучше уж сразу переползать на 32-битные STM32. Скажем, дешевый STM32F030 — отличная замена тем же STM8S003 (цена примерно одинакова), но с кучей плюшек впридачу. Еще советую обратить внимание на STM32F042: у него тактирование CAN и USB разнесено, поэтому это чуть ли не единственный дешевый 32-битный МК, который можно по USB подключить к компьютеру и работать с CAN-шиной.
А учитывая то, что при уникальном или мелкосерийном производстве вопрос цены компонентов обычно вообще не стоит, то можно сразу на STM32F4xx, а то и еще покруче что-нибудь.

STM8 же хороши лишь в условиях крупносерийного производства чего-нибудь элементарного (см. ибей со всеми этими термометрами, вольт-амперметрами и прочими штукенциями на STM8S003), когда цена комплектующих уже имеет ценообразующий фактор для всего изделия.

Сообщение отредактировал Эдди - Nov 17 2016, 06:38
Go to the top of the page
 
+Quote Post
vladec
сообщение Nov 17 2016, 07:54
Сообщение #156


Профессионал
*****

Группа: Свой
Сообщений: 1 167
Регистрация: 3-10-05
Из: Москва
Пользователь №: 9 158



Цитата
Но лучше уж сразу переползать на 32-битные STM32. Скажем, дешевый STM32F030 — отличная замена тем же STM8S003 (цена примерно одинакова)

Тут не все так просто. Помимо цены вопрос плотности кода на классе решаемых задач, то есть затрат программной памяти. На задачах логического программирования восьмибитник будет иметь плотность кода в разы выше тридцатидвухбитника. Если в задаче измериловка с матобработкой, тогда другое дело. А то нашим программистам довелось переводить программу для промконтроллера с Силиконовского восьмибиника (MCS-51) на STM32 (CortecsM4), так объем требуемого флеша увеличился чуть не на порядок
Go to the top of the page
 
+Quote Post
rudy_b
сообщение Nov 18 2016, 05:16
Сообщение #157


Знающий
****

Группа: Свой
Сообщений: 888
Регистрация: 25-09-08
Из: Питер
Пользователь №: 40 458



Пришлось решить несколько задач на Stm8L. В принципе нормальный проц, но в нем очень много баг, в том числе и недокументированных, борьба с которыми занимает массу времени и отнюдь не всегда может закончится победой - очень внимательно читайте errata прежде чем использовать, особенно I2C - его выходы НЕ имеют встроенных резисторов подтяжки. Ну и с распределением ресурсов и ног серьезный напряг. В этом смысле проц серьезно недоделан, и, похоже, брошен "как есть".

Но для простых работ с битами и АЦП вполне подходит.
Go to the top of the page
 
+Quote Post
Эдди
сообщение Nov 18 2016, 06:13
Сообщение #158


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(vladec @ Nov 17 2016, 10:54) *
нашим программистам довелось переводить программу для промконтроллера с Силиконовского восьмибиника (MCS-51) на STM32 (CortecsM4), так объем требуемого флеша увеличился чуть не на порядок

Наверняка они вместо человеческого программирования использовали какой-нибудь калокуб. А то еще и на С++ писали. Понятное дело, кода будет толпа.
Если еще и вычисления с плавающей точкой впихнуть вместо фиксированной…

Примерно одинаковые вещи на STM8S105 и STM32F103 у меня почти одинаковый объем флеша занимают (правда, на STM32 я для коммуникаций USB использую, а на STM8 по понятным причинам UART через переходник на PL2303).

Цитата(rudy_b @ Nov 18 2016, 08:16) *
в нем очень много баг, в том числе и недокументированных

Странно. Камень довольно-таки старый, и errata должна быть полной.
Но да: чем старей камень, тем больше в нем всяких недопиленностей. Чего только стоит толщина ерраты на STM32F103... А уж долбанутость с невозможностью установить внутренние подтяжки при работе пина на выход! Ну и I2C: что у STM32F103, что у ранних STM8 интерфейс настолько богат приколами, что errata по этому поводу вполне приличный объем занимает. Благо, при работе в "обычном" режиме сложностей не возникает. Но хотелось бы, конечно, чтобы I2C был так же прозрачен, как, скажем, SPI — чтобы в процессе приема-передачи не надо было вручную регистры дергать!

То-то китайцы на STM8, имеющем аппаратный I2C, занимаются ногодрыгом: то ли расшибли себе лоб об errata, то ли тупо скопипастили первое попавшееся решение (второе, кстати, даже более вероятно — видел я код этих самых китайцев…).
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Nov 20 2016, 16:37
Сообщение #159


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(Эдди @ Nov 18 2016, 09:13) *
То-то китайцы на STM8, имеющем аппаратный I2C, занимаются ногодрыгом

Так если он меньше занимает места laughing.gif то почему бы и нет
Go to the top of the page
 
+Quote Post
Эдди
сообщение Nov 20 2016, 21:33
Сообщение #160


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Не может I2C ногодрыгом занимать меньше места. Я уж не говорю о диких паузах...
Go to the top of the page
 
+Quote Post
Andreas1
сообщение Nov 21 2016, 08:18
Сообщение #161


Местный
***

Группа: Свой
Сообщений: 446
Регистрация: 12-03-06
Из: Москва
Пользователь №: 15 142



Цитата(Эдди @ Nov 21 2016, 00:33) *
Не может I2C ногодрыгом занимать меньше места. Я уж не говорю о диких паузах...

C учетом обширной ерраты вполне может. Особенно, если есть обнаружение подвиса шины и ее сброс хотя бы 9 холостыми клоками.
Go to the top of the page
 
+Quote Post

11 страниц V  « < 9 10 11
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th April 2024 - 05:40
Рейтинг@Mail.ru


Страница сгенерированна за 0.01475 секунд с 7
ELECTRONIX ©2004-2016