Easyelectronics.ru

Электроника для всех
Текущее время: 21 янв 2018, 01:55

Часовой пояс: UTC + 5 часов



    • JLCPCB - Платы прототипов всего за 2$ c бесплатной доставкой (при первом заказе)
    • 10 PCBs за $2 для 2 слоев, $15 для 4 слойной, $74 для 6 слойной платы.
    • Крупнейший китайский производитель прототипных плат. 290000+ клиентов & 8000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин радиодеталей.

Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: STM8S ADC
СообщениеДобавлено: 04 июл 2012, 21:09 
Старожил
Аватара пользователя

Зарегистрирован: 11 дек 2010, 13:08
Сообщения: 630
Откуда: ... Из далекой, далекой галактики
Кто-нибудь использовал scan mod в STM8S? Если да, поясните пожалуйста как им пользоваться и от куда забирать данные? или лучше пример с комментариями :)

_________________
С миру по нитке


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 05 июл 2012, 16:10 
Заглядывает иногда

Зарегистрирован: 15 июн 2011, 10:24
Сообщения: 36
Я могу ошибаться, но как я понял, настраиваешь с какого порта по какой сканировать, выставляешь настройки, разрешаешь прерывание и запускаешь ацп, оно начинает сканировать порты друг за другом, генерируя прерывание, в нем ты и забираешь свой результат, а какой порт это был - по своей переменной-счетчику.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 05 июл 2012, 16:18 
Супермодератор
Аватара пользователя

Зарегистрирован: 23 апр 2010, 12:58
Сообщения: 5893
Откуда: Москва/Саратов
Можно и нужно юзать DMA (если есть) - дабы аккуратненько сложить результаты в оперативку и выдать прерывание после обработки всех каналов

_________________
http://d.64h.me/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 05 июл 2012, 16:22 
Заглядывает иногда

Зарегистрирован: 15 июн 2011, 10:24
Сообщения: 36
его к сожалению нет в STM8, а в STM32 его не использовать - преступление)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 05 июл 2012, 16:27 
Супермодератор
Аватара пользователя

Зарегистрирован: 23 апр 2010, 12:58
Сообщения: 5893
Откуда: Москва/Саратов
Так, в STM8 их есть. Я просто не уверен что в том МК который использует автор он есть

_________________
http://d.64h.me/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 05 июл 2012, 16:30 
Заглядывает иногда

Зарегистрирован: 15 июн 2011, 10:24
Сообщения: 36
в STM8L есть, если я правильно понял, а в серии S нету :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 05 июл 2012, 16:31 
Супермодератор
Аватара пользователя

Зарегистрирован: 23 апр 2010, 12:58
Сообщения: 5893
Откуда: Москва/Саратов
Ой, а вот в STM8S DMA и правда нет!
КАК ЖЕ ТАК?!
Изображение
Там ведь куча периферии, которой явно не хватает DMA. Пичаль в общем

_________________
http://d.64h.me/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 05 июл 2012, 21:12 
Старожил
Аватара пользователя

Зарегистрирован: 11 дек 2010, 13:08
Сообщения: 630
Откуда: ... Из далекой, далекой галактики
Всем пасяб)) Но вроде разобрался :) А то что DMA нет - это точно печалька, тоже с ней хотел поиграться )

_________________
С миру по нитке


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 06 июл 2012, 11:38 
Старожил
Аватара пользователя

Зарегистрирован: 05 сен 2010, 07:23
Сообщения: 572
Откуда: Томск
В этом плане ль-ка действительно выглядит лучше и потребляет меньше и перефирийка по лучше. Однако с-ка берет ценой, особенно мк аналогичные меге восьмой...

_________________
ZiBlog.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 06 июл 2012, 14:15 
Супермодератор
Аватара пользователя

Зарегистрирован: 23 апр 2010, 12:58
Сообщения: 5893
Откуда: Москва/Саратов
В общем то я тоже думаю, что из S серии стоит использовать только младшие модели. Для всего остального есть 8L :)

_________________
http://d.64h.me/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 06 июл 2012, 15:04 
Старожил
Аватара пользователя

Зарегистрирован: 26 янв 2010, 21:48
Сообщения: 3681
Откуда: Красногорск МО
dcoder писал(а):
В общем то я тоже думаю, что из S серии стоит использовать только младшие модели. Для всего остального есть 8L :)

Еще есть 8s208

_________________
От Парижа до Находки с водкой лучше, чем без водки!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 06 июл 2012, 15:09 
Супермодератор
Аватара пользователя

Зарегистрирован: 23 апр 2010, 12:58
Сообщения: 5893
Откуда: Москва/Саратов
Это которые с кучей периферии и на 24Мгц? Может уж лучше вместо них использовать STM32?

_________________
http://d.64h.me/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 06 июл 2012, 21:38 
Заглядывает иногда

Зарегистрирован: 15 июн 2011, 10:24
Сообщения: 36
Смотря какие цели, у армов питание 3,3 вольта, у stm8s208 5, следовательно помехозащищенность выше, и в ответственное устройство лучше ставить восьмибитник. Имел дело, когда ацп из-за кривой разводки так шумело, что пришлось переключать опору с 3-х вольт до 5.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 06 июл 2012, 23:13 
Супермодератор
Аватара пользователя

Зарегистрирован: 23 апр 2010, 12:58
Сообщения: 5893
Откуда: Москва/Саратов
Ответственные устройства надо просто делать качественно. А 5 вольт или 3.3 - не важно
Имхо

_________________
http://d.64h.me/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 07 июл 2012, 15:27 
Старожил
Аватара пользователя

Зарегистрирован: 11 дек 2010, 13:08
Сообщения: 630
Откуда: ... Из далекой, далекой галактики
Нет, думал разобрался, но так и не получилось задействовать...
Скидываю код. Гляньте, кто может подскажет, что не так.
MAin.c
Код:
   GPIO_Init(GPIOB,GPIO_PIN_1|GPIO_PIN_0,GPIO_MODE_IN_PU_NO_IT);

   /*Analog digital convertion*/
   ADC1_DeInit();                      //деинициализация АЦП_1
        ADC1_ScanModeCmd(ENABLE);                         //включение скан мода
        ADC1_DataBufferCmd(ENABLE);
   ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS,         //не одиночное преобразование
        ADC1_CHANNEL_1,                      //выбор работы по 1 канал
        ADC1_PRESSEL_FCPU_D18,               //предделитель clk/18
        ADC1_EXTTRIG_TIM,
        DISABLE, ADC1_ALIGN_RIGHT,
        ADC1_SCHMITTTRIG_CHANNEL1,
        DISABLE);

       
       
   /* Enable EOC interrupt */
   ADC1_ITConfig(ADC1_IT_EOCIE, ENABLE);

stm8s_it.c
Код:
INTERRUPT_HANDLER(ADC1_IRQHandler, 22)
{

    /* In order to detect unexpected events during development,
       it is recommended to set a breakpoint on the following instruction.
    */
    I_ADC = ADC1_GetBufferValue(ADC1_CHANNEL_1);
    Conversion_Value = ADC1_GetBufferValue(ADC1_CHANNEL_0);
    if (I_ADC) MaxIMore=1;                            // если превышен ток
    //else MaxIMore=0;
    if ((Conversion_Value < 0x160))
    {
        /* Turn on LED1 and LED2 */
   GPIO_WriteHigh(GPIOB, GPIO_PIN_6);
    }
    if ((Conversion_Value > 0x220))
    {
   GPIO_WriteLow(GPIOB, GPIO_PIN_6);
    }
    ADC1_ClearITPendingBit(ADC1_IT_EOC);
    ADC1_ClearFlag(ADC1_FLAG_EOC);
     return;

}

в итоге с 1-го канал не идет информация, а с 0 все прекрасно работает.....

_________________
С миру по нитке


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 07 июл 2012, 20:16 
Старожил
Аватара пользователя

Зарегистрирован: 05 сен 2010, 07:23
Сообщения: 572
Откуда: Томск
Какой мк? У меня есть дисковери с STM8S003K3 могу помочь, завтра будет время. Напиши, что хочешь сделать.
Сегодня переставил систему и хотел как раз выделить пару часиков для проверки STM8S, на вопрос как использовать АЦП в качестве замены компаратора.

_________________
ZiBlog.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 07 июл 2012, 21:06 
Старожил
Аватара пользователя

Зарегистрирован: 11 дек 2010, 13:08
Сообщения: 630
Откуда: ... Из далекой, далекой галактики
я хочу узнать на каком участке программы я допустил ошибку!
Камень STM8S103.
Хочу считать данные с буфера АЦП - канал 1.

_________________
С миру по нитке


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 08 июл 2012, 12:05 
Старожил
Аватара пользователя

Зарегистрирован: 05 сен 2010, 07:23
Сообщения: 572
Откуда: Томск
Вот простой пример, для оцифровки двух каналов (0 и 1).
Преобразование запускаются по событию от таймера, период запуска 20 мс.
В обработчике считываю результат.
Проверено на STM8SVL-Discovery.
Код:
   // настраиваем таймер для генерирования прерываний с частотой 50 Гц
   // 2МГц / 32 / 1250 = 50 Гц
   TIM1_DeInit();
   TIM1_TimeBaseInit(32 - 1, TIM1_COUNTERMODE_UP, 1250 - 1, 0);
   TIM1_SelectOutputTrigger(TIM1_TRGOSOURCE_UPDATE);

   //
   ADC1_DeInit();
   ADC1_ScanModeCmd(ENABLE);
   ADC1_DataBufferCmd(ENABLE);
   ADC1_ITConfig(ADC1_IT_EOCIE, ENABLE);
   ADC1_ClearITPendingBit(ADC1_IT_EOC);
   ADC1_Init(ADC1_CONVERSIONMODE_SINGLE, ADC1_CHANNEL_1,
         ADC1_PRESSEL_FCPU_D18, ADC1_EXTTRIG_TIM, ENABLE, ADC1_ALIGN_RIGHT,
         ADC1_SCHMITTTRIG_CHANNEL0 | ADC1_SCHMITTTRIG_CHANNEL1, DISABLE);

   // разрешаем прерывания
   enableInterrupts();

   // разрешаем работу таймера
   TIM1_Cmd(ENABLE);

Код:
INTERRUPT_HANDLER(ADC1_IRQHandler)
{
    PIN_TOGGLE(PIN_TEST_LINE);

    ADC1_ClearITPendingBit(ADC1_IT_EOC);

    adc_buffer[0] = ADC1_GetBufferValue(ADC1_CHANNEL_0);
    adc_buffer[1] = ADC1_GetBufferValue(ADC1_CHANNEL_1);
}

_________________
ZiBlog.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 08 июл 2012, 20:32 
Старожил
Аватара пользователя

Зарегистрирован: 11 дек 2010, 13:08
Сообщения: 630
Откуда: ... Из далекой, далекой галактики
Блин. Делаю все тоже самое... но для режима постоянной обработки АЦП.

Код:
   
        //Analog digital convertion
        ADC1_DeInit();
        ADC1_ScanModeCmd(ENABLE);
        ADC1_DataBufferCmd(ENABLE);
        ADC1_ITConfig(ADC1_IT_EOCIE, ENABLE);
        ADC1_ClearITPendingBit(ADC1_IT_EOC);
        ADC1_Init(ADC1_CONVERSIONMODE_CONTINUOUS, ADC1_CHANNEL_1,
              ADC1_PRESSEL_FCPU_D18, ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT,
              ADC1_SCHMITTTRIG_CHANNEL0 | ADC1_SCHMITTTRIG_CHANNEL1, DISABLE);

   enableInterrupts();

   /*Start Conversion */
   ADC1_StartConversion();


Код:
INTERRUPT_HANDLER(ADC1_IRQHandler, 22)
{
    adc_buf_1= ADC1_GetBufferValue(ADC1_CHANNEL_1);
    adc_buf_0= ADC1_GetBufferValue(ADC1_CHANNEL_0);

    if(adc_buf_1) GPIO_WriteReverse(GPIO_LED,GPIO_PIN_LED);    //если в регистре есть какое-нить значение вкл./выкл. светодиод
   
    ADC1_ClearITPendingBit(ADC1_IT_EOC);
    ADC1_ClearFlag(ADC1_FLAG_EOC);
    return;
}


В итоге 0 реакции на 1-й канал :(
Подскажите что делаю не так

_________________
С миру по нитке


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 08 июл 2012, 22:48 
Старожил
Аватара пользователя

Зарегистрирован: 11 дек 2010, 13:08
Сообщения: 630
Откуда: ... Из далекой, далекой галактики
Сделал все, как по даташиту.... Заморочки больше надо вытворять в прерывании.

_________________
С миру по нитке


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 09 июл 2012, 05:25 
Старожил
Аватара пользователя

Зарегистрирован: 05 сен 2010, 07:23
Сообщения: 572
Откуда: Томск
Не совсем понял вашу фразу, но думаю разобрались.
И за чем у вас в прерывании "return;" ?

_________________
ZiBlog.RU


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 09 июл 2012, 07:29 
Старожил
Аватара пользователя

Зарегистрирован: 11 дек 2010, 13:08
Сообщения: 630
Откуда: ... Из далекой, далекой галактики
Да просто пробовал 2 варианта. В одном варианте нужно было выполнить полностью код, а во втором необходимо было выйти не выполняя последнюю строчку. Короче излишек )))))

_________________
С миру по нитке


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 18 ноя 2013, 20:35 
Заглядывает иногда

Зарегистрирован: 03 дек 2012, 17:12
Сообщения: 127
Доброго времени суток!

Копаюсь тут с STM8S208, выяснилось что АЦП2 которое в нём стоит в отличии от АЦП1 которое было в STM8S003F3
не сохраняет при скан моуде свои данные в буфферные регистры... В АЦП2 их попросту нет.

Это просто не поддаётся логике как можно было в такую жирную микруху с 15-ю каналами поставить такое гавёное АЦП!!
при этом в самой дешевой STM8S003F3 стоит полноценное АЦП..

Подскажите,
Есть ли какой выход из сложившейся ситуации или придётся каждое значение при сканировании 15-ти каналов доставать по отдельности?


Ха!! более того, там даже скан моуд отсутствует, короче выбираем канал, ацпируем, и считываем результат и так 15 раз =))))) это уже даже смешно)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 11 фев 2014, 18:39 
Здравствуйте!

Зарегистрирован: 11 фев 2014, 18:34
Сообщения: 1
Zheleznjakov если надо решение твоей проблемы могу дать готовое решение на STVD + Cosmic


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: STM8S ADC
СообщениеДобавлено: 12 фев 2014, 02:07 
Старожил

Зарегистрирован: 16 окт 2013, 01:27
Сообщения: 441
Archee писал(а):
...
Это просто не поддаётся логике как можно было в такую жирную микруху с 15-ю каналами поставить такое гавёное АЦП!!
при этом в самой дешевой STM8S003F3 стоит полноценное АЦП..
Подскажите,
Есть ли какой выход из сложившейся ситуации или придётся каждое значение при сканировании 15-ти каналов доставать по отдельности?
Ха!! более того, там даже скан моуд отсутствует, короче выбираем канал, ацпируем, и считываем результат и так 15 раз =))))) это уже даже смешно)


Все на самом деле закономерно Value Line (8S003) -это новая линейка, а 8S20* - старая.

Ну а что мешает опросить все данные кучей, предварительно задав Массив как то вот так:

Show опрос ADC


P\S 207 и 208 серия это просто ВЕЩЬ!!! для автомобильной тематики.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 32 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB