dac
Свой-
Постов
646 -
Зарегистрирован
-
Посещение
Весь контент dac
-
посоветуйте STM32 cortex M3
dac ответил Метценгерштейн тема в ARM
желательно посмотреть такую же осциллограмму с линией MISO на втором канале если меряете на ножке дискавери (pin20 header28 по схеме) и он не идет к вашей схеме, и там такое, тогда, 1. осциллограф - полосы пропускания достаточно? ограничение полосы отключено? режим выборки какой? 2. битый вывод проца 3. неправильная иницилизация GPIO - скорость GPIO правильно выставили? отладчиком глянтье состояние gpio на момент передачи. визуально осциллогамма выглядит, будто заряжается большая емкость или -
посоветуйте STM32 cortex M3
dac ответил Метценгерштейн тема в ARM
осциллограмму SCL и MISO в аналоговом режиме. передаются 8 и 16 бит соответсвенно :) в глючном режиме как отличаются принятый и переданный байты? попробуйте сделать задержку несколько тактов после выставления флага RNE - ощущение что не успеват записаться последний бит. -
посоветуйте STM32 cortex M3
dac ответил Метценгерштейн тема в ARM
в той теме не совсем понятно, поэтому спрошу 1. эхо на высоких частотах работает? 2. осциллограммы сняты, лог. анализатором, проведите еще снятые осциллографом в нормальном аналоговом режиме 3. попробуйте в 16-битном режиме поработать, я когда с ads7843 разбирался, она у меня в 8-битном тоже отказывалась нормально работать, причину чесно говоря не выяснил, да и лень было :( -
посоветуйте STM32 cortex M3
dac ответил Метценгерштейн тема в ARM
а не особые отличия какие? должен. осциллографом шину смотрели? -
посоветуйте STM32 cortex M3
dac ответил Метценгерштейн тема в ARM
для stm32L делал давно и сейчас проверить неначем, исходники тоже на работе, появлюсь там через пару недель. для 103, 105, 107 при PCLK 32МГц все работало при делителе SPI 2 и 4. для приведенного ниже кода PCLK 36МГц Update - код из рабочего проекта на stm32f105V, соответсвенно SPICLK=18МГц. работает с AT25DF321 void sFLASH_LowLevel_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; /*!< sFLASH_SPI_CS_GPIO, sFLASH_SPI_MOSI_GPIO, sFLASH_SPI_MISO_GPIO and sFLASH_SPI_SCK_GPIO Periph clock enable */ RCC_APB2PeriphClockCmd(sFLASH_CS_GPIO_CLK | sFLASH_SPI_MOSI_GPIO_CLK | sFLASH_SPI_MISO_GPIO_CLK | sFLASH_SPI_SCK_GPIO_CLK, ENABLE); /*!< sFLASH_SPI Periph clock enable */ if (sFLASH_SPI == SPI1) RCC_APB2PeriphClockCmd(sFLASH_SPI_CLK, ENABLE); else RCC_APB1PeriphClockCmd(sFLASH_SPI_CLK, ENABLE); /*!< Configure sFLASH_SPI pins: SCK */ GPIO_InitStructure.GPIO_Pin = sFLASH_SPI_SCK_PIN; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(sFLASH_SPI_SCK_GPIO_PORT, &GPIO_InitStructure); /*!< Configure sFLASH_SPI pins: MOSI */ GPIO_InitStructure.GPIO_Pin = sFLASH_SPI_MOSI_PIN; GPIO_Init(sFLASH_SPI_MOSI_GPIO_PORT, &GPIO_InitStructure); /*!< Configure sFLASH_SPI pins: MISO */ GPIO_InitStructure.GPIO_Pin = sFLASH_SPI_MISO_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(sFLASH_SPI_MISO_GPIO_PORT, &GPIO_InitStructure); /*!< Configure sFLASH_CS_PIN pin: sFLASH Card CS pin */ GPIO_InitStructure.GPIO_Pin = sFLASH_CS_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(sFLASH_CS_GPIO_PORT, &GPIO_InitStructure); } unsigned char sFLASH_SendByte(unsigned char byte) { /*!< Loop while DR register in not emplty */ while (SPI_I2S_GetFlagStatus(sFLASH_SPI, SPI_I2S_FLAG_TXE) == RESET); /*!< Send byte through the SPI1 peripheral */ SPI_I2S_SendData(sFLASH_SPI, byte); /*!< Wait to receive a byte */ while (SPI_I2S_GetFlagStatus(sFLASH_SPI, SPI_I2S_FLAG_RXNE) == RESET); /*!< Return the byte read from the SPI bus */ return SPI_I2S_ReceiveData(sFLASH_SPI); } void sFLASH_Init(void) { SPI_InitTypeDef SPI_InitStructure; sFLASH_LowLevel_Init(); /*!< Deselect the FLASH: Chip Select high */ sFLASH_CS_HIGH(); /*!< SPI configuration */ SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex; SPI_InitStructure.SPI_Mode = SPI_Mode_Master; SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b; SPI_InitStructure.SPI_CPOL = SPI_CPOL_High; SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge; SPI_InitStructure.SPI_NSS = SPI_NSS_Soft; #if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) || defined (STM32F10X_CL) SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2; #else SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_4; #endif SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB; SPI_InitStructure.SPI_CRCPolynomial = 7; SPI_Init(sFLASH_SPI, &SPI_InitStructure); /*!< Enable the sFLASH_SPI */ SPI_Cmd(sFLASH_SPI, ENABLE); } -
посоветуйте STM32 cortex M3
dac ответил Метценгерштейн тема в ARM
так больше 2Мгц как в первом посте, или больше 8Мгц не работает? -
посоветуйте STM32 cortex M3
dac ответил Метценгерштейн тема в ARM
строка ни о чем не говорит? 36000000/256 = 140,625 кГц -
посоветуйте STM32 cortex M3
dac ответил Метценгерштейн тема в ARM
а в чем проблема то? у меня работал stm32f105, 107, 205. частоты на память не помню, но не 2Мгц точно. точнее на 10х не мерил, неинтересно было, на 205 30Мгц при 120 тактовой - соответсвенно даташиту приведите свой код инициализациии, включая инициализацию RCC, чтоб не гадать -
3062 не знаю, на работе агилент dso5062 - картинка - сказка, после нее от QVGA воротит. про прочие параметры и не говорю. для дома выбрал owon SDS8202 (800х600) - бюджета на агилент не хватает. и в пару к нему USB логический анализатор. доступные миксы по параметрам не устроили
-
техучет - для собственных нужд, показания приборов коммерческого учета - основание для выставления счетов, оплаты и т.д. - все что связано с деньгами :) отличаются организационными мероприятиями - регистрация прибора учета, пломбирование, поверка и т.д. смотрите соответсвующие документы
-
Контроль напряжения на отдельном элементе батареи
dac ответил Toni43 тема в Схемотехника
в общем не поленился, накидал нормальную схему для варианта мк на аккум с работой в сети, самому интересно стало цепи контроля тока, внешнего датчика температуры, i2c, up down level - опционально внешний интерфейс - 485 (ограничение по скорости 9600) и требует внешнего питания 5В, зато стандартный интерефейс без извратов. целпяй сеть датчиков к компу и сразу любые логи пиши. мк в корпусе tqfp32 - чуть дороже, но плату можно на коленке сделать, если плата заказная или опытный ЛУТер, тогда можно в корпусе TSOP20, все равно бОльшая часть ножек не испльзуется на i2c можно также прицепить что понадобится - память, RTC... в принципе на оставшиеся ноги можно прицепить джамперы и адрес на 485 ими задавать, либо конфигурировать через тот же 485. мк в принципе можно любой, к чему душа лежит теоретическая наихудшая начальная точность без калибровки порядка 5%, т.е. при входном диапазоне 20В ошибка до 1В. 2.5% питание, 2*1% резисторы делителя, 0,4% ацп. в реальности наверное будет существенно лучше - 1-2%, но калибровка все равно нужна. или использовать внешнюю опору, тогда будет лучше без калибровки. чтобы гарантиированно уложиться в +-0,1В без калибровки нужна полная погрешность тракта не хуже 0,5% или 0,7% если диапазон 15В (R5 заменить на 20 кОм). приличная опора лучше 0,5% - стоит порядка 50руб. при малом или среднем количестве по моему лучше сделать автоматизированный процесс калибровки. -
Контроль напряжения на отдельном элементе батареи
dac ответил Toni43 тема в Схемотехника
зря так, решение хорошо своей масштабируемостью и затратами на разработку - спроектировал одну плату, одну программу, изолированный внешний интерфейс и тиражируй, хоть 1 хоть 200 аккумуляторов подключай :) при желании еще с контролем токов и любых других параметров. а для начинающего - может и лучше 4 делителя и мк с 12-битным ацп, точность я посчитал, здесь приводить не буду :) или оу -
Контроль напряжения на отдельном элементе батареи
dac ответил Toni43 тема в Схемотехника
тогда и не надо, делайте на чем привыкли, быстрее будет. и еще - может microwatt прав, если измерения не выводятся в реальном времени, не ведется автоматический анализ, то они никому не нужны. может проще поставить 4 компаратора и треггер с лампочкой? но если в целях саморазвития, тогда стоит :) -
Контроль напряжения на отдельном элементе батареи
dac ответил Toni43 тема в Схемотехника
макетка - верное решение :) поясню: для верхнего аккумулятора напряжение на неинвертирующем входе при заряженном аккумуляторе будет (13.8/(100к+10к))*10к=5В, при заряжающемся аккумуляторе 14,8*4В будет порядка 5.5В. не сгорит, но мерить будет погоду на марсе. поэтому оставтьте место для резистора от инвертирующего входа на землю и пересчитайте номиналы. это без учета того, что многие, даже неплохие ОУ имеют свойство инвертировать сигнал близкий к напряжению питания и/или малых коэф. усиления (до 0,3В от напряжения питания). те, кто гарантировано этого не делают иногда упоминают в даташитах, типа фича "Unity Gain Stable" или "No Phase Reversal". Причем большинство моделей этот момент не учитывают, сталкивался на MCP6хх. можно конечно оу питать от бОльшего напряжения, тогда придется защищить входы мк или ставить промежуточноый оу - вообще кривые варианты, если говорим о надежности. еще о точности в первом приближении учитывайте - разрешение ацп не является точностью, для точности есть отдельные параметры. вас в первую очередь должен интересовать total unadjusted error (ошибка неустраняемая калибровкой, в вольном переводе) - как правило 3-5 единиц младшего разряда, т.е. для 10-битного ацп это 0,2-0,5%. + погрешность ОУ, + 4-5 резисторов по 1% (погрешность складывается) + погрешность опорного напряжения. статические устраняются калибровкой, температурно-зависимые сложнее, но скорее всего Вас устроят. если изделие единичное - откалибруйте каждый канал по двум точкам и на остальное забейте, введете поправочные коэф-ты типа y= kx+b для каждого канала и нормально будет. дальше лезть в серьезную метрологию смысла нет, не та задача. -
Контроль напряжения на отдельном элементе батареи
dac ответил Toni43 тема в Схемотехника
единственное целесообразное назначение - балансировка при заряде а в остальном согласен, да и я повелся :) -
Контроль напряжения на отдельном элементе батареи
dac ответил Toni43 тема в Схемотехника
если человек путает синфазное напряжение с напряжением на входе ОУ и "6В на входе ничего страшного" - отсылаю на буквари, я не собираюсь переписывать на форуме учебники, читайте хоровица-хилла и титце-шенка. если Вам все понятно и считаете, что все знаете - сочувтсвую. я предпочитаю 4 элемента вносящих ошибку на каждый канал, вместо ваших 6 на каждый канал, хотя на самом деле минимум 7 на канал + 2 общих. Кроме того, Ваша схема работать не будет, почему - сказано выше. Если программа уровня передать 2 байта - это проблема :( неверно. правильно - вариант копирующий структуру INA149. В чистом виде ее использовать нельзя, у нее минимальный коэф. усиления 1. и стоит 3.5$. "не совсем мусорный оу" - стоит порядка 1,5$ на канал, затея точно не имеет смысла. ошибка при диапазоне 60В будет порядка 0,25В только самого ацп, без учета резисторов и опоры, поэтому надо 12 бит. поэтому выводы неверны, цитировать не буду потому что написано "для себя" исходя из условий задачи, моего опыта, навыков и доступных элементов выбран оптимальный вариант. А решать топикстартеру, плюсы и минусы решений описаны. у него может быть другая ситуация - например ящик инструментальников под столом, и что? и еще, в отличие от Вас я не утверждаю что мои решения единственно верные (вариант с ацп например был указан на форуме раньше, я его включил вторым как одно из оптимальных). Вы же упорствуете в своем, несмотря на явно указанные ошибки, а совет почитать книжки воспринимаете как оскорбление. -
Контроль напряжения на отдельном элементе батареи
dac ответил Toni43 тема в Схемотехника
хоть бы не позорился, учи матчасть что ветка про авр не посмотрел, действительно а вот на личности переходить не стоит, обычно так делают, когда аргументировать нечем. -
Контроль напряжения на отдельном элементе батареи
dac ответил Toni43 тема в Схемотехника
1. не это 2. математика за пятый класс 3. если считать нечего идем читать книги сложнее букваря. учитываем хотя бы то, что при заряде там будет порядка 60В 4. еще раз смотрим внимательно и находим одно ключевое отличие 5. многие современные мк имеют 12 разрядный ацп (stm8L, stm32, некоторые PIC, epm32...) мк ТС вроде не озвучивал, атмел я вообще дальней дорогой обхожу. 6. чем сигнал ближе к опоре, тем точнее измерение и немногие мк поддерживают опору ниже 2В для себя я бы решения расставил в таком приоритете: 1. 3шт stm8 + хост мк - по сложности задачи того же стм8 хватит, программа - на вечер работы, паять дольше 2. ацп с диф. входами и делителями 3. аналоговое решение - либо с делителями либо как по ссылке - нужно считать дальше в дискуссии учавстовать не буду, время тратить жаль, не для себя делаю. кому надо, разберется. -
Контроль напряжения на отдельном элементе батареи
dac ответил Toni43 тема в Схемотехника
R1-R8 не лишние, а позволяют затащить синфазное напряжение в пределы напряжения питания оу. без r1-r8 усилитель на выходе даст максимум 1.2В для 12В на аккуме, так как при снижении коэф. деления напряжение на входах оу выйдет за напряжение питания. а с ними можно относительно свободно играть коэффиценто усиления. для нижнего акб и так все понятно, можно прямо с делителя на ацп правильный диф. усилитель строится на 3-х ОУ, недостатки варианта на одном ОУ читаем в букваре или поймете когда будете считать резисторы, а еще надо 4 резистора с точностью лучше 1%. есть интегральные инструментальные усилители, например AD623ARZ или INA122, но стоят от 100руб, хотя это лучшее аналоговое решение на мой взгляд. кстати можно немного проще готовое решение и еще - можно прямо с делителей на ацп, а потом пересчитать напряжение программно, но точность будет хуже -
Контроль напряжения на отдельном элементе батареи
dac ответил Toni43 тема в Схемотехника
1. промэлектроника - 15руб-1шт, 12руб-75шт, 10,8руб-370шт. 2. штатный телепат в отпуске, а ТС планирует использование мк. и еще - подобное решение, с добавлением диод+полевик, позволяет избежать перезаряда отдельного аккумулятора и соответсвенно баланисровать батарею при заряде. примлемое по точности решение на ОУ обойдется не дешевле дешевое решение ниже, но по параметрам - г..но -
Контроль напряжения на отдельном элементе батареи
dac ответил Toni43 тема в Схемотехника
stm8s003 за 10руб на каждый аккум, питаться от него же, данные передавать через оптрон юартом недостатки решения - 1. сравнительно дорого, на каждый канал надо: - stm8s003 (10битный ацп) - 10 руб - 2 оптрона - 10 руб - стаб питания = опора - от 10 до 200руб - зависит от требований к точности. 2. собственное потребление (но можно оптимизировать, за счет цены) - 2-3мА стаб питания, - 3мА на мк, - делитель для ацп- до 1мА 3. низкая скорость передачи данных - на дешвых оптронах не более 9600 бод и жрут в момент передечи до 10мА -
Работа для инженера-разработчика
dac ответил nav42ok тема в Предлагаю работу
а че, для совместительства нормальные условия. если б не атмега, я бы взялся -
в конце статьи есть ссылка, там все и будет
-
сначала читаем там. ссылка на исходники в конце статьи гитхаб ну и там же есть еще ряд статей. потом задаем вопросы. сделано под STM32F207vet, fsmc модули у них вроде одинаковые с 407/ контроллер дисплея другой, поэтому файл lcdHAL придется править под свой, через пару недель выложу драйверы под disovery4 + китайский экран HY-32D (с HAL под несколько контроллеров) вопросы лучше в личку или в статье, тогда уведомления будут приходить, а то форум не постоянно читаю :) stm32_lcd.pdf
