Перейти к содержанию
    

Shaman_Max

Участник
  • Постов

    33
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о Shaman_Max

  • Звание
    Участник
    Участник
  • День рождения 16.07.1976

Контакты

  • Сайт
    Array

Информация

  • Город
    Array
  1. STM32F103 ADC

    Хорошая теория и правильная. Чет сегодня не выспался я, извините.
  2. STM32 ADC

    Спасибо большое, утешили. Да сделал по такой схеме на STM32F207 два года пашет збоев таких не наблюдал, решил задать вопрос, когда делать начал на STM32F103 подобный вариант, видимо день такой, луна в марсе :) ... Еще раз спасибо, молодцы.
  3. STM32 ADC

    Здравствуйте. При програмировании DMA на ADC, в режиме DMA_Mode_Circular , насколько реально страхи сбоя синхронизации последовательности адреса DMA цикла с последовательностью ADC циклов преобразования запущенных так же в цикличном режиме ? Я как понимаю надежнее полагаться на прерывание по EOC и заново запускать цепочку преобразований с DMA циклом ? Или можно положиться на добротность периферии в этом вопросе ? Кто-то фиксировал подобные сбои смещения ?
  4. STM32F103 ADC

    Это понятно... В DMA цикле я разобрался как он работает, мне непонятно несоответствие в коде при програмировании циклов DMA c количеством циклов параллельных преобразования ADC, вы наверно заметили что очередь в каждом из ADC состоит из двух элементов, а не из 16-ти. Так зачем им надо было в примере дублировать последовательности выборок 14,11 и 17,12 , аж 8-мь раз ??? Каждая выбока в SingleMode 16 бит в Double 32 бита, следовательно две последовательности это такой массив __IO uint32_t ADC_DualConvertedValueTab[2]; Зачем еще дублировать его было 8-мь раз ???
  5. STM32F103 ADC

    Привет. Рассматривая фирменный код поддержки, пример кода инициализации ADC и DMA к нему, заметил неадекватный (большой) размер буфера DMA. При пересчете dma буфер должен быть обьявлен как __IO uint32_t ADC_DualConvertedValueTab[2], но в примере он __IO uint32_t ADC_DualConvertedValueTab[16]; Я так понял что DMA до конца цикла по буферу просто работает дальше размещая 8-мь раз эти паралельные очереди ??? ADC_InitTypeDef ADC_InitStructure; DMA_InitTypeDef DMA_InitStructure; __IO uint32_t ADC_DualConvertedValueTab[16]; /* Private function prototypes -----------------------------------------------*/ void RCC_Configuration(void); void GPIO_Configuration(void); /* Private functions ---------------------------------------------------------*/ /** * @brief Main program * @param None * @retval None */ int main(void) { /*!< At this stage the microcontroller clock setting is already configured, this is done through SystemInit() function which is called from startup file (startup_stm32f10x_xx.s) before to branch to application main. To reconfigure the default setting of SystemInit() function, refer to system_stm32f10x.c file */ /* System clocks configuration ---------------------------------------------*/ RCC_Configuration(); /* GPIO configuration ------------------------------------------------------*/ GPIO_Configuration(); /* DMA1 channel1 configuration ----------------------------------------------*/ DMA_DeInit(DMA1_Channel1); DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)ADC1_DR_Address; DMA_InitStructure.DMA_MemoryBaseAddr = (uint32_t)ADC_DualConvertedValueTab; DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC; DMA_InitStructure.DMA_BufferSize = 16; DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable; DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word; DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Word; DMA_InitStructure.DMA_Mode = DMA_Mode_Normal; DMA_InitStructure.DMA_Priority = DMA_Priority_High; DMA_InitStructure.DMA_M2M = DMA_M2M_Disable; DMA_Init(DMA1_Channel1, &DMA_InitStructure); /* Enable DMA1 Channel1 */ DMA_Cmd(DMA1_Channel1, ENABLE); /* ADC1 configuration ------------------------------------------------------*/ ADC_InitStructure.ADC_Mode = ADC_Mode_RegSimult; ADC_InitStructure.ADC_ScanConvMode = ENABLE; ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfChannel = 2; ADC_Init(ADC1, &ADC_InitStructure); /* ADC1 regular channels configuration */ ADC_RegularChannelConfig(ADC1, ADC_Channel_14, 1, ADC_SampleTime_239Cycles5); ADC_RegularChannelConfig(ADC1, ADC_Channel_17, 2, ADC_SampleTime_239Cycles5); /* Enable ADC1 DMA */ ADC_DMACmd(ADC1, ENABLE); /* ADC2 configuration ------------------------------------------------------*/ ADC_InitStructure.ADC_Mode = ADC_Mode_RegSimult; ADC_InitStructure.ADC_ScanConvMode = ENABLE; ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfChannel = 2; ADC_Init(ADC2, &ADC_InitStructure); /* ADC2 regular channels configuration */ ADC_RegularChannelConfig(ADC2, ADC_Channel_11, 1, ADC_SampleTime_239Cycles5); ADC_RegularChannelConfig(ADC2, ADC_Channel_12, 2, ADC_SampleTime_239Cycles5); /* Enable ADC2 external trigger conversion */ ADC_ExternalTrigConvCmd(ADC2, ENABLE); То есть при данной инициализации ADC последовательностей и режима, DMA_InitStructure.DMA_BufferSize можно установить равным 2 ???
  6. Вот хорошие, дела. У меня внешняя часовая микросхема от ионистора 0.22F, неделю пашет. А тут как раз мой размерчик XXXL. 5000 F !!! БООЛЬШОЕ СПАСИБО. Если честно, то я даже не знал что такие размеры вообще выпускают, есть над чем подумать.
  7. Да они такие, эти презренные программисты, лезуть куда нельзя. :maniac: Все походу разобрался я с законом ома. Вспомнил как резисторы гасяки подбирал, когда светодиод подключал на 320 вольт постоянки. Таки да, 3 вата улетают в никуда, ток то я ограничиваю от 320 вольт, по сравнению с мощностью лампочки 1.5 V * 0.01A = 0.015W, то КПД 0.5 % выходит. Мда, забыл, сбило меня с толку относительное ЭДС между аккумуляторами. Ну для МУ-кроконтролерщика - это простительно, зря только отнял у вас столько времени. Особое спасибо за труды GPelya.
  8. Ну мерить падение напряжения, я уже и в детстве умел. Только когда повзрослел чуть, то понял, что я меряю на элементе R - нерастраченный электрический потенциал, названный падением напряжением, видимо для лучшего понимания процесса. Одно мне не ясно, почему с сопротивления мощность электрическая, куда то у вас уходит ? Это же всего-лишь проводник уменьшающий (скорость перемещения электронов) ток в цепи, побочные действия - это нагрев, в подарок (в данной схеме). Занимаюсь микроконтроллерами, пришло время заряжать аккумуляторы для автономных проектов, так диспетчеризации всякие измерительные. В общем не для продажи это, так для комплектности. А тут еще случайно схему нарыл, не я конечно понимаю, что овчинка выделки не стоит, аккумуляторы дорогие и ресурс у них слабоватый, но технологии меняются, ресурс увеличивается. Вот хочу проверить, что выйдет, может в своем сарае уличном освещение с лампочек сделаю. Переключаемые аккумуляторы.
  9. Я немного запутался в процессе заряда видимо. Насколько я уверен в то, что работа по заряду аккумулятора производится током в цепи, этот ток возник из-за разности потенциалов между ними (плюсовые потенциалы) - это наши 4 вольта, поэтому скорости протекания тока зарядов обусловленны лишь этим ЭДС. Поэтому немного непонятен вас расчет, хотя с математической точки зрения все сходится. Если например взять, вместо блока питания конденсатор на допустим 100 Мкф и зарядим его до напряжения 16 вольт, по формуле E=(CU^2) / 2, мы знаем его начальную энергию это ((16*16)*0.0001) / 2 = 0.0128 Вт. После подключения конденсатора на аккумулятор через зарядовое сопротивление, через время R*C - напряжение на конденсаторе станет равным напряжению на аккумуляторе и будет равно 12 вольт, теперь можно снова посчитать энергию на конденсаторе, это будет ((12*12)*.0001) / 2 = 0.0072 ватт. Уже этот пример показывает, что рассчитывать мощность растрачиваемую блоком питания по формуле 16 вольт * 5A, как-то неправильно, ведь реально отобранная мощность, если выразить в процентах в показательном случае с конденсаторами, будет равна 43.75 процента от начальной энергии. Значит вместо 80 ватт, физически будет тратится лишь около 35 ват с блока питания, а еще у вас тратится на резисторе 20 ват. Теперь вопрос, что остается для зарядки 35 ват источника - 20 ват на сопротивлении, итого 15 ват нв аккумулятор остается, плюс еще вычтем процентов так 10 от этих 15 ват, в знак глубокого уважения химическому процессу аккумулятора ? В итоге получаем что за 16 часов, при расчете таким-вот вашим методом все зарядится лишь на 240 ват обшей энергии, а значит надо будет еще заряжать до полной емкости 48 часов ??? Возможно лишний просчет реальных потенциалов на источнике питания и аккумуляторе просто не нужен, а нужен только лишь тот относительный от которого протекает действительный ток ??? Из расчетов видно, что с блока питания тратится примерно 35 ват, если посчитать по ватам то за 16 часов получим общую мощность прошедшую через аккумулятор = 560 ват, что очень близко стоит к посчитанной мощности 12 вольтово 50 амперного аккумулятора, но все тоже не похоже на правду. На правду не похоже так же то что если считать по мощности на сопротивлении - мощностью заряда аккумулятора, то за 16 часов получится вообще 320 ват.
  10. Вот собственно тема обсуждения, кто-нибудь подскажет как правильно считать энергетический КПД этой схемы. Если пренебречь КПД источника питания, а считать его выходную мощность за базовую эталонную энергию, от которой будем считать наш КПД, то в подобной резистивной зарядке выделение мощности на ограничивающем сопротивлении не считается вообще (в смысле эти 20 ватт), а только лишь на КПД самого процесса зарядки конкректно для каждого аккумулятора (износ, тип химии и т.д.), я правильно понял ? Если честно, то я так и думаю, просто хочу увидеть дополнительно ,ответ специалистов.
  11. Схемным подходом я посоветовал как бороться с обратками во флайбаке, более оптимально же по сравнению с трансилами. Подбирать резонанс. А Вас я лично обидел своим появлением, или с ходу начал сыпать советами, не поздоровавшись ?
  12. Синхронный в этом случае - синхронизированный. А КПД действительно "высокий".
  13. А почему-бы не использовать вот это решение, правда особенность этой схемы то что сам контролер нужно реализовывать самому, но вполне реально. Придется синхронизировать фазы включения транзистора, для периодической вольтодобавки, но это того думаю стоит. Чем гонятся за проблемами прошлого тысячелетия. Нагрузка влияет только на частоту, а не на затухание сигнала в контуре, на затухание влияет по прежднему только омическое сопротивление. Естественно здесь нужен зазор. :santa2:
  14. Здравствуйте All. Меня недавно заинтересовала, такая тема как расчет КПД зарядки аккумулятора. Из того что мне известно в электротехнике по базовым элемента (дросель, трансформатор, конденсатор и т.д.), я сделал вывод что процесс зарядки аккумулятора это чисто токовый процесс, из прочтенной литературы по аккумуляторам известно, что для достижения оптимального КПД зарядки, я имею ввиду энергетический КПД, аккумуляторы заряжают током определенного для аккумулятора номинала (обычно 10 - 16 часовой режим при токе в 10 раз меньше, чем рекомендованный ток разряда). В случае крайностей: зарядки большим током - химический процесс не успевает аккумулировать(эффективно выполнять работу по перестройке хим. связей) всю энергию электронов в своей емкости и большая часть электронов проходит не совершив работу, а при очень маленьком токе, идет уже конкуренция с само-разрядным процессом аккумулятора, плюс некоторые особенные нелинейности тока заряда под конец зарядки для лучшей эффективности. В основном, скорость зарядки прямо пропорциональна току, но имеет свой оптимальный режим. Теперь если забыть реальные характеристики зарядки аккумулятора, а упростить понимание аккумулятора, как о некой черной коробочке, можно приступить к вопросам. Вопрос первый,по энергетическому КПД, которое можно вычислить зная потраченную мощность из источника питания заряжавшего наш аккумулятор и мощность отданную аккумулятором в процессе разряда на нагрузку, какой он обычно для самого лучшего и свежего аккумулятора ??? И насколько поднимается эффективность заряда если заряжать аккумулятор через линейный стабилизатор тока выполненный на биполярном транзисторе или импульсным методом используя дросселя в качестве ограничения тока (в импульсном режиме) ? Дополнительный вопрос: допустим, что для заряда 12-ти вольтового аккумулятора , от блока питания 16 вольт, в простейшем случае для ограничения тока хочу использовать обычное сопротивление нужной тепловой мощности рассеяния(чтоб не дымилось), ограничить ток допустим в этом примере на 5 А . Зная по справочным данным сопротивление нашего аккумулятора варируется от 0.5 - 0.01 ома в зависимости от процента заряжености, поэтому при расчете ограничивающего сопротивления я пренебрегаю номиналом омического сопротивления самого аккумулятора. Высчитанное сопротивления будет равно (16-12) / 5 = 0.8 ома. Разность потенциала зярядки 4 вольта, эти 4 вольта присутствуют на концах нашего токо-ограничивающего сопротивления и поэтому при токе 5 А мощность выделяемая в тепло током зарядки аккумулятора будет равна 20 ваттам. Как считается КПД заряда? Я знаю два расчета: расчет первый : ток заряда, возникший в цепи соединений аккумулятора и блока питания, возник из-за относительной разности потенциалов равного 4 вольтами, следовательно мощность растрачиваемая блоком питания на заряд аккумулятора будет равна 20 ваттам, то есть - 4 вольта * 5 ампер ? Тогда КПД передачи энергии от зарядки аккумулятора блоком питания, до съема энергии нагрузкой уже непосредственно от аккумулятора, будет зависеть только от эффективности химического процесса зарядки ? + Тепло от сопротивления получаем в подарок. В итоге КПД зарядки аккумулятора зависит - только эффективности химического процесса ? Другой расчет: где растраченная мощность блока питания берется из расчета напряжения источника питания заряжавшего аккумулятор 16 вольт * 5 A, в итоге получаем 80 ват потребления цепью от блока питания, еще от этого вычитается мощность выделенная на ограничивающем сопротивлении (это наши 20 ватт), в результате эффективная мощность дошедщая до аккумулятора не может быть больше 60 ват, ну еще от этой мощности надо отнять эффективность процесса зарядки, в итоге получаем всегда меньше или равно 50 процентов всей энергетической эффективности использования аккумуляторов вообще и естественно, после этого встает вопрос о применении в схемах заряда, вместо обычных сопротивлений - импульсных схем заряда, в которых индукционные элементы компенсируют потери мощностей, которые имели место на ограничивающем сопротивлении. Во втором расчете, мне не нравится расчет потерянной мощности на ограничивающем сопротивлении, в этом случае сопротивление выполняло лишь роль узкого канала ограничивающего лишь скорость перетекание зарядов от блока питания к аккумулятору(ток), и по моему в случае с аккумулятором (не реактивный элемент), "потерянная мощность " выделенная в виде тепла на сопротивлении считаться не должна ?!? Какой расчет ближе к ИСТИНЕ ? Большую лабораторию не имею и не отслеживал эволюцию и их причины совершенствования зарядных устройств. Так что проверить на практике даже такие примитивные схемы пока не могу.
×
×
  • Создать...