|
|
  |
Проблемы с STM8 |
|
|
|
May 19 2010, 17:58
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Проблема состоит в конфигурации портов В/В. Имею контроллер STM8S103K. Для начала решил попробовать использовать порт как обычный счетчик и посмотреть на нем сигналы. Для этого выбрал PORTB. Сконфигуриловал его как порт вывода. В бесконечном цикле наращиваю счетчик на 1 Код 1$: inc PB_ODR jra 1$ Смотрю сигналы на выводах порта. А сигналов там вовсе и нет. На паре выводов низкий уровень (true open drain), на остальных - высокий. Попробовал использовать другой порт - PORTC. Абсолютно все то же самое. Взял третий - PORTD. Вроде и работает, но не совсем. На разрядах 0, 7 высокий уровень, на остальных как и положено - меандр. Попробовал чуть усложнить код Код 1$: inc PB_ODR mov PD_ODR, PB_ODR jra 1$ Абсолютно ничего не изменилось. На разрядах порта B постоянные уровни, на разрядах 1-6 порта D - меандр. Вот и ломаю голову - что я сделал не так? Смотрел фирменные библиотеки, каких-то особых хитростей по конфигурации портов не увидел. Можно предположить, что я при пайке спалил выходы портов. Но это маловероятно. На всякий случай решил собрать еще одну платку с контроллером и посмотреть что будет. PS: А контроллер мне нравится все больше и больше. Вот только бы заставить его работать нормально.
Сообщение отредактировал _Bill - May 19 2010, 18:07
|
|
|
|
|
May 19 2010, 18:37
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Цитата(scifi @ May 19 2010, 22:31)  IMHO, нужно, чтобы счётчик крутился во внутренней памяти, а наружу выводить копию счётчика. И так тоже делал, разницы нет.
|
|
|
|
|
May 20 2010, 09:14
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Цитата(Dog Pawlowa @ May 20 2010, 10:37)  Так выложите, как Вы конфигурируете, сравню с библиотечными. Светодиод то моргает.  Нет светодиод не мигает. Я пока все осциллографом смотрю. А код... вот он Код ; ; ** InitPorts -- функция инициализации портов В/В ; InitPorts: ld a, #0FFh ; Initiate ports ld PB_DDR, a ; ld PB_CR1, a ; ld PD_DDR, a ; ld PD_CR1, a ; ld PD_CR2, a ; ; ld a, #LED_MASK ; Установить порт управления LED драйвером на вывод ; ld LED_DDR, a ; ; ld LED_CR1, a ; включить push-pull режим ; clr LED_PORT ; Сбросить порт ret ; ; ***** main - головная функция ***** ; _main: ldw x, #RAM_END ; Инициализировать стек ldw sp, x ; bset SWEN ; Switch clock to HSE mov CLK_SWR, #0xB4 ; callr InitPorts ; Инициализировать порты
1$: ;;; Бесконечный цикл ; btjf TIM_05, 2$ ; Проверить флаг события и переход, если не установлен ; bres TIM_05 ; Сбросить флаг ; callr Bin2BCD ; Преобразовать новое значение счетчикак для вывода ;2$: ; callr LEDout ; Вывод значения счетчика на индикатор ; inc PB_ODR ; Use ports a a binary counter inc PD_ODR ; bcpl PB_ODR, #1 bcpl PD_ODR, #1 bcpl PD_ODR, #6 bres PD_ODR, #0 jra 1$;;;
|
|
|
|
|
May 20 2010, 10:04
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
Цитата(_Bill @ May 20 2010, 12:14)  Нет светодиод не мигает. У меня диод мигает при использовании функции из библиотеки, содержащей GPIOx->ODR ^=(u8) mask; А порт конфигурируется в режим GPIO_MODE_OUT_PP_LOW_FAST, т.е. вроде вижу по тексту - и в CR2 записывается 1. После обеда гляну с отладчиком.
--------------------
Уходя, оставьте свет...
|
|
|
|
|
May 20 2010, 10:10
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Цитата(Dog Pawlowa @ May 20 2010, 14:04)  У меня диод мигает при использовании функции из библиотеки, содержащей GPIOx->ODR ^=(u8) mask;
А порт конфигурируется в режим GPIO_MODE_OUT_PP_LOW_FAST, т.е. вроде вижу по тексту - и в CR2 записывается 1. После обеда гляну с отладчиком. Это все в "железе" работает?
|
|
|
|
|
May 20 2010, 10:42
|
Частый гость
 
Группа: Свой
Сообщений: 152
Регистрация: 21-12-05
Из: Москва
Пользователь №: 12 476

|
Взял STM8S - Discovery, подаренный на компэловском семинаре, написал простецкую программу, как раз по вашему случаю. По - поводу написания и всего остального прошу не пинать, в связи с отсутствием времени получилось вот так и все работает
/* MAIN.C file * * Copyright © 2002-2005 STMicroelectronics */
#include "STM8S105C6.h"
void GPIO_Conf(void) { PD_DDR = 0xFF; // all PD pins as output PD_CR1 = 0xFF; // all PD pins output push pull PD_CR2 = 0; // all PD pins speed 2MHz PD_ODR = 0; // all set to 0 }
void main() { unsigned long int i; GPIO_Conf(); while (1) { for(i = 0; i < 10000; i++); PD_ODR = PD_ODR ^ 0xFF; } }
А почему вы тут сразу 2 порта настраиваете, порт B и D: InitPorts: ld a, #0FFh ; Initiate ports ld PB_DDR, a ; ld PB_CR1, a ; ld PD_DDR, a ; ld PD_CR1, a ; ld PD_CR2, a ;
Сообщение отредактировал topkin - May 20 2010, 10:44
|
|
|
|
|
May 20 2010, 12:58
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Цитата(topkin @ May 20 2010, 15:37)  При беглом просмотре вашего кода ошибок не видно, может быть Stanislav_S прав про частоту? Попробуйте сделать совсем просто, к примеру как в моем коде или скомпилируйте и прошейте его, поменяв только заголовочник и порт. Плюс ватч дог у вас отключен? Может дело в нем. По умолчанию он должен быть отключен, но, если я не ошибаюсь, конфигурация периферии и ватч дога в частности, задается в options bytes и далее работа контроллера при включении питания будет зависеть от настроект в этих байтах. Я проверял программу с использованием фабричных установок (частота внутреннего генератора / 8 = 2МГц). Разницы абсолютно никакой. И потом, у порта D не работает самый старший разряд, а все остальные, за исключением самого младшего, работают. Пробовал управлять скоростью нарастания на выходе порта при помощи регистра CR2, разница в длительности фронтов заметна, но работоспособности никак не сказывается. Что касается Watchdog таймера, то он у меня отключен. Даже если бы он был включен, то при правильной работе сигналы на выходах портов все равно были бы видны, разница между периодом Watchdog таймера и цикла программы составляет несколько порядков.
|
|
|
|
|
May 21 2010, 05:13
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Цитата(topkin @ May 21 2010, 09:00)  Очень странно, где то трабл, чудес не бывает. Можете выложить полный код еще раз? Нет проблем Код switch .text ; ; ** InitPorts -- функция инициализайии портов В/В ; InitPorts: ld a, #0FFh ; Initiate ports ld PB_DDR, a ; ld PB_CR1, a ; ld PD_DDR, a ; ld PD_CR1, a ; ld PD_CR2, a ; ; ld a, #LED_MASK ; Установить порт управления LED драйвером на вывод ; ld LED_DDR, a ; ; ld LED_CR1, a ; включить push-pull режим ; clr LED_PORT ; Сбросить порт ret ; ; ***** main - головная функция ***** ; _main: ldw x, #RAM_END ; Инициализировать стек ldw sp, x ; bset SWEN ; Switch clock to HSE mov CLK_SWR, #0xB4 ; callr InitPorts ; Инициализировать порты
1$: ;;; Бесконечный цикл ; btjf TIM_05, 2$ ; Проверить флаг события и переход, если не установлен ; bres TIM_05 ; Сбросить флаг ; callr Bin2BCD ; Преобразовать новое значение счетчикак для вывода ;2$: ; callr LEDout ; Вывод значения счетчика на индикатор inc PB_ODR ; Use ports a a binary counter inc PD_ODR ; ; bcpl PB_ODR, #1 ; bcpl PD_ODR, #1 ; bcpl PD_ODR, #6 ; bres PD_ODR, #0 jra 1$;;;
|
|
|
|
|
May 25 2010, 10:05
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Цитата(topkin @ May 25 2010, 13:22)  Приболел, засем долго не появлялся. Вы свою проблему так и не победили? Могу только высказать предположение. Максимальная частота изменения пина 10МГц. У вас другом за другомЭ, в общем цикле, идет инкрементирование счетчика(порта), может тут собака зарыта? Попробуйте "подергать" именно проблемными пинами через задежку. Если и это не поможет, то я не знаю даже.... Нет, проблема до сих пор не решена. Собрал вторую плату - ведет себя аналогично первой. Если говорить насчет частоты, то6 во-первых PORTD все-таки работает; во-вторых, изначально я пробовал запускать программу с внутренним генератором (16МГц / 8) и результат был тот же самый. Инкрементирование порта ни чем не отличается от инкрементирования любой другой ячейки памяти (в PIC, кстати сказать, сделано аналогично). Я пробовал по-разному изменять программу. Например, инкрементировал аккумулятор и результат пересылал в порт, инкрементировал один порт (неработающий) и результат пересылал в другой (работающий) порт. Абсолютно нет никакой разницы. Ни один порт толком не заработал. В общем, пришел к выводу, что дело скорее всего не в программе, а именно в "железе". Правда, единственное в чем я отошел от рекомендаций фирмы, это величина емкости внешнего конденсатора. Фирма рекомендует значения 0.47 - 1.0 мкф. У меня стоит конденсатор номиналом 2.2 мкф. Есть призрачная надежда, что с заменой конденсатора все встанет на свои места. Но ...
|
|
|
|
|
May 25 2010, 11:45
|
Частый гость
 
Группа: Свой
Сообщений: 152
Регистрация: 21-12-05
Из: Москва
Пользователь №: 12 476

|
Цитата(_Bill @ May 25 2010, 14:05)  Нет, проблема до сих пор не решена. Собрал вторую плату - ведет себя аналогично первой. Если говорить насчет частоты, то6 во-первых PORTD все-таки работает; во-вторых, изначально я пробовал запускать программу с внутренним генератором (16МГц / 8) и результат был тот же самый. Инкрементирование порта ни чем не отличается от инкрементирования любой другой ячейки памяти (в PIC, кстати сказать, сделано аналогично). Я пробовал по-разному изменять программу. Например, инкрементировал аккумулятор и результат пересылал в порт, инкрементировал один порт (неработающий) и результат пересылал в другой (работающий) порт. Абсолютно нет никакой разницы. Ни один порт толком не заработал. В общем, пришел к выводу, что дело скорее всего не в программе, а именно в "железе". Правда, единственное в чем я отошел от рекомендаций фирмы, это величина емкости внешнего конденсатора. Фирма рекомендует значения 0.47 - 1.0 мкф. У меня стоит конденсатор номиналом 2.2 мкф. Есть призрачная надежда, что с заменой конденсатора все встанет на свои места. Но ... Дам-с, выходит какие то проблемы с железом, поставка такая что ли, я с таким не сталкивался...
|
|
|
|
|
May 25 2010, 20:23
|
Частый гость
 
Группа: Участник
Сообщений: 163
Регистрация: 10-10-05
Пользователь №: 9 463

|
Цитата(_Bill @ May 25 2010, 16:05)  Нет, проблема до сих пор не решена. Собрал вторую плату - ведет себя аналогично первой. 2 _Bill может попробовать проверить железо на Си, а потом перейти к ассемблеру (можно и листинг подсмотреть). Аналогично Dog Pawlowa в IAR сделал пробный проектик моргания штатным светодиодом Discovery с использованием библиотек из примера - по прерыванию 2 таймера светодиодик исправно мигает. Ассемблер STM8 хорош, но на Си хороши и готовые библиотеки - не пришлось сильно копаться в даташите.
|
|
|
|
|
May 26 2010, 16:53
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Цитата(oll @ May 26 2010, 00:23)  2 _Bill может попробовать проверить железо на Си, а потом перейти к ассемблеру (можно и листинг подсмотреть). Аналогично Dog Pawlowa в IAR сделал пробный проектик моргания штатным светодиодом Discovery с использованием библиотек из примера - по прерыванию 2 таймера светодиодик исправно мигает. Ассемблер STM8 хорош, но на Си хороши и готовые библиотеки - не пришлось сильно копаться в даташите. Делал я на Си. Попробовал IAR. Разницы абсолютно никакой нет.
|
|
|
|
|
May 27 2010, 18:35
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Цитата(topkin @ May 27 2010, 11:09)  Проверил все пины D - порта, на своем ките, все работает. Что то у вас не то с партией наверное.... В партии еще осталось 8 штук. Что-то не хочется их все запаивать. А какой контроллер у вас? Может свой код выложите?
|
|
|
|
|
May 28 2010, 04:52
|
Частый гость
 
Группа: Свой
Сообщений: 152
Регистрация: 21-12-05
Из: Москва
Пользователь №: 12 476

|
Контроллер у меня STM8S105C6T6. Я предпочитаю использовать готовые библиотеки, но для вашего случая написал на прямую с регистрами, для более понятного восприятия. Код до безобразия прост, все в одном файле) Код /* MAIN.C file * * Copyright (c) 2002-2005 STMicroelectronics */
#include "STM8S105C6.h"
void GPIO_Conf(void) { PD_DDR = 0xFF; // all PD pins as output PD_CR1 = 0xFF; // all PD pins output push pull PD_CR2 = 0; // all PD pins speed 2MHz PD_ODR = 0; // all set to 0 }
void main() { unsigned long int i; GPIO_Conf(); while (1) { for(i = 0; i < 10000; i++); PD_ODR = PD_ODR ^ 0xFF; } }
|
|
|
|
|
May 28 2010, 05:31
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Цитата(topkin @ May 28 2010, 08:52)  Код до безобразия прост, все в одном файле) Попробовал как у вас. Никаких изменений. Уже не знаю что и делать.
Сообщение отредактировал rezident - May 28 2010, 23:53
Причина редактирования: Нарушение п.3.4 Правил форума.
|
|
|
|
|
May 28 2010, 13:08
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Цитата(topkin @ May 28 2010, 09:49)  Даааа, причина должна быть, чудес не бывает. А больше вариантов никаких нет? Проблема только с этим железом или другие мк от STM8 вы не пробывали? Прям мистика какае то. жаль что вы из другого города, я бы вам дал свой кит для теста, или подарил) второй такой же подаренный лежит без толку) Нет, других МК пока нет. Жду когда появится STM8S Discovery в "Промэлектроника".
|
|
|
|
|
Jun 23 2010, 09:27
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Цитата(_Bill @ May 28 2010, 17:08)  Нет, других МК пока нет. Жду когда появится STM8S Discovery в "Промэлектроника". В общем, дело такое. Прошил свою программу в STM8S Discovery. Все работает нормально. Так что, похоже, все упирается в STM8S103K6 (в Discovery стоит STM8S105C6). Или нет?
|
|
|
|
|
Jun 23 2010, 15:28
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Цитата(dimka76 @ Jun 23 2010, 15:23)  А чем вы прошивали контроллер до появления у вас STM8S-Discovery ? ST_Link
|
|
|
|
|
Jun 23 2010, 23:23
|

Местный
  
Группа: Свой
Сообщений: 479
Регистрация: 8-05-07
Из: г. Ставрополь. Северный Кавказ. Россия
Пользователь №: 27 606

|
Цитата(_Bill @ May 25 2010, 14:05)  В общем, пришел к выводу, что дело скорее всего не в программе, а именно в "железе". Правда, единственное в чем я отошел от рекомендаций фирмы, это величина емкости внешнего конденсатора. Фирма рекомендует значения 0.47 - 1.0 мкф. У меня стоит конденсатор номиналом 2.2 мкф. Есть призрачная надежда, что с заменой конденсатора все встанет на свои места. Но ... 2.2 мкф керамика 0805 y5v? Если да то надо заменить на электролит аналогичной ёмкости + керамику на 0.1. Звенят эти чЮдоконденсаторы(0805) на мегагерце, ничуть не хуже кварцев  .
|
|
|
|
|
Jun 24 2010, 02:13
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Цитата(Т.Достоевский @ Jun 24 2010, 03:23)  2.2 мкф керамика 0805 y5v? Если да то надо заменить на электролит аналогичной ёмкости + керамику на 0.1. Звенят эти чЮдоконденсаторы(0805) на мегагерце, ничуть не хуже кварцев  . У меня стоят танталовые чип. Емкость пробовал ставить и 2.2, и 1.0. Разницы никакой нет.
|
|
|
|
|
Jun 24 2010, 04:38
|
Частый гость
 
Группа: Свой
Сообщений: 152
Регистрация: 21-12-05
Из: Москва
Пользователь №: 12 476

|
Цитата(_Bill @ Jun 23 2010, 13:27)  В общем, дело такое. Прошил свою программу в STM8S Discovery. Все работает нормально. Так что, похоже, все упирается в STM8S103K6 (в Discovery стоит STM8S105C6). Или нет? Да, в моих двух экземплярах STM8S - DISCOVERY стоит именно STM8S105C6, думаю и у вас тоже, чай на одной китайской фабрике сделаны. Судя по всему дело было в контроллере, хотя очень странно это все, мне как то слабо верится)
|
|
|
|
|
Jul 9 2010, 07:14
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Цитата(Peps @ Jul 9 2010, 09:37)  Мельком просматривая Ваш код (в ассемблере ST8S не силен) обратил внимание, что Вы используете таймер 5, которого в микроконтроллере STM8S103K просто нету (смотрел даташит). Может быть это как то влияет на работоспособность вашей программы. Сам сейчас пишу библиотеки инициализации и отлаживаюсь на Discovery но с расчетом на 103 контроллеры, которые буду использовать. Поэтому Ваша проблема меня насторожила. Кому вопрос? Если - мне, то я таймер вообще не использую.
|
|
|
|
|
Jul 16 2010, 16:02
|
Участник

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

|
Всем привет. Решил прицепить часы реального времени ds1338 к stm8s105c4. Платка самодельная, на ней успешно работает SPI и шим. С I2C получилась проблема. Кое как контроллер все таки начал писать в дску данные. При считывании контроллер висит. При отладке посмотрел что ждет event события. Осцил показывает что sda в нуле. I2C использую аппаратный, причем в "фузах" прошил ремап на другие ноги порта. Всю голову изломал, уже готов сделать все на программном i2c, но движет какой то спортивный интерес. Прилагаю кусок кода.... Код void Init_I2C(void) {
I2C_Init(400000, 0xD0, I2C_DUTYCYCLE_2, I2C_ACK_CURR, I2C_ADDMODE_7BIT, (u8)16 );
}
//=============Читаем И2ц Часы ========================= unsigned char ds_read(unsigned char address) { unsigned char data; /* генерируем start & ожидаем event detection */ I2C_GenerateSTART(ENABLE); // i2c_start(); while (!I2C_CheckEvent(I2C_EVENT_MASTER_START_SENT)); // тут уже висим....... I2C_Send7bitAddress(0xD0, I2C_DIRECTION_TX); while (!I2C_CheckEvent(I2C_EVENT_MASTER_ADDRESS_ACKED)); I2C_ClearFlag(I2C_FLAG_ADDRESSSENTMATCHED); // i2c_write(0xD0); I2C_SendData(address); while (!I2C_CheckEvent(I2C_EVENT_MASTER_BYTE_TRANSMITTED)); // i2c_write(address);
I2C_GenerateSTART(ENABLE); while (!I2C_CheckEvent(I2C_EVENT_MASTER_START_SENT)); // i2c_start(); (повторный старт) I2C_Send7bitAddress(0xD0, I2C_DIRECTION_RX); while (!I2C_CheckEvent(I2C_EVENT_MASTER_ADDRESS_ACKED)); I2C_ClearFlag(I2C_FLAG_ADDRESSSENTMATCHED); // i2c_write(0xD1); (читаем)
while (!I2C_CheckEvent(I2C_EVENT_MASTER_BYTE_RECEIVED)); data = I2C_ReceiveData(); //data=i2c_read(0); I2C_GenerateSTOP(ENABLE); // i2c_stop(); return data; }
//======================Пишем в И2ц Часы ================ (вроде как работает) void ds_write(unsigned char address, unsigned char data) { I2C_GenerateSTART(ENABLE); // i2c_start(); while (!I2C_CheckEvent(I2C_EVENT_MASTER_START_SENT)); // // I2C_SendData(0xd0); // while (!I2C_CheckEvent(I2C_EVENT_MASTER_BYTE_TRANSMITTED)); // i2c_write(address); I2C_Send7bitAddress(0xD0, I2C_DIRECTION_TX); while (!I2C_CheckEvent(I2C_EVENT_MASTER_ADDRESS_ACKED)); I2C_ClearFlag(I2C_FLAG_ADDRESSSENTMATCHED); // i2c_write(0xD0); I2C_SendData(address); while (!I2C_CheckEvent(I2C_EVENT_MASTER_BYTE_TRANSMITTED)); // i2c_write(address); I2C_SendData(data); while (!I2C_CheckEvent(I2C_EVENT_MASTER_BYTE_TRANSMITTED)); // i2c_write(data); I2C_GenerateSTOP(ENABLE); // i2c_stop();
}
void write_time_ds (void) { ds_write(0x00, s); ds_write(0x01, m); ds_write(0x02, h); }
void get_time_ds(void) { // // s = ds_read(0x00); m = ds_read(0x01); h = ds_read(0x02); } проверяю так, сперва вызываю write_time_ds(); потом пытаюсь читать get_time_ds(); вобщем ваши мнения господа
|
|
|
|
|
Jul 19 2010, 17:37
|
Участник

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

|
Всем спасибо за ответы....Разобрался сам. Надо перед стоп было ставить NACK
|
|
|
|
|
Jul 20 2010, 17:42
|
Частый гость
 
Группа: Участник
Сообщений: 163
Регистрация: 10-10-05
Пользователь №: 9 463

|
Цитата(Stanislav_S @ Jul 20 2010, 20:50)  Начал мучать потихоньку DISCОVERY, работаю с IAR, создал два проекта - один с использованием стандартной библиотеки периферии, другой без нее - так сказать все руками  Решил запустить таймер номер 4 и поморгать светодиодиком, однако что то нифига не получается ни руками ни с использованием библиотеки, нет ли у кого примера работы с таймером 4? А то весь моск сломал, но чего то не идет  для второго таймера не пойдет?
Прикрепленные файлы
Probe.zip ( 203.06 килобайт )
Кол-во скачиваний: 59
|
|
|
|
|
Jul 21 2010, 04:50
|
Частый гость
 
Группа: Свой
Сообщений: 152
Регистрация: 21-12-05
Из: Москва
Пользователь №: 12 476

|
Цитата(Stanislav_S @ Jul 20 2010, 18:50)  Начал мучать потихоньку DISCОVERY, работаю с IAR, создал два проекта - один с использованием стандартной библиотеки периферии, другой без нее - так сказать все руками  Решил запустить таймер номер 4 и поморгать светодиодиком, однако что то нифига не получается ни руками ни с использованием библиотеки, нет ли у кого примера работы с таймером 4? А то весь моск сломал, но чего то не идет  Один из первых проектов под дискавери, используется таймер 2, зажигает светодиод с частотой 1Гц по прерыванию с использованием библиотек ST. Правда использовался STVD + компилятор от raisonance. С cosmic тоже где то есть, разницы там почти нет, но искать лень. Подогнать под IAR проблем не составит.
Сообщение отредактировал topkin - Jul 21 2010, 04:51
Прикрепленные файлы
TIM2.ZIP ( 371.75 килобайт )
Кол-во скачиваний: 58
|
|
|
|
|
Jul 21 2010, 09:27
|
Частый гость
 
Группа: Свой
Сообщений: 152
Регистрация: 21-12-05
Из: Москва
Пользователь №: 12 476

|
Цитата(Stanislav_S @ Jul 21 2010, 11:53)  Ок спасибо, помучаю таймер номер 2, хотя все таки хотелось 4, поскольку из доки нифига не ясно как оно работает, дока пока только удручает своей лаконичностью  , а за примеры спасибо, буду ломать моск дальше  Так с TIM4 должно быть еще проще, ибо он 8-ми разрядный. Что касаемо док от ST то это да, особенно после атмела было тяжко). Но я сейчас привык и кажется что удобно и понятно) Что касаемо микроконтроллеров, то вам нужно 2 доки, одна - по сути саммари конкретно на чип с его характеристиками, а вторая более подробная - reference manual, где подробно расписана вся периферия и прочее.... Удачного освоения Вот код мерцания светодиодом по прерыванию TIM4, за 5 минут написал, так что не пинайте сильно. Сам проект под STVD + raisonance в прикрепленных файлах. Частота мерцания правда чуть больше герца, с делителями баловаться не стал) Функция main: Код /* MAIN.C file * * Copyright (c) 2010, topkin */ #include "stm8s.h"
#define LED1 GPIO_PIN_0 #define _1Hz_LSI 0xFE
//******************************************************************************* // Main function //******************************************************************************* main() { // 1. Initialize HSI CLK CLK_DeInit(); // after reset Fclk = HSI / 8 = 2MHz //CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1); //set prescaler CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO, CLK_SOURCE_LSI, DISABLE, DISABLE); // set to LSI
// 3. GPIO config GPIO_DeInit(GPIOD); // Configure PD0 (LED1) as output push-pull low (led switched on) GPIO_Init(GPIOD, GPIO_PIN_0, GPIO_MODE_OUT_PP_LOW_FAST); // 4. TIM4 initialization TIM4_DeInit(); CLK_PeripheralClockConfig(CLK_PERIPHERAL_TIMER4, ENABLE); TIM4_TimeBaseInit(TIM4_PRESCALER_128,_1Hz_LSI); TIM4_SetAutoreload(_1Hz_LSI); TIM4_ITConfig(TIM4_IT_UPDATE, ENABLE); TIM4_Cmd(ENABLE); enableInterrupts(); // Main loop while (1){ }; } И прерывание: Код void IRQ23Handler (void) interrupt 23 { GPIO_WriteReverse(GPIOD, GPIO_PIN_0); // Blink LED1 TIM4_ClearITPendingBit(TIM4_IT_UPDATE); }
Сообщение отредактировал topkin - Jul 21 2010, 09:29
|
|
|
|
|
Jul 21 2010, 09:57
|
Частый гость
 
Группа: Свой
Сообщений: 152
Регистрация: 21-12-05
Из: Москва
Пользователь №: 12 476

|
Цитата(Stanislav_S @ Jul 21 2010, 13:43)  Ага спасибо заработало, все оказалось просто  Буду мучать дальше, а вот библиотека их ненравится, больно код пухлый получается, поэтому лучше руками делать ИМХО. Не за что. Библиотека - согласен, мне тоже не нравится, как более плотно сяду на STM8, так я ее под себя перепишу
|
|
|
|
|
Jul 22 2010, 16:42
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 7-01-07
Из: Севастополь
Пользователь №: 24 170

|
Цитата(Linker @ Jul 22 2010, 18:51)  ...однако следовать по лабиринтам сотворенного компилятором кода не хватает сил. Ну, слава Богу! Думал, один я такой тупой:-) Уже с понедельника не могу разобраться с работой сенсорной кнопки - именно по причине того, что засыпаю над ассемблером:-) Правда, сижу за компом по вечерам, после работы на корабле. А там работа то вприсядку, то вприпрыжку:-) Не думаю, что это попытка замылить что-то не работающее в камне. Скорее, стиль программирования такой. Но лично для себя уже решил - в пень их библиотеки, буду писать свой код с нуля, по даташиту. Долго, но хоть ошибки свои будут... Типа как я взял с avrfreaks умножение 16х24 для ЦФ и потом много месяцев искал ошибки в алгоритме. А это ассемблерная вставка врала, но только при определенных значениях множителей и не так часто:-( Пока я не догадался устроить тотальную проверку (умножением в столбик). Это первый и, надеюсь, последний раз, когда я пользовался чужими подпрограммами. И написал бы это умножение за час-другой, да лень было. Что, кстати, и пришлось сделать в конце-концов.
|
|
|
|
|
Jul 23 2010, 04:46
|
Частый гость
 
Группа: Свой
Сообщений: 152
Регистрация: 21-12-05
Из: Москва
Пользователь №: 12 476

|
Цитата(Linker @ Jul 22 2010, 19:51)  На самом деле разбираться с данным процем по имеющейся документации сложновато - очень много букаф. Пытаюсь разобраться как работает железо используя дизасемблированнный СИ код, однако следовать по лабиринтам сотворенного компилятором кода не хватает сил. Пытался понять как происходит моргание диодом - замаялся ходить по бесконечным переходам и вызовам подпрограм. Зачем столько кода для такой простой операции? В чем смысл? Может СИшный компилятор так многочисленные железячные баги обходит? Может кто объяснит популярно? Вы имеете ввиду моргание светодиодом по срабатыванию сенсорной кнопки? Я тоже посмотрел тач сенс пример, в общем и целом стало понятно как оно работает, но до мелочей докапываться не стал, ибо времени нет) Кстати, что за Си - компилятор?
|
|
|
|
|
Jul 23 2010, 05:14
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 7-01-07
Из: Севастополь
Пользователь №: 24 170

|
Цитата(Dog Pawlowa @ Jul 22 2010, 20:09)  По информации о работе сенсорных кнопок от других производителей, это весьма непростое дело. Может, не стоит тратить время?  Я просто хотел убедиться, что кнопки и от СТМ боятся влаги и пота. Решил, для начала, разобраться с алгоритмом. Потом тестовую платку из 4-х кнопок сварганить. А тут такой облом - вызов на вызове, голова пухнет. Хотя, глядя на картинки из док, и не скажешь, что сложный алгоритм. Да ну их, эти сенсоры. Оставлю кнопки, как было. Тем более, все таймеры, кроме 4-го, заняты под ШИМы. Ладно, займусь сравнением "пухлости" кода фильтров. Пока не имею понятия, насколько будет оптимален 40-битный МАС по объему кода и скорости. Значит, опять ассемблер рассматривать. А вокруг лето, море. Девушки на пляже, наверное, как минимум топлесс. Но я там еще не был в этом году... Цитата(topkin @ Jul 23 2010, 07:46)  Кстати, что за Си - компилятор? Пока космик. То, что скачал с примерами. Но у меня фильтры реализованы на ассемблере, так как не смог уместить 4 ФНЧ2 и 4 ПФ1 в 16-ю мегу. МАС 16х24=40 бит, это оптимально для моего сигнала. На первый взгляд камешек не настолько шустрый, чтобы здесь обойтись без ассемблера. И вообще пока непонятно, как в него все упихать :-) Я ведь стал присматриваться к СТМ8 по простой причине: нужно малое потребление (батарейное питание), нужен дешевый, не слишком точный и многоразрядный АЦП. 18 разрядов, как минимум. Тут хорошо работает связка ЦАП-АЦП, с оверсемплингом можно получить 19-20 бит. Это все есть на борту, и за смешные деньги. И место должно все это занимать как можно меньше. На отдельных микрухах никак не складывалось, чего только я туда не тыкал... То АЦП дорогой, то быстродействие маловато, то ЦАПа дешевого не купить. Там, где это в одном флаконе, так флакон дорогущий и поставки на Украину проблематичны. А тут в свободной продаже и недорого:-) Но, как всегда - только начал им заниматься, как один за другим начали выходить из строя разные приборы. Жара в этом году несусветная. 2012 и не дождемся, наверное...
|
|
|
|
|
Jul 23 2010, 11:14
|
Группа: Участник
Сообщений: 3
Регистрация: 11-05-08
Пользователь №: 37 408

|
Цитата(Dog Pawlowa @ Jul 22 2010, 23:09)  По информации о работе сенсорных кнопок от других производителей, это весьма непростое дело. Может, не стоит тратить время?  Кто тестил сенсорную библиотеку от ST напишите насколько стабильно работает? Необходимо сделать пару сенсорных кнопок. Вчера запустил сенсорные кнопки на либе qtouch от avr. Работает очень стабильно (ложняк получилось создать только налив приличное количество воды на кнопки). Но библиотека использует первый таймер который нужен (нужен 12-ти разрядный шим). С таймерами в stm8 получше. Но ревизия библиотеки 1.0.3 от st против 4 версии атмела склоняет в сторону последнего.
Сообщение отредактировал vasily777 - Jul 23 2010, 11:16
|
|
|
|
|
Jul 23 2010, 12:43
|

извечный пессимист
    
Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125

|
Такая ситуация, приехал фирменный ST-LINK из Китая, с ним идет диск с ПО, однако на этом диске никаких дров к нему не идет, а проблема вот в чем, есть STM8S-DISCOVERY через него все шьется и отлаживается, при подключении ST-LINK к целевой плате, не удается прошить проц, пишет данного проца нет в списке, прошиваю прямо из IAR, такое впечатление что там прошита версия только под STM32, вопрос как добраться до версии прошивки и как обновить прошивку? Вроде как на диске что шел STM8S-DISCOVERY, была какя то утилита для работы с линком, но диск к сожалению где то ушел, поэтому нужна помощь клуба. PS Couldn't find STM8S103K3 in the list of supported MCUs. - то что пишется во время отладки.
--------------------
Slaves are those of this world Given freedom to lay chains upon The Master The wolf is no longer free Release the chains and come for me
|
|
|
|
|
Jul 23 2010, 13:52
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 7-01-07
Из: Севастополь
Пользователь №: 24 170

|
Цитата(Stanislav_S @ Jul 23 2010, 15:43)  Вроде как на диске что шел STM8S-DISCOVERY, была какя то утилита для работы с линком, но диск к сожалению где то ушел, поэтому нужна помощь клуба. Есть только stlinkupgrade, там внутри длл-ка и экзешник. Где брал, не помню. Сейчас глянул на фтп - там нет. Положил stlinkupgrade.zip в /upload/mcs/stm8
|
|
|
|
|
Jul 23 2010, 17:26
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 7-01-07
Из: Севастополь
Пользователь №: 24 170

|
Цитата(Stanislav_S @ Jul 23 2010, 17:26)  эх наверно прийдется DISCOVERY ломать Фи, как грубо! Там же есть такие блямбы припоя - чтобы не ломать ея.
|
|
|
|
|
Jul 23 2010, 18:25
|
Участник

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

|
Цитата(Stanislav_S @ Jul 23 2010, 18:26)  Ага спасибо, проверил прошивку, прошивка вроде как надо, но вот незадача шить все равно отказывается, упорно выводит - Fri Couldn't find STM8S103K3 in the list of supported MCUs, эх наверно прийдется DISCOVERY ломать, потому как непонятно в чем проблема  Может кто встречался с такой проблемой? ЗЫ Забыл сказать, работаю с IAR. Не понял вопроса. Ст линк не может увидеть ваш 103й камушек или дискавери?
Сообщение отредактировал ведущий_специалист - Jul 23 2010, 18:32
|
|
|
|
|
Jul 24 2010, 04:55
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Цитата(ArtemDement @ Jul 24 2010, 08:13)  Уважаемые, при 16 МГц насколько горячим должен быть корпус микроконтроллера ? У меня он вообще-то холодный.
|
|
|
|
|
Jul 24 2010, 15:27
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 7-01-07
Из: Севастополь
Пользователь №: 24 170

|
Цитата(ArtemDement @ Jul 24 2010, 08:11)  Частота какая ? Как положено, 16 МГц. Если греется - ищите кз на плюс/землю. В мегах увеличение тока на 10-15 ма означало замыкание одной ноги. Несколько - до 20 ма. Тогда немного грелась. У меня потребление по +3.3В для 8S - 12-18ма, в зависимости от включенной периферии. 8L - до 8 ма. Греться вроде нечему. Но это пока прикидочно, ибо не все еще включал. Ну, и еще от распальцовки зависит, при ощупывании кристалла :-)
|
|
|
|
|
Jul 24 2010, 16:24
|

Местный
  
Группа: Свой
Сообщений: 446
Регистрация: 19-09-09
Из: Санкт-Петербург
Пользователь №: 52 460

|
Нагрев серьезный - не больше 5 секунд пальцем можно держать поверхностность контроллера. Но вроде разобрался с проблемой. Питание на stm8-discovery подавал напрямую с импульсного стабилизатора BP5225 (не пропуская через линейный стабилизатор, что есть на плате) http://www.rohm.com/products/databook/pm/pdf/bp5225.pdfПри питании от USB не греется. Наверное, BP5225 шумит слишком.
Сообщение отредактировал ArtemDement - Jul 24 2010, 16:26
|
|
|
|
|
Jul 24 2010, 19:30
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 7-01-07
Из: Севастополь
Пользователь №: 24 170

|
Цитата(ArtemDement @ Jul 24 2010, 19:24)  Питание на stm8-discovery подавал напрямую с импульсного стабилизатора BP5225 (не пропуская через линейный стабилизатор, что есть на плате) Что-то на моем дискавери ничего такого не наблюдается. Просто стабилизатор на 3.3 вольта, и все. Надо было LC цепочку для интереса вставить, да и осцилом глянуть. Я как то пока таким образом СТМки не насиловал. Интересно, какие пульсации там, что греется столь сильно. Вот мега спокойно пульсации в сотни мв держит, не греется. Но, наверное, выше 5.5В импульсы не поднимались. Тут, согласно даташита, должно быть более 4В, чтобы ей поплохело. Пульсации >>0.7В? Я даташит на этот дц преобразователь не смотрел, но если он маленький, то там внутри выходной емкости нет, ее снаружи лепят. Где-то так, наверное.
|
|
|
|
|
Jul 25 2010, 13:58
|
Участник

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

|
вообще то он не должен быть горячим. по крайней мере у меня корпус мк комнатной температуры.
|
|
|
|
|
Jul 26 2010, 05:54
|
Частый гость
 
Группа: Свой
Сообщений: 152
Регистрация: 21-12-05
Из: Москва
Пользователь №: 12 476

|
Цитата(vasily777 @ Jul 23 2010, 15:14)  Кто тестил сенсорную библиотеку от ST напишите насколько стабильно работает? Необходимо сделать пару сенсорных кнопок. Вчера запустил сенсорные кнопки на либе qtouch от avr. Работает очень стабильно (ложняк получилось создать только налив приличное количество воды на кнопки). Но библиотека использует первый таймер который нужен (нужен 12-ти разрядный шим). С таймерами в stm8 получше. Но ревизия библиотеки 1.0.3 от st против 4 версии атмела склоняет в сторону последнего. Я тестировал STM8S - DISCOVERY, ни одного сбоя не было. Вы для тач - сенса какой контроллер собираетесь использовать, STM8S или STM8L? На семинаре по STM8 в перерыве задавался подобный вопрос инженеру от ST, он сказал что производитель рекомендует для "серьезных" приложений использовать тач - сенс - контроллеры естественно от ST), либо STM8L. Насчет STM8S точно не помню что он ответил, что то вроде стабильность похуже чем у первых. Но все равно думаю нужно пробовать, статистику набирать.
|
|
|
|
|
Jul 26 2010, 08:18
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 7-01-07
Из: Севастополь
Пользователь №: 24 170

|
Цитата(topkin @ Jul 26 2010, 08:54)  Я тестировал STM8S - DISCOVERY, ни одного сбоя не было. Насколько серьезно Вы проверяли? Это ведь не просто пальцем ткнуть на столе. Я проверял в свое время сенсорные кнопки эмульсиями (эмуляция жирных пальцев), паром, водой (чаем, кофе с осадком) поливал. Ни одна, на то время, сенсорная кнопка нормально не работала. Но то был заказ фирмачей (лет 5 назад), в результате я написал, что такое решение не пройдет и заказ "ушел"... Я сделал проектик платы на 4 кнопки для дискавери, да вот времени никак не выберу протравить. Это именно для носимого устройства, в жару и холод (до -15), может моросить дождь и туман обязательно:-) Просто, чтобы проверить.
|
|
|
|
|
Jul 26 2010, 09:12
|

извечный пессимист
    
Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125

|
Посыпаю голову пеплом, проверил ST-LINK с платкой - Дискавери, все нормально работает, так что проблема с процом стоящим на моей плате. Проверял осцилом, импульс сброса проходит, и по линии SWIM какая то посылка пробегает, но очевидно что проц не отвечает, либо не отвечает так как надо, питание в норме, питание ядра присутствует, вроде все нормально, но шится не хочет  Пока незнаю чего и думать, может кто то уже сталкивался с проблемой с заливкой проца на своей плате? Думается может в кварце дело, однако никакого сигнала на кварце не обнаружил, как впрочем и на Дисковери то же. Забыл сказать проц - STM8S103K.
--------------------
Slaves are those of this world Given freedom to lay chains upon The Master The wolf is no longer free Release the chains and come for me
|
|
|
|
|
Jul 26 2010, 13:27
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 7-01-07
Из: Севастополь
Пользователь №: 24 170

|
Цитата(Stanislav_S @ Jul 26 2010, 12:12)  Посыпаю голову пеплом... Забыл сказать проц - STM8S103K. Если каждый раз пеплом сыпать, его на всех не хватит. Мы все тут такие... Старт вроде со встроенного генератора. И еще Bill отметился, с тем же STM8S103K. Настораживающая тенденция, однако. Atmel, ау, есть второй шанс!
|
|
|
|
|
Jul 26 2010, 15:02
|

извечный пессимист
    
Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125

|
Теперь буду посыпать голову песком, его много на планете, однако  После утомительных эксперементов, таки удалось его прошить, теперь ситуация такая - прошить кристалл можно штатной утилитой, которая ST Visual Programmer, это гуд, однако отладчик упорно работать отказался, поэтому дальнейшая отладка теперь только со светодиодиком  Ну и пес с ним, я как то не привык к такой отладке, светодиод рулит!
--------------------
Slaves are those of this world Given freedom to lay chains upon The Master The wolf is no longer free Release the chains and come for me
|
|
|
|
|
Jul 26 2010, 19:07
|
Частый гость
 
Группа: Свой
Сообщений: 152
Регистрация: 21-12-05
Из: Москва
Пользователь №: 12 476

|
Цитата(IGK @ Jul 26 2010, 12:18)  Насколько серьезно Вы проверяли? Это ведь не просто пальцем ткнуть на столе. Я проверял в свое время сенсорные кнопки эмульсиями (эмуляция жирных пальцев), паром, водой (чаем, кофе с осадком) поливал. Ни одна, на то время, сенсорная кнопка нормально не работала. Но то был заказ фирмачей (лет 5 назад), в результате я написал, что такое решение не пройдет и заказ "ушел"... Я сделал проектик платы на 4 кнопки для дискавери, да вот времени никак не выберу протравить. Это именно для носимого устройства, в жару и холод (до -15), может моросить дождь и туман обязательно:-) Просто, чтобы проверить. Да, Вы правы, я провел в комнатных условиях. Будем ждать ваших результатов. После рестарта микроконтроллер запускается от внутреннего RC генератора HSI/8 Цитата(Stanislav_S @ Jul 26 2010, 19:02)  Теперь буду посыпать голову песком, его много на планете, однако  После утомительных эксперементов, таки удалось его прошить, теперь ситуация такая - прошить кристалл можно штатной утилитой, которая ST Visual Programmer, это гуд, однако отладчик упорно работать отказался, поэтому дальнейшая отладка теперь только со светодиодиком  Ну и пес с ним, я как то не привык к такой отладке, светодиод рулит!  Т.е. прошить его из под среды(в вашем случае IAR?) так и не удалось? Вот это как то не радужно совсем, я все же на первых порах предпочитаю внутрисхемную отладку. Со светодиодом особо не разгонишься, в таких случаях предпочитаю использовать для отладки COM - порт + собственную программу по вениками, аля терминал
|
|
|
|
|
Jul 27 2010, 08:59
|

извечный пессимист
    
Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125

|
Цитата(topkin @ Jul 26 2010, 23:07)  Т.е. прошить его из под среды(в вашем случае IAR?) так и не удалось? Вот это как то не радужно совсем, я все же на первых порах предпочитаю внутрисхемную отладку. Со светодиодом особо не разгонишься, в таких случаях предпочитаю использовать для отладки COM - порт + собственную программу по вениками, аля терминал Да прошить из IAR не удалось, пока я надеюсь, хотя там конечно настроек то и нету никаких на ST-LINK, но надежда умирает последней  , но у меня на плате LCD стоит, как раз вот его запустил, так что теперь вместо светодиодика LCD, что уже легче, и отладка веселее пойдет, благо только с АЦП осталось разобраться и с ШИМ на таймере 2, но в принципе пока от кристалла впечатления хорошие, напрягает только документация своей излишней лаконичностью
--------------------
Slaves are those of this world Given freedom to lay chains upon The Master The wolf is no longer free Release the chains and come for me
|
|
|
|
|
Jul 27 2010, 15:10
|
Участник

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

|
Начал что-то делать с STM8, написал даже текстик по первым впечатлениям. http://speleoastronomy.org/elektro/stm/index.htmlНо проблемы есть. Например, под Vista компилятор Raisonance требует админ. моды для регистрации. И работает только из админ. моды, под обычным юзером говорит, что ограничен 1К Причем это в среде RIDE и в STVD, а в командной строке он всегда говорит что ограничен 1К. Почему-то. Как-то можно его научить работать из-под обычного пользователя ?
|
|
|
|
|
Jul 28 2010, 05:10
|
Частый гость
 
Группа: Свой
Сообщений: 152
Регистрация: 21-12-05
Из: Москва
Пользователь №: 12 476

|
Цитата(Speleoastronom @ Jul 27 2010, 19:10)  Начал что-то делать с STM8, написал даже текстик по первым впечатлениям. http://speleoastronomy.org/elektro/stm/index.htmlНо проблемы есть. Например, под Vista компилятор Raisonance требует админ. моды для регистрации. И работает только из админ. моды, под обычным юзером говорит, что ограничен 1К Причем это в среде RIDE и в STVD, а в командной строке он всегда говорит что ограничен 1К. Почему-то. Как-то можно его научить работать из-под обычного пользователя ? Проблема один в один на домашнем компе, только с 7й виндой. Побороть так и не удалось, мне кажется что мне знаний по этой ОС не хватает. Если кто сталкивался, то подскажите. Сносить и ставить старый родной XP пока рука не поднимается
|
|
|
|
|
Jul 28 2010, 16:42
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 7-01-07
Из: Севастополь
Пользователь №: 24 170

|
Цитата(topkin @ Jul 26 2010, 22:07)  Будем ждать ваших результатов. Думаю, не скоро будет. Партнер вчера споткнулся и упал с трапа (это на корабле). Результат - сложный перелом руки, лежит под капельницей, будет операция. Я один на месяц остался, куда уж тут о кнопках думать...
|
|
|
|
|
Jul 30 2010, 05:00
|
Частый гость
 
Группа: Свой
Сообщений: 152
Регистрация: 21-12-05
Из: Москва
Пользователь №: 12 476

|
Цитата(IGK @ Jul 28 2010, 20:42)  Думаю, не скоро будет. Партнер вчера споткнулся и упал с трапа (это на корабле). Результат - сложный перелом руки, лежит под капельницей, будет операция. Я один на месяц остался, куда уж тут о кнопках думать... Печально, надеюсь все будет хорошо. Тут в сети наткнулся на статью забавную, сравнение STM8 и AVR. Не со всем согласен, но все же http://speleoastronomy.org/elektro/stm/index.html
|
|
|
|
|
Jul 30 2010, 05:38
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (Speleoastronom @ Jul 27 2010, 18:10)  Начал что-то делать с STM8, написал даже текстик по первым впечатлениям. http://speleoastronomy.org/elektro/stm/index.htmlНу что сказать, в обзорке заметен перекос с сторону (очень условно) "радилюбительского" подхода: 1. Почему-то делается сравнение "цены старта", хотя речь идет в обоих случаях о скромных суммах, для занимающихся сколь-либо профессиональной деятельностью. 2. Сравнивается наличие книг - я бы предпочел хорошую документацию и поддержку иметь, а книг, например, то тому-же Atmel не брал в руки ни одной - не видел и не вижу ни малейших причин для контроллеров уровня AVR/STM8 иметь чего-либо разжевывающее. 3. Оценка функциональности AVR, как "лучше", тоже с "потолка" - можно говорить о каких-то нюансах в конкретных случаях, но в общем дело обстоит с точностью до наоборот. 4. Наличие "Коммьюнити" (что названо "самым важным") - несомненно полезно. Но огромная толпа занимающаяся генерацией в подавляющей своей части генерацией "мусора", "слухов", "copy-paste"... и выкладывания все это в интернет совсем не есть плюс - если речь идет о работе, а не о том, из чего-бы такого слепить чего-нибудь.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 30 2010, 08:46
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 17-06-04
Пользователь №: 36

|
Ну вот и я начал неспешно осваивать STM8. При выборе замены в серийных изделиях ATmega16/32/64/128 остановился на STM. Получили Discovery, скачали tools. STVD показался замароченным (в части прикручивания С компиляторов), но наверное это дело привычки. Документация - скудненькая, в основном все ищешь в апнотах, примерах и т.д. Я так понял АЦП тут получше чем в АВР (гораздо быстрее и немного точнее), хотя еще не мерил в железе. Показалось, что RTOS написать для STM будет ГОРАЗДО легче, чем на АВР (будем пробовать). Стабильность в условиях помех заявлена высокая, что радует. Нагрузочная способность выводов не порадовала (не все по 20ма) Ну и конечно же цены. Непонятно как компилить статические библиотеки под него (типа *.a в winAVR) и есть ли такое.
|
|
|
|
|
Jul 30 2010, 10:13
|
Участник

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

|
Цитата(zltigo @ Jul 30 2010, 09:38)  Ну что сказать, в обзорке заметен перекос с сторону (очень условно) "радилюбительского" подхода: Совершенно справедливо замечено, обзор писался именно с точки зрения любителя. Обзоров для профессионалов в сети достаточно много. Цитата(zltigo @ Jul 30 2010, 09:38)  4. Наличие "Коммьюнити" (что названо "самым важным") - несомненно полезно. Но огромная толпа занимающаяся генерацией в подавляющей своей части генерацией "мусора", "слухов", "copy-paste"... и выкладывания все это в интернет совсем не есть плюс - если речь идет о работе, а не о том, из чего-бы такого слепить чего-нибудь. Коммьюнити AVR породило несколько весьма удачных проектов: Arduino, Ethernut, V-USB и так далее. Грань между "работой" и "из чего-бы такого слепить чего-нибудь" слишком тонкая, чтобы ей можно было всерьез заниматься. Есть, конечно, профессиональный гонор, но это слишком ничтожная вещь сама по себе.
|
|
|
|
|
Jul 30 2010, 17:12
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 7-01-07
Из: Севастополь
Пользователь №: 24 170

|
Цитата(Linker @ Jul 30 2010, 19:39)  И еще: во всем инете не нашел ни одного примера на ассемблере ( мне надо). Есть какие-то обрывки для ST7, но ведь это совсем не то. Может кто встречал, то дайте ссылку. Я тоже не нашел. Пока приходится писать, как мозг разумеет, по системе команд. Потом проверять Космиком и ИАРом:-) Но что-то этот ассемблер мне дается труднее, чем АВРовский... Обзор читал. По моему, писать автору пока особенно не о чем. Если только продолжение будет, а так ничего особо нового по сравнению с Компеловским. Я думаю, когда здесь прибавится пользователей - человек так до 20,- то можно просить и ветку завести. С помощью Атмела этого ждать недолго:-) Вон, ветка МИПсов хиреет, место почти свободно. topkin, спасибо, мой друг чувствует себя уже лучше. Ему не привыкать, три года назад он на параплане сел на прибрежные скалы (в феврале). Это его и спасло, холодная вода взбодрила и не дала истечь кровью, пока полз до берега. Но теперь он весь изломан:-( Ассемблер STM8 как-то спокойнее будет, заснул - лбом в клавиатуру приложился в худшем случае :-)
|
|
|
|
|
Jul 30 2010, 17:47
|
Участник

Группа: Участник
Сообщений: 40
Регистрация: 17-06-04
Пользователь №: 36

|
В отличии от АВР увидел в STM8 аппаратную поддержку программных прерываний (TRAP). Так же есть переход на внутреннее тактирование при отказе внешнего.
|
|
|
|
|
Jul 31 2010, 04:08
|
Участник

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

|
Цитата(IGK @ Jul 30 2010, 21:12)  Я тоже не нашел. Пока приходится писать, как мозг разумеет, по системе команд. Потом проверять Космиком и ИАРом:-) Но что-то этот ассемблер мне дается труднее, чем АВРовский... Это и странно. По идее, он должен быть проще, почему я и взялся за STM8 (ну, кроме задач по работе) Цитата(IGK @ Jul 30 2010, 21:12)  Обзор читал. По моему, писать автору пока особенно не о чем. Если только продолжение будет, а так ничего особо нового по сравнению с Компеловским. Совершенно верно. Пока что я развел платку регистратора, если удастся завести на ней I2C термометр, АЦП и запись всего этого на SD карту, будет о чем написать.
|
|
|
|
|
Jul 31 2010, 08:30
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (IGK @ Jul 30 2010, 20:12)  Но что-то этот ассемблер мне дается труднее, чем АВРовский... Ассемблер, это в смысле системы команд? Да, это не AVR и если нет навыков к работе с разнообразными системами команд, то тяжело  . А вообще система команд (про Ассемблер, как инструментальное средство позже) очень приличная (это с учетом писательства, например, на 8088  ), непривычная, после вагона регистров и load/store от AVR, но очень даже дружелюбная. Cудя по моему предыдущему опыту, программироваться должно "ровнее" и однообразнее. Дальше идет собственно синтаксис, вот тот синтаксис, который ST мне заметно не понравился. Пробовал почитать - в голове сидят другие синтаксисы и сбивают очень сильно  . Впрочем это общая болезнь всех ассемблеров. То, чего надо еще смотреть, а какие собственно сервисы предоставляет собственно Ассемблер, как инструментальная программа за пределами трансляции в коды? При имеющемся многообразии 8-16-24 бит адресации тот-же Ассемблер (как инструмент) способен самостоятельно разбираться, например, а как адресоваться к `дата` в команде LD A,data short? long? extended?. Ну а вообще после 4-5-6 ассемблера и 2-3-4 мегабайта исходников на ASM, ясно понимаешь, что писать эти самые мегабайты на ASM не стоило  . Достаточно уметь читать ASM и быть способным написать на ASM несколько сот команд одним куском. QUOTE (vesago @ Jul 30 2010, 19:14)  Не очень понравилось, что в хедерах кишки в виде масок представлены. Ну это как раз совершенно правильно - максимально гибкий, универсальный и переносимый вариант. Кривизна в том, что НЕ только ввиде масок - имеет место быть каша из IARовских красатулек CODE typedef struct { unsigned char TIM2_EV0 : 1; Оберток на этих красатульках: CODE #define WFE_CR1_TIM2_EV0 WFE_CR1_bit.TIM2_EV0 нормальных битовых описаний: QUOTE #define MASK_WFE_CR1_TIM2_EV0 0x01 и того, что эти макро имеют имена начинающиеся с MASK  . Так-что все как обычно надо будет править и чистить. Или Вам жаль что не в Atmel стиле - (1<<EV0)? Вот уж где море разливанное символов "( 1 0 << )" для спотыкания глазом и простор для ошибок (даже имени регистра нет к которому бит относится ) на ровном месте  . А вообще совершенно спокойно и необременительно при разборках с конкретной периферией пишутся свои хидеры, "как надо" - все будет "удобно" и не вызовет глупых ошибок при использовании по привычке навязанной каким-либо писателем хидеров.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 31 2010, 08:36
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 7-01-07
Из: Севастополь
Пользователь №: 24 170

|
Цитата(zltigo @ Jul 31 2010, 10:55)  Ассемблер, это в смысле системы команд? Ну а вообще после 4-5-6 ассемблера и 2-3-4 мегабайта исходников на ASM, ясно понимаешь, что писать эти самые мегабайты на ASM не стоило  . Достаточно уметь читать ASM и быть способным написать на ASM несколько сот команд одним куском. Система команд, да. Именно так. Но, прежде чем доверится С, надо бы его проверить, хоть как то... А предыдущее, о сложности - так я старый уже для программирования. Оно как с девочками, молоденькими - и тяжело, и хочется. И жалеешь потом... до следующего раза:-) С я осваивал еще на СМ4 :-), с тех пор то изменяю ему с ассемблером, то опять за старое. Это как придется. Процессоров, правда, немного применять приходилось. Например, с АРМами пока не сталкивался (я имею в виду проекты с нуля), больше АВР, 51-е разные, пару раз МСП применял. Пытался МИПС как-то применить, потом на ТМС перешел. Вот и все. Типа вся жизнь прошла перед глазами:-) Но это только контроллеры. И, кстати, надобность во вставках ассемблерных практически отпала: сейчас сижу, платку с STM8 набрасываю в оркаде, и заменил по пути ногодрыжество RC-цепочкой с компаратором. Теперь чистый си, на два прерывания меньше и, соответственно, больше спать можно будет. Хорошо! На АВРке не получалось.
|
|
|
|
|
Jul 31 2010, 08:41
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (IGK @ Jul 31 2010, 11:36)  Но, прежде чем доверится С, надо бы его проверить, хоть как то... Дык сразу в бою  и проверять. QUOTE А предыдущее, о сложности - так я старый уже для программирования. Так и мне, считай, полтинник, но пока ничего
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Jul 31 2010, 18:41
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 7-01-07
Из: Севастополь
Пользователь №: 24 170

|
Цитата(zltigo @ Jul 31 2010, 11:41)  Дык сразу в бою  и проверять. Так и мне, считай, полтинник, но пока ничего  Это я не утерпел. Хотя обычно так и делаю, самый надежный способ. Как с арбузами - никогда не надрезаю и не пробую. Не понравилось - выбросил и забыл. А процессор еще и дешевле обходится:-) Полтинник - ну совсем молодой еще... Но, слышал, активно жить можно до 130 лет, какие-то евреи писали:-) Так что все еще впереди!
|
|
|
|
|
Aug 15 2010, 07:45
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 7-01-07
Из: Севастополь
Пользователь №: 24 170

|
Цитата(_Bill @ Aug 14 2010, 15:50)  Дело начинает проясняться. Ребята из "Промэлектроники" проделали такой же опыт с STM8S103K6 и получили аналогичный результат. После этого они обратились на фирму ST и там признали свой баг. Они его исправили, обещают прислать новые контроллеры. Угу, наслышаны уже... Так эти ребята через годик-другой и еррату обновят:-)
|
|
|
|
|
Aug 16 2010, 07:03
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Цитата(Stanislav_S @ Aug 15 2010, 17:49)  Ох блин, я этот кристалл как замену AVR застолбил, как раз многие мои девайсы закрывает, они только кристаллы будут править или еще и софт? А причем тут soft? А кристаллы, говорят, уже исправили. Жду новых, исправленных.
|
|
|
|
|
Aug 17 2010, 09:02
|
Местный
  
Группа: Свой
Сообщений: 313
Регистрация: 7-01-07
Из: Севастополь
Пользователь №: 24 170

|
Цитата(_Bill @ Aug 16 2010, 10:03)  А причем тут soft? Ножками дергать с извращениями... На неисправленных кристаллах. Наверное, так.
|
|
|
|
|
Aug 26 2010, 07:58
|
Участник

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

|
Цитата(_Bill @ Aug 14 2010, 16:50)  Дело начинает проясняться. Ребята из "Промэлектроники" проделали такой же опыт с STM8S103K6 и получили аналогичный результат. После этого они обратились на фирму ST и там признали свой баг. Они его исправили, обещают прислать новые контроллеры. Извините, _Bill, нельзя ли подробнее про баг, в каких контроллерах он есть, и в чем именно проявляется. Или ссылочку, если ST уже это документировала.
|
|
|
|
|
Aug 26 2010, 16:06
|
Местный
  
Группа: Свой
Сообщений: 210
Регистрация: 15-01-08
Из: Новосибирск
Пользователь №: 34 105

|
Цитата(Xenia @ Aug 26 2010, 16:12)  А неисправные кристаллы, надо понимать, из торговой сети не отзовут. У нас на прилавках лежать будут. Теперь трижды перекрестишься, прежде чем STM8 покупать... Не имел дела раньше с компанией ST. За ними водилось подобное? На самом деле страшновато переходить на такую продукцию. А может это черный PR? Где правда, брат?
--------------------
Я здесь и сейчас...
|
|
|
|
|
Aug 27 2010, 07:34
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Цитата(Speleoastronom @ Aug 26 2010, 10:58)  Извините, _Bill, нельзя ли подробнее про баг, в каких контроллерах он есть, и в чем именно проявляется. Или ссылочку, если ST уже это документировала. Подробности см. мое первое сообщение. ST это не документировала, сказала что исправила.
|
|
|
|
|
Aug 27 2010, 08:17
|
Группа: Новичок
Сообщений: 10
Регистрация: 25-08-05
Пользователь №: 7 965

|
Цитата(Linker @ Aug 26 2010, 19:06)  Не имел дела раньше с компанией ST. За ними водилось подобное? На самом деле страшновато переходить на такую продукцию. А может это черный PR? Где правда, брат? Ничего необычного, свежие кристаллы обычно проходят несколько ревизий. В серию идет самая последняя, максимально избавленная от багов. Отладка появляется одновременно с появлением первой ревизии кристалла. Поэтому вполне вероятно, что на отладке может стоять камень одной из "сырых" ревизий. Ничего не мешает потом перепаять на серийный кристалл. Цитата(Xenia @ Aug 26 2010, 12:12)  А неисправные кристаллы, надо понимать, из торговой сети не отзовут. У нас на прилавках лежать будут. Теперь трижды перекрестишься, прежде чем STM8 покупать... Просто внимательно смотреть на маркировку чипов, версия кристалла обычно у ST обозначается отдельно стоящей буквой в правом верхнем либо нижнем углу.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|