Jump to content

    

Xenia

Модератор FTP
  • Content Count

    4561
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Xenia

  • Rank
    Гуру
  • Birthday June 2

Информация

  • Город
    Москва

Recent Profile Visitors

9793 profile views
  1. Это не ностальгия, а ... импортозамещение! :) Особливо в свете нового законопроекта, запрещающего продавать гаджеты без российского программного обеспечения. Вместо китайской музыки игрушка должна играть "Подмосковные вечера!"! :)
  2. Все 8 внешних кнопок соединить параллельно, т.к. всё равно никто реально не помнит, какой кнопке какая китайская мелодия соответствует :).
  3. Я имею право кричать "эврика!", поскольку нашла для топикстартера самое дешевое решение (своими руками), тогда как вы рассуждаете с важным видом, пытаясь накручивать цену. С учетом найденного мной дешевого "voice module", этапы проекта выглядят так: 1. Топикстартер покупает один модуль ( https://aliexpress.ru/item/32735364629.html ) на испытание, беднея на этом на 115 рублей. Такого рода модули входят в детские электронные конструкторы, т.к. их освоение не представляет особого труда. Схема присоединения примитивная: Реально нужна лишь кнопка RE для записи очередной мелодии и кнопка PE для ее воспроизведения. Для начала можно присоединить микрофон и потренироваться на записи голоса, а потом вместо микрофона можно будет присоединить линейный выход звуковой платы и записывать музыку. Уровень громкости придется подбирать по слуху - до какого-то уровня громкость воспроизведения растет, а дальше начинаются линейные искажения. Не думаю, что эту часть работы можно переложить на кого-то другого, кроме заинтересованного лица. Этим этапом ему имеет смысл заняться лично, т.к. никто кроме него, не знает, какие мелодии туда надо записывать. Кроме того, справившись с этим этапом, топикстартер сможет сам заменять мелодии, не прибегая к помощи посторонних лиц, а тем паче, не оплачивая их работу. 2. Рекомендованный мною модуль не умеет зажигать светодиодов, а потому он вставляется в игрушку вторым номером, параллельно тому родному модулю, который уже присутствует в игрушке. Параллельность здесь касается только питания и кнопки пошагового воспроизведения (PE). Тогда как Speaker отсоединяется от старого модуля и присоединяется к новому. Более ничего присоединять не нужно, т.к. предполагается, что мелодии на новый модуль уже записаны на 1-ом этапе. В результате получится так, что старый модуль по-прежнему зажигает светодиоды, а музыку играет новый модуль.
  4. Нашла! Вот она: https://aliexpress.ru/item/32735364629.html "Звуковой модуль для электронной игрушки IC чип диктофон 120s 120secs Запись Воспроизведение разговор, Музыка Аудио записываемая доска подарок", 115.66 руб, звучание 2 минуты. И даже микросхема внешней flash-памяти на том же месте!
  5. Ардуина - дорого. Сама эта игруха стоит дешевле Ардуины, а если приплюсовать стоимость разработки, то и вовсе окажется неэффективно. Тогда уж лучше купить у китайцев за 37 рублей :) "ISD1806 6S Звук Записываемый чип IC голосовой музыки говорящий рекордер модуль 8ohm динамик электронный подарок открытка 3-4,5 в" https://aliexpress.ru/item/33042382050.html Тем паче, что я подозреваю, что это ближайшая родственница той "нашлёпки", которую мы сейчас обсуждаем. Она даже по внешнему виду похожа: А тут на нее даташит лежит: https://www.nuvoton.com/export/resource-files/EN_ISD1800_Datasheet_Rev_1.0.pdf http://www.atchip.com/isd/Datasheet/ISD1806B.pdf
  6. Чтобы wav проигрывать, ЦАП нужен, а у таких копеечных МК его не бывает. Явно тут PWM.
  7. Cкажите, а как вы оцениваете возможность прочесть память, не отпаивая ее? Например, существует такой "хакерский" способ - держат у контроллера кнопку RESET нажатой (или как-то еще состояние RESET'а вызывают), благодаря чему, втечение этого времени все его порты находятся в высокоимпедансном Z-состоянии, которое не мешает читать и писать во флешь сторонними средствами. Правда не знаю, где у этой нашлёпки ресет, но было бы заманчиво прочесть память, не отпаивая ее. 32 мегабита - это всего 4 мегабайта, слишком мало для десятка mp3, а тем более wav. Скорее всего, там, как и в большинстве игрушек, - midi, когда задается частота ноты (в тактах таймера) и ее длительность (в тактах другого таймера). Т.е. топикстартеру было бы полезно послушать "музыку", которую исполняет игрушка сейчас, и определить, все ли ноты одной громкости, и бывают ли аккорды, когда два тона звучат одновременно. Если, конечно, ему слон на ухо не наступил :). Кроме того, есть подозрение, что в памяти записана не музыка, а прошивка для контроллера целиком, в которой midi-мелодии оформлены, как массивы констант.
  8. Версия 8.42 с нами не дружит.

    Правильный термин - крякерша. :)
  9. Шум сильно увеличивается, если малый период выбрать. Опять же, если у вас механика какая-то движется, то это достаточно медленный процесс, позволяющий не торопиться. Суть тут в том, что внутри AD7746 стоит АЦП сигма-дельта типа, который не мгновенное измерение делает, а НАКАПЛИВАЕТ его втечение всего периода измерения. Т.е. выдает СРЕДНЕЕ значение за период. А иначе бы он 24-разрядным не был. В даташите есть табличка "OUTPUT NOISE AND RESOLUTION SPECIFICATIONS" и в ней написано, что если вы станете так шустрить, то у вас останется 15 бит, а шум увеличится на порядок. И вообще, если на автомобиле плохо ездите, то не стоит форсировать скорость. Вот в данном случае лучше сперва реализовать наиболее надежный режим, а уж рисковать потом вы и без моей помощи сможете. Разве так уж сложно одну константу другой заменить? Там после двоеточия было написано, какие: Вместо source ставьте 0, если хотите мерить ёмкость. При source=1 он измеряет напряжение между контактами VIN+ и VIN-. polar для дифференциального режима 0, а для униполярного 1. Что это за режимы, написано подробно в даташите. Я лично работала в униполярном режиме (polar=1), т.е. измеряла ёмкость между ножками CIN+ и EXC.
  10. Позвала в тему Klen'а. Если зайдет на форум, то прояcнит нам ситуацию с avr-gcc. Ему лучше знать, что там происходит на самом деле. P.S. Недавно он тулкит для RISCV-gcc написал, на радость Eddy_Em. :)
  11. Ксения здравствуйте!

     Я знаю что у Вас богатый опыт работы с ADs1255, подскажите пожалуйста, как синхронно считать данные с двух ацп типа ADS1255.

    Работать по синхроимпульсу у меня получилось, а как считать в контроллер, сомневаюсь.

    Сохранятся ли данные преобразования на втором ацп  после того как я прочитаю перовое. Т.е. "дергать"  SYNC  одновременно , а читать по очереди. 

    Смотря на рисунок 18 DS видно что после чтения  начнется следующее преобразование (DRDY). По тексту нет четкого описания, или я что то не понял.

    Спасибо.

    Александр

     

    1. Xenia

      Xenia

      Привет!

      Цитата

       

      Сохранятся ли данные преобразования на втором ацп  после того как я прочитаю перовое. Т.е. "дергать"  SYNC  одновременно , а читать по очереди.

       

      Данные предыдущего замера этот АЦП сохраняет вплоть до появления результата следующего замера. Причем, ни чтение данных, ни внешний сигнал SYNC не приводят к забыванию данных. Проще говоря, забыть данные он просто не может :), а "пропасть" данные могут только по единственной причине - их замещению более свежим результатом.

       

      Тем не менее, синхронизация нескольких АЦП через SYNC кажется мне плохой идеей, т.к. сигнал SYNC сбивает АЦП с темпа, заставляя его бросить преобразование, которое он уже начал, и начать его сызнова. А при этом о точности выдерживания периода/частоты не может быть и речи, т.к. SYNC периодически палку в колеса вставляет, заставляя каждый раз бросать часть проделанной работы.

       

      Хороший способ синхронизации вижу в том, чтобы ... посадить оба АЦП на один кварц! Тогда кварцевый резонатор ставится только на один АЦП, а XTAL1 (CLKIN) второго напрямую подключается к XTAL2 (CLKOUT) первого. Если уже имеешь плату с обоими кварцами, то второй из них можно легко выпаять и соединить оба АЦП перемычкой, чтобы они работали всегда СИНХРОННО! Однако SYNC все равно подать хотя бы раз при после инициализации нужно! Т.к. даже на одном кварце оба АЦП могут находится на разных фазах преобразования, которое занимает много тактов. Но можно синхронизировать их и через общий RESET.

       

      Если скорость сэмплирования невелика (1 КГц или ниже), то оба АЦП обслуживаются по прерыванию от ~DRDY по очереди (~CS выставляется тому, с кем идет разговор). Но если скорость велика, а у вас на МК есть 2 штуки SPI, то можно каждый из АЦП подключить к своему SPI, оба ~CS  всегда держать включенными и запускать нужный SPI сразу по готовности соответствующего им ~DRDY.

       

      Заодно взгляните на ADS1293:

      https://aliexpress.ru/item/4000173607711.html

      Это АЦП примерно того же класса, что и ADS1255 (только скоростью чуть поменьше), где все его 3 входа не мультиплексированы, а работают ОДНОВРЕМЕННО! Попросту сказать, в этом чипе находятся сразу 3 штуки АЦП, но цифровая часть у них одна на всех. Т.е. устанавливаемый режим автоматически распространиться на всех трех, и данные свои они тоже выдают паровозиком при одном ~DRDY.

      Бывают такие не только на 3 канала, но и на 4, 6, 8 (только стоить будут соответственно дороже). Потому они и позиционируются для медициских целей (ЭКГ и ЭЭГ), что там нужно строгая синхронизация между отведениями, т.к. вычисляется их взаимная корреляция.

       

      Ксения

       

       

       

       

    2. messenger

      messenger

      Рекомендуемую микросхему обязательно изучу.

      Я решил попробовать ads 1255 на максимальной скорости, соответственно фильтрация внутренняя не работает. А так  на 30 кГц нужно ждать 5 тактов DRDY (таблица 15) до установления показаний ацп, и мне показалось что дергать SYNC будет разумней. Что то сходу не смог найти время между DRDY, но получается забрать данные нужно до прихода следующего?

      Почитаю еще раз DS, вроде ybult  не написано, что нельзя сразу после чтения опять дергать SYNC

    3. Xenia

      Xenia

      Цитата

      А так  на 30 кГц нужно ждать 5 тактов DRDY (таблица 15) до установления показаний ацп, и мне показалось что дергать SYNC будет разумней.

      4 первых измерений приходится пропускать, т.к. внутри этого АЦП стоит фильтр 4-го порядка (или 3-го?). Но дальше АЦП он может делать хоть бесконечно много замеров и все они будут правильными, т.к. перед ними уже есть 4 предшествующих измерения, позволяющих делать аппроксимацию/сглаживание по нескольким точкам. Но если вы дернете SYNC, то с этого момента вам снова придется выбросить 4 измерения подряд, которые станут комом. Какую тогда "максимальную скорость" вы получите, если из 5-ти измерений вынуждены будете выбрасывать 4?

  12. А вы можете объяснить, отчего STM8 у вас раздражения не вызывает, тогда как пользователей AVR вы хотите отправить на пенсию? :) Только ли от того, что STM8 моложе?
  13. Ага! Так вы еще и борец с ретроградами? :) Между тем, сама тема по поводу финансирования AVR возникла после того, как аналогично была профинасирована поддержка m68k: Вы совершено вправе пропагандировать те средства, которые лично вам кажутся прогрессивными. Скажем, Cortex вместо AVR, Linux вместо Windows, аспирин-UPSA вместо ацетилсалициловой кислоты :), однако было бы полезно помнить, что AVR - это наше СЛАВНОЕ прошлое, которое всё еще с нами. К тому же Microchip по слухам собрался делать новые Xmega (0-серии), а до этого совсем недавно были выпущены обновленные Tiny (ATtiny3217 Family) и Mega (ATmega4809 Family). Ожидаем выпуска новых Xmega (AVR28DA128, AVR32DA128, AVR48DA128, AVR64DA128).
  14. Как-то незаметно дискуссия перешла в сферу: "Нужен ли нам до сих пор AVR или пора всем нам дружно от него отказаться?". Тогда как у меня возникают совершенно иные ассоциации по поводу данной темы: "А что, собственно, такого кардинального произошло с GCC, что он теперь код под AVR компилять разучился?" Если подвижки с новым стандартом GCC настолько велики, что он утерял совместимость со своими прошлыми версиями, то не по поводу AVR нам надо сокрушаться, а по тому, что все операционки Linux в мире рухнут вместе с написанными под него прикладными программами, т.к. новый GCC откажется их компилировать. А если ничего такого не предвидится, и код, ранее написанный на прежних версиях GCC будет продолжать нормально компилироваться и в новом стандарте, то причем тут AVR? Очевидно, что GCC не может страдать предвзятостью, свойственной участникам этой темы, и рассуждать так: "AVR устарел, а потому компилировать его я не стану". Предположу, что тот мужик просто раскрутил доверчивую аудиторию на донат за адаптацию AVR к новому GCC, тогда как эта адаптация, скорее всего, совершенно не требуется.
  15. Версия 8.42 с нами не дружит.

    Приготовила новый патчер: http://77.72.19.19/Link/iarpatcher32.html по замыслу должен лечить, как старые, так и новые версии (ewarm8421 и ewarm8422). Но гарантировать, что он и в будущем будет работать, нельзя, т.к. неизвестно, какими версии станут в будущем.