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

 
 
9 страниц V  < 1 2 3 4 > »   
Reply to this topicStart new topic
> Проблемы с STM8
_Bill
сообщение May 21 2010, 05:13
Сообщение #16


Местный
***

Группа: Участник
Сообщений: 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$;;;
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение May 21 2010, 05:53
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Вот мой "моргающий код" на библиотечных функциях.

Код
void main(void)
{    CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);
    GPIO_DeInit(GPIOD);
    GPIO_Init(GPIOD, GPIO_PIN_0, GPIO_MODE_OUT_PP_LOW_FAST);

  for (;;)
  {    GPIO_WriteReverse(GPIOD, GPIO_PIN_0);
  }
}


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
topkin
сообщение May 25 2010, 09:22
Сообщение #18


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

Группа: Свой
Сообщений: 152
Регистрация: 21-12-05
Из: Москва
Пользователь №: 12 476



Приболел, засем долго не появлялся.
Вы свою проблему так и не победили? Могу только высказать предположение. Максимальная частота изменения пина 10МГц. У вас другом за другомЭ, в общем цикле, идет инкрементирование счетчика(порта), может тут собака зарыта? Попробуйте "подергать" именно проблемными пинами через задежку. Если и это не поможет, то я не знаю даже....
Go to the top of the page
 
+Quote Post
_Bill
сообщение May 25 2010, 10:05
Сообщение #19


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219



Цитата(topkin @ May 25 2010, 13:22) *
Приболел, засем долго не появлялся.
Вы свою проблему так и не победили? Могу только высказать предположение. Максимальная частота изменения пина 10МГц. У вас другом за другомЭ, в общем цикле, идет инкрементирование счетчика(порта), может тут собака зарыта? Попробуйте "подергать" именно проблемными пинами через задежку. Если и это не поможет, то я не знаю даже....

Нет, проблема до сих пор не решена. Собрал вторую плату - ведет себя аналогично первой. Если говорить насчет частоты, то6 во-первых PORTD все-таки работает; во-вторых, изначально я пробовал запускать программу с внутренним генератором (16МГц / 8) и результат был тот же самый. Инкрементирование порта ни чем не отличается от инкрементирования любой другой ячейки памяти (в PIC, кстати сказать, сделано аналогично). Я пробовал по-разному изменять программу. Например, инкрементировал аккумулятор и результат пересылал в порт, инкрементировал один порт (неработающий) и результат пересылал в другой (работающий) порт. Абсолютно нет никакой разницы. Ни один порт толком не заработал.
В общем, пришел к выводу, что дело скорее всего не в программе, а именно в "железе". Правда, единственное в чем я отошел от рекомендаций фирмы, это величина емкости внешнего конденсатора. Фирма рекомендует значения 0.47 - 1.0 мкф. У меня стоит конденсатор номиналом 2.2 мкф. Есть призрачная надежда, что с заменой конденсатора все встанет на свои места. Но ...
Go to the top of the page
 
+Quote Post
topkin
сообщение May 25 2010, 11:45
Сообщение #20


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

Группа: Свой
Сообщений: 152
Регистрация: 21-12-05
Из: Москва
Пользователь №: 12 476



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

Дам-с, выходит какие то проблемы с железом, поставка такая что ли, я с таким не сталкивался...
Go to the top of the page
 
+Quote Post
oll
сообщение May 25 2010, 20:23
Сообщение #21


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

Группа: Участник
Сообщений: 163
Регистрация: 10-10-05
Пользователь №: 9 463



Цитата(_Bill @ May 25 2010, 16:05) *
Нет, проблема до сих пор не решена. Собрал вторую плату - ведет себя аналогично первой.

2 _Bill может попробовать проверить железо на Си, а потом перейти к ассемблеру (можно и листинг подсмотреть). Аналогично Dog Pawlowa в IAR сделал пробный проектик моргания штатным светодиодом Discovery с использованием библиотек из примера - по прерыванию 2 таймера светодиодик исправно мигает. Ассемблер STM8 хорош, но на Си хороши и готовые библиотеки - не пришлось сильно копаться в даташите.
Go to the top of the page
 
+Quote Post
_Bill
сообщение May 26 2010, 16:53
Сообщение #22


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219



Цитата(oll @ May 26 2010, 00:23) *
2 _Bill может попробовать проверить железо на Си, а потом перейти к ассемблеру (можно и листинг подсмотреть). Аналогично Dog Pawlowa в IAR сделал пробный проектик моргания штатным светодиодом Discovery с использованием библиотек из примера - по прерыванию 2 таймера светодиодик исправно мигает. Ассемблер STM8 хорош, но на Си хороши и готовые библиотеки - не пришлось сильно копаться в даташите.

Делал я на Си. Попробовал IAR. Разницы абсолютно никакой нет.
Go to the top of the page
 
+Quote Post
topkin
сообщение May 27 2010, 07:09
Сообщение #23


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

Группа: Свой
Сообщений: 152
Регистрация: 21-12-05
Из: Москва
Пользователь №: 12 476



Проверил все пины D - порта, на своем ките, все работает. Что то у вас не то с партией наверное....
Go to the top of the page
 
+Quote Post
_Bill
сообщение May 27 2010, 18:35
Сообщение #24


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219



Цитата(topkin @ May 27 2010, 11:09) *
Проверил все пины D - порта, на своем ките, все работает. Что то у вас не то с партией наверное....

В партии еще осталось 8 штук. Что-то не хочется их все запаивать.
А какой контроллер у вас? Может свой код выложите?
Go to the top of the page
 
+Quote Post
topkin
сообщение May 28 2010, 04:52
Сообщение #25


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

Группа: Свой
Сообщений: 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;
    }
}
Go to the top of the page
 
+Quote Post
_Bill
сообщение May 28 2010, 05:31
Сообщение #26


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219



Цитата(topkin @ May 28 2010, 08:52) *
Код до безобразия прост, все в одном файле)

Попробовал как у вас. Никаких изменений. Уже не знаю что и делать.

Сообщение отредактировал rezident - May 28 2010, 23:53
Причина редактирования: Нарушение п.3.4 Правил форума.
Go to the top of the page
 
+Quote Post
topkin
сообщение May 28 2010, 05:49
Сообщение #27


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

Группа: Свой
Сообщений: 152
Регистрация: 21-12-05
Из: Москва
Пользователь №: 12 476



Даааа, причина должна быть, чудес не бывает. А больше вариантов никаких нет? Проблема только с этим железом или другие мк от STM8 вы не пробывали? Прям мистика какае то. жаль что вы из другого города, я бы вам дал свой кит для теста, или подарил) второй такой же подаренный лежит без толку)

Сообщение отредактировал topkin - May 28 2010, 05:53
Go to the top of the page
 
+Quote Post
_Bill
сообщение May 28 2010, 13:08
Сообщение #28


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219



Цитата(topkin @ May 28 2010, 09:49) *
Даааа, причина должна быть, чудес не бывает. А больше вариантов никаких нет? Проблема только с этим железом или другие мк от STM8 вы не пробывали? Прям мистика какае то. жаль что вы из другого города, я бы вам дал свой кит для теста, или подарил) второй такой же подаренный лежит без толку)

Нет, других МК пока нет. Жду когда появится STM8S Discovery в "Промэлектроника".
Go to the top of the page
 
+Quote Post
_Bill
сообщение Jun 23 2010, 09:27
Сообщение #29


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219



Цитата(_Bill @ May 28 2010, 17:08) *
Нет, других МК пока нет. Жду когда появится STM8S Discovery в "Промэлектроника".

В общем, дело такое. Прошил свою программу в STM8S Discovery. Все работает нормально. Так что, похоже, все упирается в STM8S103K6 (в Discovery стоит STM8S105C6). Или нет?
Go to the top of the page
 
+Quote Post
dimka76
сообщение Jun 23 2010, 11:23
Сообщение #30


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



Цитата(_Bill @ Jun 23 2010, 13:27) *
В общем, дело такое. Прошил свою программу в STM8S Discovery. Все работает нормально.


А чем вы прошивали контроллер до появления у вас STM8S-Discovery ?


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 3rd August 2025 - 03:15
Рейтинг@Mail.ru


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