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

 
 
9 страниц V  < 1 2 3 4 5 > »   
Reply to this topicStart new topic
> Проблемы с STM8
_Bill
сообщение Jun 23 2010, 15:28
Сообщение #31


Местный
***

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



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

ST_Link
Go to the top of the page
 
+Quote Post
fmdost
сообщение Jun 23 2010, 23:23
Сообщение #32


Местный
***

Группа: Свой
Сообщений: 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) на мегагерце, ничуть не хуже кварцев cranky.gif.
Go to the top of the page
 
+Quote Post
_Bill
сообщение Jun 24 2010, 02:13
Сообщение #33


Местный
***

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



Цитата(Т.Достоевский @ Jun 24 2010, 03:23) *
2.2 мкф керамика 0805 y5v?
Если да то надо заменить на электролит аналогичной ёмкости + керамику на 0.1. Звенят эти чЮдоконденсаторы(0805) на мегагерце, ничуть не хуже кварцев cranky.gif.

У меня стоят танталовые чип. Емкость пробовал ставить и 2.2, и 1.0. Разницы никакой нет.
Go to the top of the page
 
+Quote Post
topkin
сообщение Jun 24 2010, 04:38
Сообщение #34


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

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



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

Да, в моих двух экземплярах STM8S - DISCOVERY стоит именно STM8S105C6, думаю и у вас тоже, чай на одной китайской фабрике сделаны. Судя по всему дело было в контроллере, хотя очень странно это все, мне как то слабо верится)
Go to the top of the page
 
+Quote Post
Peps
сообщение Jul 9 2010, 06:37
Сообщение #35


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

Группа: Участник
Сообщений: 183
Регистрация: 12-01-10
Из: Минск
Пользователь №: 54 745



Мельком просматривая Ваш код (в ассемблере ST8S не силен) обратил внимание, что Вы используете таймер 5, которого в микроконтроллере STM8S103K просто нету (смотрел даташит).
Может быть это как то влияет на работоспособность вашей программы.
Сам сейчас пишу библиотеки инициализации и отлаживаюсь на Discovery но с расчетом на 103 контроллеры, которые буду использовать. Поэтому Ваша проблема меня насторожила.
Go to the top of the page
 
+Quote Post
_Bill
сообщение Jul 9 2010, 07:14
Сообщение #36


Местный
***

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



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

Кому вопрос? Если - мне, то я таймер вообще не использую.
Go to the top of the page
 
+Quote Post
ведущий_специали...
сообщение Jul 16 2010, 16:02
Сообщение #37


Участник
*

Группа: Участник
Сообщений: 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();
вобщем ваши мнения господа
Go to the top of the page
 
+Quote Post
ведущий_специали...
сообщение Jul 19 2010, 17:37
Сообщение #38


Участник
*

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



Всем спасибо за ответы....Разобрался сам. Надо перед стоп было ставить NACK
Go to the top of the page
 
+Quote Post
Stanislav_S
сообщение Jul 20 2010, 14:50
Сообщение #39


извечный пессимист
*****

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



Начал мучать потихоньку DISCОVERY, работаю с IAR, создал два проекта - один с использованием стандартной библиотеки периферии, другой без нее - так сказать все руками smile.gif Решил запустить таймер номер 4 и поморгать светодиодиком, однако что то нифига не получается ни руками ни с использованием библиотеки, нет ли у кого примера работы с таймером 4? А то весь моск сломал, но чего то не идет smile3046.gif


--------------------
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
Go to the top of the page
 
+Quote Post
oll
сообщение Jul 20 2010, 17:42
Сообщение #40


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

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



Цитата(Stanislav_S @ Jul 20 2010, 20:50) *
Начал мучать потихоньку DISCОVERY, работаю с IAR, создал два проекта - один с использованием стандартной библиотеки периферии, другой без нее - так сказать все руками smile.gif Решил запустить таймер номер 4 и поморгать светодиодиком, однако что то нифига не получается ни руками ни с использованием библиотеки, нет ли у кого примера работы с таймером 4? А то весь моск сломал, но чего то не идет smile3046.gif

для второго таймера не пойдет?

Прикрепленные файлы
Прикрепленный файл  Probe.zip ( 203.06 килобайт ) Кол-во скачиваний: 59
 
Go to the top of the page
 
+Quote Post
topkin
сообщение Jul 21 2010, 04:50
Сообщение #41


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

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



Цитата(Stanislav_S @ Jul 20 2010, 18:50) *
Начал мучать потихоньку DISCОVERY, работаю с IAR, создал два проекта - один с использованием стандартной библиотеки периферии, другой без нее - так сказать все руками smile.gif Решил запустить таймер номер 4 и поморгать светодиодиком, однако что то нифига не получается ни руками ни с использованием библиотеки, нет ли у кого примера работы с таймером 4? А то весь моск сломал, но чего то не идет smile3046.gif


Один из первых проектов под дискавери, используется таймер 2, зажигает светодиод с частотой 1Гц по прерыванию с использованием библиотек ST. Правда использовался STVD + компилятор от raisonance. С cosmic тоже где то есть, разницы там почти нет, но искать лень. Подогнать под IAR проблем не составит.

Сообщение отредактировал topkin - Jul 21 2010, 04:51
Прикрепленные файлы
Прикрепленный файл  TIM2.ZIP ( 371.75 килобайт ) Кол-во скачиваний: 58
 
Go to the top of the page
 
+Quote Post
Stanislav_S
сообщение Jul 21 2010, 07:53
Сообщение #42


извечный пессимист
*****

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



Ок спасибо, помучаю таймер номер 2, хотя все таки хотелось 4, поскольку из доки нифига не ясно как оно работает, дока пока только удручает своей лаконичностью 07.gif , а за примеры спасибо, буду ломать моск дальше smile.gif


--------------------
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
Go to the top of the page
 
+Quote Post
topkin
сообщение Jul 21 2010, 09:27
Сообщение #43


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

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



Цитата(Stanislav_S @ Jul 21 2010, 11:53) *
Ок спасибо, помучаю таймер номер 2, хотя все таки хотелось 4, поскольку из доки нифига не ясно как оно работает, дока пока только удручает своей лаконичностью 07.gif , а за примеры спасибо, буду ломать моск дальше smile.gif

Так с 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
Прикрепленные файлы
Прикрепленный файл  BlinkLED.zip ( 346.99 килобайт ) Кол-во скачиваний: 47
 
Go to the top of the page
 
+Quote Post
Stanislav_S
сообщение Jul 21 2010, 09:43
Сообщение #44


извечный пессимист
*****

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



Ага спасибо заработало, все оказалось просто smile.gif Буду мучать дальше, а вот библиотека их ненравится, больно код пухлый получается, поэтому лучше руками делать ИМХО.


--------------------
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
Go to the top of the page
 
+Quote Post
topkin
сообщение Jul 21 2010, 09:57
Сообщение #45


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

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



Цитата(Stanislav_S @ Jul 21 2010, 13:43) *
Ага спасибо заработало, все оказалось просто smile.gif Буду мучать дальше, а вот библиотека их ненравится, больно код пухлый получается, поэтому лучше руками делать ИМХО.

Не за что. Библиотека - согласен, мне тоже не нравится, как более плотно сяду на STM8, так я ее под себя перепишу
Go to the top of the page
 
+Quote Post

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

 


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


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