Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 13.12.2011, 13:40  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Правильно. Это какая то недоработка производителя. Вот если бы скрестить часы от STM8L, да с отдельным питанием как в 32-х вышло бы очень хорошо. Почему не сделали - непонятно.
Реклама:
kison вне форума  
Непрочитано 13.12.2011, 14:12  
EugenyAM
Временная регистрация
 
Регистрация: 24.09.2010
Сообщений: 97
Сказал спасибо: 9
Сказали Спасибо 41 раз(а) в 31 сообщении(ях)
EugenyAM на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от kison Посмотреть сообщение
Вот если бы скрестить часы от STM8L, да с отдельным питанием как в 32-х вышло бы очень хорошо. Почему не сделали - непонятно.
В 32L тоже нет отдельного питания. На семинаре задавал вопрос, ответили, что серия L рассчитана сразу на батарейное питание, так зачем вторая батарея?
EugenyAM вне форума  
Непрочитано 20.02.2012, 11:08  
kozer_1983
Прохожий
 
Регистрация: 15.07.2007
Сообщений: 5
Сказал спасибо: 11
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
kozer_1983 на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Здравствуйте. Подскажите пожалуйста. Работаю с STM8S105, пытаюсь вывести сигнал шим на выход TIM1_CHxN (x=1..3). Кто-нибудь сталкивался с подобным, помогите. На выводе всегда 0, хотя "дрыгать" ногой удается, шим также формируется отслеживаю на выходах TIMCH1....TIMCH4
kozer_1983 вне форума  
Непрочитано 28.07.2012, 14:39  
iIi_WARHEAD_iIi
Частый гость
 
Аватар для iIi_WARHEAD_iIi
 
Регистрация: 07.11.2010
Сообщений: 14
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
iIi_WARHEAD_iIi на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от kozer_1983 Посмотреть сообщение
На выводе всегда 0
Не знаю как в s серии, в l серии нужно было в регистрах таймера указать тактировать внешние порты и вывод сигнула наружу, только тогда смог запустить.
(*TIM2).CCER1 = TIM_CCER1_CC1E; //CC1 output enable
(*TIM2).BKR = TIM_BKR_MOE; //Main output enable
Сигнал будет подан на порт после ресета на канал 1 второго таймера. Можно переопределить внешний канал на таймере
(*SYSCFG).RMPCR1 = (u((0b00100000)&SYSCFG_RMPCR1_USART1TR_REMAP); примерно где-то в этом регистре (это для уарта)


Возникла следующая проблема с i2c.
После глубокого ресета, отключенного питания я могу прочитать всего один байт.
Затем контроллер stm8l151g6 уходит в глубокий ступор и показывает вечный старт. Ни ресет, ни отключение питания, ни перезаливка программы не помогают.
Выход из ситуации если залить программу с посылкой сигнала СТОП на и2ц контроллер опять же виснит, т.к. не может сгенерировать старт. как в последствии выяснилось он не может переключить состояние из СТАТ в СТОП и наоборот. После след перезаливки программы без посылки первого стопа, могу опять прочитать один байт, и все поновой.
По ерраташиту сказано, что посылка стопа сразу после старта и не корректное отрабатывание стопа вводит контроллер в ступор, но не на столько чтобы после отключения питания, сохранялось предыдущее состояние.

Листинг программы. Заранее благодарю за помощь.
Устанавливаем порты

Код:
(*GPIOC).ODR |= (u8)(0b00000000 & 0xff);					//IR_mod - Push-pull, fast mode 4
	(*GPIOC).DDR |= (u8)(0b00110111 & 0xff);					//IR_out - Push-pull, fast mode 5
	(*GPIOC).CR1 |= (u8)(0b00000100 & 0xff);					//IR_in - Float interrupt Off 6 
	(*GPIOC).CR2 |= (u8)(0b00110111 & 0xff);					//LF_engF - as push-pull outputs, off 2
																										//I2C_sda - open drain fast 0
																										//I2C_scl - open drain fast 1
[/php]

I2C
PHP код:
    I2C_Init(I2C1100000x00,                  I2C_Mode_I2CI2C_DutyCycle_2,                  I2C_Ack_EnableI2C_AcknowledgedAddress_7bit); 
Чтение с I2C [php] void I2C_Read_Reg (u8 DevAdr, u8 DevIntAdr, u8 BufSize) { I2C_GenerateSTART(I2C1, ENABLE); while (!I2C_GetFlagStatus(I2C1,I2C_FLAG_SB)) { } /* Send device address for write */ I2C_Send7bitAddress(I2C1, DevAdr, I2C_Direction_Transmitter); /* Test on ADDR Flag */ while (!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED)) { } /* Send the device's internal address to write to */ I2C_SendData(I2C1, DevIntAdr); /* Test on TXE FLag (data sent) */ while ((!I2C_GetFlagStatus(I2C1,I2C_FLAG_TXE)) && (!I2C_GetFlagStatus(I2C1,I2C_FLAG_BTF))) { } I2C_GenerateSTART(I2C1, ENABLE); while (!I2C_GetFlagStatus(I2C1,I2C_FLAG_SB)) { } I2C_Send7bitAddress(I2C1, DevAdr, I2C_Direction_Receiver); while (!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED)) { } while (!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_BYTE_RECEIVED)) { } I2C_Read_Buf[0] = I2C_ReceiveData(I2C1); /* Data transfer finished */ while ((!I2C_GetFlagStatus(I2C1,I2C_FLAG_RXNE)) && (!I2C_GetFlagStatus(I2C1,I2C_FLAG_BTF))) { } /* Send STOP Condition */ (*I2C1).CR2 |= I2C_CR2_STOP; }

Последний раз редактировалось dosikus; 30.06.2013 в 19:01.
iIi_WARHEAD_iIi вне форума  
Непрочитано 17.09.2012, 00:28  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от kison Посмотреть сообщение
Функция задержки иногда полезная вещь. Настраивать ее неблагодарное дело.
В общем вот пример такой задержки, компилятор Космик.
Код:
// файл delay.h
#ifndef DELAY_H
#define DELAY_H

#ifndef F_CPU
   #error "F_CPU not defined!"
#endif

#define US(x) \
(unsigned int)((((x*(F_CPU/1000000.0))‹=8)*8 \
+((x*(F_CPU/1000000.0))›8)*(x*(F_CPU/1000000.0)) - 4)/4)

#define MS(x) US(x*1000)

@inline void delay(unsigned int del)
{
volatile unsigned int tmp;
tmp = del;
#asm
$N:
        decw x
        jrne $L
        nop
#endasm 
}
#endif // #ifndef DELAY_H
А под IAR нет ничего работоспособного?
Easyrider83 вне форума  
Непрочитано 18.09.2012, 10:51  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Что то типа этого , это перелопаченная мной задержка kison'а .
Пинки принимаются...
Код:
#ifndef DELAY_H
    #define DELAY_H
    
    #include ‹stdint.h›
    
    #ifndef F_CPU
        #error "F_CPU not defined!"
    #endif
    
    
    #define US(x) \
    (unsigned int)((((x*(F_CPU/1000000.0))‹=6)*6 + ((x*(F_CPU/1000000.0))›6)*(x*(F_CPU/1000000.0)) - 2)/4)
    
    #define MS_SHORT_MAX  ((262140000UL/F_CPU))
    
 #pragma inline //=forced
 void delay(uint16_t __cycle_count)
    {
        __asm("loop:  \n"
              "decw x \n"
              "jrne loop \n"
               " nop \n");
    }
    
    #define delay_us(x) delay(US(x))
    
     #pragma inline =forced
 void delay_ms(uint16_t ms)
    {
        if(ms ‹ MS_SHORT_MAX)
            {
                delay(US((uint16_t)ms*1000));
            }
            else
            {
                while(ms--) delay(US(999));
            }
    }


#endif  // #ifndef DELAY_H
__________________
Осторожно , злой кот
dosikus вне форума  
Эти 3 пользователя(ей) сказали Спасибо dosikus за это сообщение:
Easyrider83 (18.09.2012), ut1wpr (24.10.2012), woroba (18.09.2012)
Непрочитано 18.09.2012, 10:53  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Easyrider83, У kison'а смотри еще на тему GPIO ...
http://open-electronics.ru/forum/viewtopic.php?f=4&t=8
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 18.09.2012, 11:44  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Там еще есть функция, возращающая значение F_CPU
uint32_t CLK_GetClockFreq(void)
Да и не всегда весь проект на одной частоте крутится. Я часто использую смену частот. Зависит от задачи.
Сообщение от dosikus Посмотреть сообщение
Easyrider83, У kison'а смотри еще на тему GPIO ...
http://open-electronics.ru/forum/viewtopic.php?f=4&t=8
Спасибо, у меня тоже своя фишка на этот счет.

Последний раз редактировалось Easyrider83; 18.09.2012 в 11:48.
Easyrider83 вне форума  
Непрочитано 30.06.2013, 18:48  
AlexP74
Временная регистрация
 
Регистрация: 18.01.2010
Сообщений: 89
Сказал спасибо: 7
Сказали Спасибо 22 раз(а) в 14 сообщении(ях)
AlexP74 на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Начал переписывать код с mega8 на 8l152c6, думал, вот часики встроенные, можно будет часть кода выкинуть...
Оказывается, в часики можно записать некорректное время (дату пока не проверял). Типа 25:61:61 - и они будут тикать. Секунды и минуты до 79, потом в 0, а часы до 39. Сброс происходит при переполнении младшей цифры BCD.
День недели они видать тоже просто прибавляют, а рассчитывать нужно будет ручками, если конечно есть такая задача.
AlexP74 вне форума  
Непрочитано 08.07.2013, 23:49  
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

А кто уже писал асемблерные функции отдельным файлом под IAR STM8 ? Для IAR AVR в доке всё понятно расписано, а под IAR STM8 с ходу не разобралься. Кто написал, киньте примером.
__________________
"picavr(ГАВ)мыло.ру" USB_Analyzer, Digital_Storage_Oscilloscope "picavr.kr1.ru" заказы в Китай компонентов/изготовление: плат/ЖКИ/мембраных клавиатур/имп трансформаторов
picavr вне форума  
 

Закладки
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
KiCAD-объявления и впечатления al_dan KiCAD 32 03.10.2016 17:02
Народ, посмотрите quasm, Как ваши впечатления? suri Proteus, KiCAD и другие ECAD 5 14.10.2009 11:57


Часовой пояс GMT +4, время: 02:40.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot