Easyelectronics.ru

Электроника для всех
Текущее время: 23 июл 2018, 07:23

Часовой пояс: 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
Сообщения: 642
Откуда: ... Из далекой, далекой галактики
Кто-нибудь использовал 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
Сообщения: 642
Откуда: ... Из далекой, далекой галактики
Всем пасяб)) Но вроде разобрался :) А то что 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
Сообщения: 3737
Откуда: Звенигород
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
Сообщения: 642
Откуда: ... Из далекой, далекой галактики
Нет, думал разобрался, но так и не получилось задействовать...
Скидываю код. Гляньте, кто может подскажет, что не так.
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
Сообщения: 642
Откуда: ... Из далекой, далекой галактики
я хочу узнать на каком участке программы я допустил ошибку!
Камень 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
Сообщения: 642
Откуда: ... Из далекой, далекой галактики
Блин. Делаю все тоже самое... но для режима постоянной обработки АЦП.

Код:
   
        //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
Сообщения: 642
Откуда: ... Из далекой, далекой галактики
Сделал все, как по даташиту.... Заморочки больше надо вытворять в прерывании.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: 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
Сообщения: 642
Откуда: ... Из далекой, далекой галактики
Да просто пробовал 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
Сообщения: 598
Archee писал(а):
...
Это просто не поддаётся логике как можно было в такую жирную микруху с 15-ю каналами поставить такое гавёное АЦП!!
при этом в самой дешевой STM8S003F3 стоит полноценное АЦП..
Подскажите,
Есть ли какой выход из сложившейся ситуации или придётся каждое значение при сканировании 15-ти каналов доставать по отдельности?
Ха!! более того, там даже скан моуд отсутствует, короче выбираем канал, ацпируем, и считываем результат и так 15 раз =))))) это уже даже смешно)


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

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

Show опрос ADC


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


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

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


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

Сейчас этот форум просматривают: Google [Bot]


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

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

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