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

tmtlib

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

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

  • Посещение

Весь контент tmtlib


  1. Спасибо за ответ, хотя понимаю что мой вопрос немного слишком =) Подключил осциллограф и до меня начало доходить. Сейчас смотрю книгу "Сопряжение ПК с внешними устройствами" 2001: если по схеме снизу подключить к "плюсу" оптопары 3.3в, а к "минусу" - PA9, то для нормальной работы схемы PA9 должно выдавать от 0 до 3.3вольт, и при 3.3 вольтах диод погаснет. У меня на PA9 выдаётся 1 вольт. Честно скажу, в документации ещё не смотрел какое напряжение должно быть. Т.е. нужно или резистор ставить или ещё чего. Для начала попробую верхнюю схему =) И ещё вспомнилось: Если без ограничения на размер кода, то помимо TrueStudio оказалось ещё есть интересная штука http://coocox.org/CoIDE/CoIDE_Updates.htm (CoIDE?). Вчера в какой-то статье нашёл ссылку на эту софтину. По описанию - похоже на TrueStudio. Всё это не только для STM, так что возможно имеет смысл попробовать. UPDATE: Заработало, по схеме с инверсией из книжки - подтяжка к 5 вольтам. Но вот у меня теперь возник другой вопрос. Без нагрузки на выходе мк PA9 есть 3.3 Вольта, а после подключения оптопары (светодиод) напряжение на PA9 падает где-то до 1.5 Вольта. Как это для мк-то, стерпит? Может нужно ставить токоограничительный резистор, но будет ли тогда нормально светить инфракрасный диод в оптопаре не представляю.
  2. Заработало! Но пока без светодиода. символ пробел = 0xBF = 191 = 10111111 символ пробел = 0x20 = 32 = 00100000 - так должно быть символ "0" = 0x9f = 159 = 10011111 символ "0" = 0x30 = 48 = 00110000 - так должно быть т.е. уровни нужно инвертировать, и съедается стартовый бит. Но как новичок в этом деле я не совсем врубаюсь как ставить светодиод. Я оптопару напрямую подключаю к выходам микроконтроллера. Внутри оптопары по сути уже есть светодиод. Если я снаружи поставлю ещё один, то в зависимости от полярности либо всё перестанет работать, либо ничего не изменится. Короче я завис Может есть схемка на подобную тему. p.s. Подрубил оптопару к выходам "GND" и "PA9" на STM32 Discovery. PA9 - это выход TX с USART1. Скорость USART-а задал как USART1->BRR=8000000L/9600L, т.е. исходя из скорости кварца в 8МГц, хотя здесь (http://habrahabr.ru/blogs/DIY/132739/) прочитал, что скорость по умолчанию 24МГц (8МГц умножается на 3?).
  3. Спасибо, ша попробую =) Не видел такого. Разве что сделать плату, соблюдая все нюансы и тонкости по наводкам и питанию, генератор белого шума перед АЦП на пол бита, а в прошивке сделать оверсемплинг. Сам не пробовал, но почти у каждого производителя есть аппнота по оверсемплингу. А я вот тут подумал, генератор белого шума на пол бита нельзя ли программно сделать, замкнув выход ЦАП на входы АЦП и шипеть туда. Разрядность ЦАП-а вроде больше. Поискал на эту тему, но ничего не нашёл.
  4. В процессе изучения добрался до USART-а решил подрубить платку STM32F100RB Discovery к COM1 компьютера, а на плате оказались только TTL выходы . В коробке с винтиками нашлась парочка PL2303, я уж думал можно было бы подключиться напрямую в USB, но они у меня старые откуда-то валялись и видимо уже не фурычат. Может сделать как на схеме отсюда? http://www.works-electric.ru/soglasovanie_...arta_RS232.html Вроде бы дёшево и сердито, но вот есть небольшие сомнения по поводу уровней USART STM32 - по-моему их полярность нельзя задать, и придётся ставить ещё какой-нибудь max232 и т.п.. p.s. Если кто знает где ещё есть подобные малюсенькие схемки, буду рад ссылкам.
  5. и ещё, это, доверяй но проверяй :laughing:
  6. Ещё заметил по микросхемам NXP в первой теме: на той странице есть и чипы с RAM памятью 8кб. Раньше не заметил или их недавно добавили. А в плане соотношения цена-объём памяти лидирует ST: STM32F103x с памятью RAM 20кб, а флеш начинается с 64кб, а цены наверное будут даже ниже чем у tssop-корпусных NXP. Ещё такой интересный глюк, не знаю только у меня ли: паять LQFP64 проще, чем LQFP48, так как большую микруху проще прижать пальцем, правда ног больше потом паять. Если же LQFP48 отпозиционировав неудачно прижать пальцем, то угол паяльника уже нужно как-то менять, и хуже заметно совпадение дальних ног =)
  7. интересно что внутри, но скорее всего там не ширпотребные мк. Я ещё хотел звуковые эффекты в мини-корпусе, где литиевая батарейка размером чуть больше LQFP48, сначала воодушевился, прикинул что обвязка с обратной стороны платы, батарейка вплотную к мк, и гамбургер весьма компактен. А потом, столкнувшись с нехваткой памяти, более реалистичный проект DC вольтметр 0..30в со встроенной пародией на частотомер, что полезнее в повседневной деятельности, им можно было бы тыкать ноги мк и т.п..
  8. А что если у автора темы какой-нибудь штекер типа"левый канал, правый канал, земля"? Если мы воткнём его задом-наперёд, то получим "земля, правый канал, левый канал". После этого перестанет нормально работать правый канал, а левый останется на неправильном месте. Или что-то типа такого. Т.е. для успеха мероприятия земля должна быть посередине или разъём из отдельных штекеров. Может действительно сделать попроще - перекусить нужные провода, снять изоляцию и скрутить обратно в нужном порядке. Места скрутки замотать изолентой или скотчем. Когда придёт опыт, раскрутить изоленту, смазать флюсом места скрутки и пропаять паяльником, закрутить изолентой обратно. На плате паять не советую новичку. Отпаять-то может и отпаяете, потом припой из дырки снимать. А так как по-началу всё хочется сделать идеально, или перегреете плату или ещё чего, так как дырок под провода не будет видно, а напаять сверху - неэстетичные сопли. А потом паяльник случайно проделает отверствие в корпусе компьютера, и т.д. т т.п. ну я думаю многие знают как это бывает =) p.s. Это как с новыми мобилами, их аккуратно держат кончиками двумя пальцев, боятся заляпать или поцарапать. А в итоге он выскальзывает и падает, экран улетает в одно место, батарея в другое, а на корпусе хорошая такая жирная царапина. Уж лучше его в карман с ключами положить, а при пользовании
  9. Для полноты картины сначала о простой огибающей сигнала - эта попросту график, либо массив точек, который был получен с помощью аналого-цифрового преобразователя (АЦП). Например, стоит микрофон, мы в него поём звук "аааааа!!" с частотой 6кГц, через провод попадает в звуковую карту компьютера или ноутбука, подходит к микросхеме АЦП, преобразуется в массив точек и выводится на экран в виде графика в звукозаписывающий программе: синусоиду с частотой 6кГц. Почему бы это не назвать просто сигналом? А фиг его знает. Может из-за того, что этот график только "огибает" контуры реального сигнала из реального мира, микрофлуктуаций которого мы не увидим в силу ограничений АЦП и дискретности записи. Комплексная огибающая - это попросту два таких графика, в некотором смысле стерео-запись, когда в звукозаписывающей программе мы видим два графика. Если петь звук "аааааа!!" в стерео-микрофон, то в зависимости от того, к которому микрофону мы ближе, звук до него долетит раньше, поэтому на графиках двух синусоид мы можем видеть смещение фаз, отражающее наше положение относительно микрофонов в пространстве. Но это можно с натяжкой назвать комплексной огибающей. А вот если мы подрубим к микрофонному входу квадратурный приёмник (выдерем его из рации, к примеру), то записанный сигнал можно назвать комплексной огибающей. А иногда комплексной огибающей называют график фазы по времени квадратурной модуляции, он огибает фазу, короче тут ещё зависит от терминологии вашего преподавателя и изучаемых книг. Теперь о том, зачем нужна комплексная огибающая, т.е. зачем нам нужно 2 графика вместо одного. Для начала возьмём простую огибающую, состоящую из одного графика синусоиды. По оси X отложено время, по оси Y - амплитуда в каждый момент времени. Как нам определить фазу синусоиды в тот или иной момент времени? Если это будет делать человек, то он взглядом определит, "поднимается" ли график в этой точке, или идёт "на спуск", ниже оси X он или выше, и сможет сделать вывод о том, какая же фаза в данной точке (0..360 градусов, 0..2*Pi). Например, 0.1211*Pi или 1*Pi. Если мы захотим запрограммировать этот алгоритм, то сразу встаёт множество проблем: нужно использовать соседние отсчёты, чтобы подсчитать производную сигнала, выделить нужную частоту. Реализовать такой алгоритм реально, но ему требуется память , чтобы знать как выглядит сигнал целиком, и парочка алгоритмов для анализа этого хозяйства. А ведь ещё требуется знать амплитуду сигнала, которая на простой огибающей частенько проходит через ноль, хотя сигнал-то у нас не с нулевой амплитудой. Т.е. нужно будет ещё и максимумы функции на определённом участке времени знать. Если же мы возьмём нашу простую огибающую Y=F(T) сигнала и подадим её на вход квадратурного приёмника, то мы получим две простых огибающих I=F1(t) и Q=F2(t). Квадратурный приёмник условно говоря делает перемножение I=Y*COS, Q=Y*SIN. Физический смысл заключается в получении одного и того же сигнала, но один из которых запаздывает по фазе на 90 градусов. То есть в основном даже если у нас нету комплексной огибающей, мы её всегда можем получить из простой огибающий сигнала (как программно, так и аппаратно). Теперь непосредственно о том, что же даёт нам комплексная огибающая. В отличие от простой огибающей сигнала, которую мы любим изображать в координатах t,Y (время и амплитуда), комплексную огибающую изображают в координатах X,Y, а время выбрасывают. Для каждого момента времени t координату X берут из I-графика комплексной огибающей, а координату Y - из Q-гафика. Если это комплексная огибающая синусоидального сигнала, то в координатах X,Y мы увидим окружность. Если бы мы не выбросили время, то у нас бы получилась трёхмерная спираль (типа такая "пружина" из шариковой ручки с кнопкой). В отличие от простой огибающей сигнала, у комплексной огибающей мы можем сразу сказать фазу и амплитуду в любой точке этой окружности. Например, все точки справа вверху - это стопудово фаза от 0 до 90 градусов, слева вверху - от 90 до 180, слева внизу - от 180 до 270, и справа внизу - от 270 до 360. Амплитуда - это радиус окружности в точке. Если мы будем модулировать сигнал только по амплитуде, то можно, к примеру, вырисовать нечто вроде шестерёнки со скруглёнными зубъями. А если ещё и фазово, то можем рисовать "цветочки" с лепестками. Комплексная огибающая позволяет удобно работать с фазой и амплитудой сигнала. Например, мы можем взять русский алфавит АБВГДЕЁ...ЭЮЯ и каждой букве поставить в соответствие координату (X,Y). (или, что равносильно, Phi (угола) и амплитуды A (радиуса).). Напрмер, буквы А с фазой 0 градусов и амплитудой 2, буква Б с фазой 0 градусов и амплитудой 1, буква В с фазой 25 градусов и амплитудой 2, буква Г с фазой 25 градусов и амплитудой 1 и т.д... до буквы Я с фазой 335 градусов и амплитудой 1. Амплитуды и фазы букв выбираются так, чтобы они не были слишком близко друг к другу, и чтобы не было ошибок с "округлением" буквы Х в букву Р и т.п., т.е. ошибок. Закодировав таким образом буквы мы можем начать кодировать целые слова и предложения, рисуя траектории в плоскости (X,Y) с нужной частотой и амплитудой короткие промежутки времени (проходящие через нужные места, получится такая накаляканная завитушка в координатах X,Y со заметными сгустками чернил в тек местах, которые соответствуют буквам алфавита). Полученную каляку можно преобразовать в обычную огибающую и подать на передающую антенну. Расположенный в другом месте приёмник примет этот сигнал, и пропустив его через квадратурную часть разложит на два сигнала, по которым можно воссоздать то, что "накалякали" на передающей стороне и выделить по фазе и амплитуде передаваемые буквы. По идее хорошая простая тема диплома, материалов навалом. Особенно если знаете английский. В основе две формулы - одна для эффекта доплера, вторая - для квадратурного приёмника. Можно сделать понаучнее, добавить формул по затуханию сигнала и прочего. Квадратурный приёмник по схеме http://www.radartutorial.eu/10.processing/sp06.en.html Казалось бы, материал не так разнообразен и простых формул только две (остальные можно добавить, но по незнанию можно добавить чего-нибудь лишнего, и на защите могут спросить), но если всё хорошенько обмусолить, можно сделать приличный диплом. Я бы сделал так: Берёте первую формулу, подставляете частоту радара, скорость света, скорость цели. Затем делаем нечто вроде метода конечных элементов в 2D-пространстве. Исключительно для простоты. Вроде того, что на карте знаем координату цели X,Y, её скорость. Затем знаем по первой формуле как изменится частота относительно излучения радара. Потом во всех направлениях по сетке X,Y считаем куда улетает сигнал от цели, как он затухает с квадратом расстояния по времени, и что долетит до антенны. То есть по сути имитируем да ешё научно - метод конечных элементов с некоторым разрешением сетки. Не хватает объёма страниц в дипломе? Добавляем тучку на сетку, теперь считаем как будет затухать сигнал от погодных условий. Ещё пару страниц про горы, дожди, моря, реки, стаи птиц. Рисуем красочные карты градиентных полей фазы, частоты амплитуды сигнала. Считаем отражающие площади и т.п.. Берёте что-нибудь наподобие схемки http://www.radartutorial.eu/10.processing/sp06.en.html, анализируете её аппаратную часть, выписываете формулы квадратурного приёма. Пишете почему применяется аналоговый квадратурный приёмник, а не цифровой. Далее берёте ваши сетки с амплитудой, полученной из "как бы" метода конечных элементов. Придумываете из интернета не без помощи руководителя диплома ваш приёмный тракт, считаете шумы и что в итоге мы получим из той амплитуды, которая пришла на антенну. Смотрите сколько у вас шумов, на какое расстояние хорошо работает, методы увеличения расстояния и сопутствующие новые проблемы. И т.д. и т.п.. первые сто страниц уже готовы. Далее добиваете это дело размышлением о комплексной огибающей, которая вылазит с выходов I и Q на картинке по сслыке на radartutorial.eu, какая она хорошая и удобная, как вы через сдвиг фаз в комплексной огибающей можете определить направление движения цели. И как вы этого не можете сделать без неё. Там есть хорошая формула A в квадрате= корень из I в квадрате + Q в квадрате, которая позволяет получить амплитуду. Так вы получаете органичные две связанные части диплома, в первой части которого вы получаете синусоиду, во второй части - разлагаете её на две синусоиды и считаете фазу, частоту (что на самом деле как раз и отражает скорость цели ), амплитуду. И приправляете по вкусу охраной труда, экономикой, технологией и т.д., в зависимости от требований к продвинутости диплома.
  10. Вроде бы "Atollic TrueSTUDIO Lite version available for free for the STM32, unlimited code-size and usage-time." без ограничений. Я его и использую, но при установке что-то было написано про code-size, надеюсь это не про ограничения. А вот IAR и KEIL выходит уже с ограничениями. Ещё нашёл страницу http://www.st.com/internet/com/software/ides_mcu.jsp#stm32 и http://en.wikipedia.org/wiki/STM32 , помимо тех трёх IDE есть какие-то альтернативы, бесплатные утилиты для прошивки через ST-LINK. Типа такого, но в корпусе от ручки и с крокодилом на землю через провод =)
  11. Смотрю, что-то странно. Никто ничего не говорит, неужели никого не забыл =) Я долго и упорно смотрел сайт AVR32, но так и не нашёл чего-нибудь съедобного на 32 бита не в корпусе LQFP. А в LQFP мне пока хватает отладочной платы STM32F103. Интересные Aduc'и я вдруг увидел на http://www.analog.com/en/processors-dsp/an...sors/index.html Есть прикольные камешки ADUC7039, правда корпус у него не самый простой в ручной пайке - LFCSP, и цена тоже не самая низкая. Но это оправданно, так как есть 16-битный дельта-сигма АЦП и памяти нормально. А дальше пошли LQFP48,64,... много ног. Искал-искал у NEC/Renesas, но так и не нашёл 32-битную мелочь. Видел что-то у TOSHIBA, но только в новостях и планах, да и где их купить. Сейчас буду смотреть сайт freescale.com
  12. У некоторых 3-вольтовых мк есть "5 volt tolerant pins", пока не изучал, может туда можно жахнуть 5 вольт? =)
  13. Думаю многим начинающим, как и мне, будет интересен этот небольшой сравнительный обзор. 1. NXP LPC1112FD20 (32-bit ARM Cortex-M0) 16kb FLASH / 4kb RAM / 10-битный АЦП, корпус SOIC 20 ножек, шаг 1.27мм. При небольшом опыте можно прижав пальцем подхватить первую ногу и припаять остальные секунд за 30. Начав изучать с этим процессором архитектуру cortex arm вы автоматически будете лучше разбираться и в камешках от других фирм. Нормальный объём оперативки 4kb позволит реализовать более продвинутые алгоритмы без извращений. Идеален для 16-битных программ, не нужно думать о переполнении, например при оверсемплинге - просто складываем 10-битные выход с АЦП в 32-битную ячейку. Но в продажу пока не поступил, как и камни в корпусах TSSOP (LPC1112FDH20, LPC1112FDH28 и LPC1114FDH28). С нетерпением ожидаем в розничной продаже. http://www.nxp.com/products/microcontrolle...PC1112FD20.html 2. MICROCHIP PIC32MX 16kb FLASH / 4kb RAM / 10-битный АЦП, есть в DIP-корпусах Наверняка будет особо любим теми, кто начал свой путь с восьмибитных PIC-ов. По всему миру не утихают споры о том, что лучше ARM или PIC32. Хотя у CORTEX ARM и присутствует некая стандартизация, но при переходе на ARM процессор другой фирмы код предётся также переделывать, как и в случае перехода с PIC32 на ARM. Так что это вряд ли недостаток. Удивляет обилие маловыводных корпусов с крупным шагом между ногами, удобных для пайки: DIP, SOIC, TSSOP. http://www.microchip.com/wwwproducts/Devic...ocName=en555989 3. STMicroelectronix STM32F100, STM32F103 (32-bit ARM Cortex) 16..128kb FLASH / 4..10kb RAM / 12-битный АЦП, к сожалению только LQFP48/64/100 Такой корпус паять уже не так удобно, как SOIC или TSSOP, но всё же реально. Перед прихватом крайней ноги достаточно хорошо позиционируется "вакуумной" присоской, но тут уже вероятность ошибки больше. У многих радиолюбителей на плате болтаются неиспользованные ноги. Хотя есть и свои плюсы - низкая стоимость, больше номенклатура с объёмной флеш-паматью и RAM. После покупки оценочной платы и скачал и установил аж три пакета для разработки бесплатно, хотя и с ограничением на размер компилируемого кода. 1)TrueSTUDIO - маленький дистрибутив 260мб, заработало всё сразу, в интерфейсе нормальный шрифт 2) MDK - тоже заработало, но с бубном. 3) IAR - насмешили так насмешили, самый первый пример из дистрибутива не откомпилировался по причине ограничения на размер исходного кода. Ну это и понятно - дистрибутив на 700мб. Бесплатная версия видимо нацелена на далнейшую регистрацию, чтобы сразу после покупки не скачивать ничего нового. У 2 или 3 был какой-то кривой шрифт интерфейса - мелкие корявые буквы. Подойдёт тем, кому всё-таки нужно многоногий мк или больший объём RAM или FLASH. Обилие отладочных плат от разных производителей. http://www.st.com/internet/mcu/product/216844.jsp 3.1 32-битные микроконтроллеры AVR32, RENESAS, TOSHIBA и т.п. в корпусах LQFP48 и 64. В основном эти продукты весьма похожи как по объёму памяти, так и по наличию 10-12битных АЦП. Для AVR32 наверняка будет больше вариантов отладочных плат. У RENESAS вроде бы есть онлайн-уроки на английском (нужна регистрация), весьма неплохо оформелены судя по видео-презентации. 4. TI MSP430 16-битный 2..4кб FLASH / 0.25 байт памяти / 10/12-битный АЦП. SOIC, TSSOP Наверное, это был бы лучший выбор, если бы не специфический перекос в параметрах. Хочешь больше памяти - не дадим встроенный АЦП. Хочешь лучше АЦП - дадим, но за это только 256 байт оперативки. А если взять TI-шный малоногий ARM, то в нём вообще не видно АЦП. А если хочешь АЦП в ARM, то впридачу кучу ног и мелкий шаг между ножками. Вот так я посидел денёк в параметрическом поиске у TI и понял для себя одну вещь: эти контроллеры сделаны специально под определённый круг задач, выйти за рамки которого очень сложно (весы, термометры, счётчики). Просто по объёму оперативки. Будет очень итересно наблюдать, если TI последует примеру NXP и MICROCHIP, выпустив что-нибудь в маловыводном корпусе SOIC или TSSOP с приличным объёмом оперативки и 10/12-битным АЦП. Несомненный плюс - это большое количество отладочных плат и большая номенклатура с высокой совместимостью по коду. http://www.ti.com/lsds/ti/microcontroller/...uct_search.page 4.1. Analog Devices ADUC7039 64kb FLASH / 4kb RAM / 16-битный АЦП Хорошая альтернатива MSP430, если нужен встроенный 16-битный АЦП, но не хватает памяти программ и оперативки. Но корпус неудобен для пайки - экзотический LFCSP, видимо такие корпуса стоят в мобильниках. Возможно дешевле будет взять внешний АЦП, но тогда мы уйдём от идеологии всё в одном. DIP, SOIC, TSSOP Подводя итоги, лидером в "брутальности" оформления корпусов становится MICROCHIP с его новыми PIC32MX в DIP-корпусах. Хотя у некоторых DIP может ассоциироваться со старинными микросхемами, но основным недостатком я бы назвал сложность выпайки. Мне проще запаять парочку 20-ногих TSSOP, чем выпаять один шестиногий DIP. А из достоинств - то, что под DIP есть неплохие платки, куда можно засунуть это дело без пайки, что-то вроде навесного монтажа или как там его. Есть и более симпатичные SOIC корпуса. Запихнуть слона в спичечный коробок намеряна NXP со своими LPC111x в корпусах SOIC и TSSOP-20. На этом самые удобные для пайки корпуса с хорошим наполнением RAM заканчиваются. Далее идёт MSP430 с его огромной номенклатурой, множеством SOIC и TSSOP, но уже с меньшим объёмом памяти. LQFP48,64,100 Лидируют уже не такие удобные в пайке 32-битные STM32F100. Простота, доступность, низкие цены. Затем идёт MSP430 в LQFP, но уже без АЦП и 16-битной архитектуры. Может есть что-то стоящее у Renesas и TOSHIBA, но это ещё надо поискать. А вот для любителей AVR есть AVR32, который найти я думаю будет очень легко. А можно подпаяться проводками к ADUC7039 от Analog Devices и получится интересная вычислительная штучка со встроенным 16-битным АЦП. Помимо контактов нужно ещё и "брюхо" тщательно заземлить. Лирическое отступление: При разработке миниатюрных устройств советы в плане установки внешней АЦП и памяти лишены смысла, а более продвинутые камни с корпусом LQFP48 к сожалению не свернёшь в трубочку и не запихнёшь в корпус от пластиковой ручки. Так что здесь прослеживается некоторая проектная жадность "у меня же такие мощи, такая площадь кристала! Да я забесплатно могу вывести мильён ног и сделать крутой контроллер из этой миллиметровой фигни". В итоге приходится ставить многовыводный мк со встроенным АЦП + внешнюю память + внешний АЦП и это называют экономикой =) Но как бы это не называли, по-моему реальная экономика уже начинает прослеживаться у NXP и MICROCHIP. p.s. Может забыл какого производителя?
  14. Может кто знает, сколько примерно времени пройдёт между инженерными образцами и выходом в розничную продажу? Заинтересовали паучки в корпусах TSSOP и SO: LPC1112FDH20 LPC1111FDH20 LPC1112FDH28 LPC1114FDH28 LPC1110FD20 LPC1112FD20 в особенности с 4кб RAM. Может ещё какие производители планируют сделать подобный шаг? Интересуют 32-битные TSSOP и SO с памятью 2..4кб.
  15. Какой интересный 32-битный паучок LPC1100 от NXP, памяти RAM больше, чем у похожих по корпусу MSP430 и есть АЦП. Побольше бы таких паучков. В параметрическом поиске на сайте NXP я их не нашёл, не там искал? Сейчас изучаю отладочную плату с STM32F100, там куча ненужных мне ножек и шаг мелкий, если самому паять. Был бы очень рад появлению чего-нибудь в TSSOP корпусе с парой тройкой каналов АЦП и нормальным объёмом RAM от 2кб и выше.
  16. Попробовал оптимизированное ДПФ с уменьшением разрядности табличного синуса до 11 бит - умножений становится меньше, но растёт какой-то шум. Про битность синуса написано в пейпере "Implementation of a Single FFT Processor". Что интересно, там написано что для 1024-точечного БПФ по данным 14-битного АЦП хорошо применимы 10-битные "twiddle factor" таблицы синусов. Может кому пригодится.
  17. Давным-давно смотрел PDF, в котором рассказывалось о применении метода грубого перебора для поиска оптимальной конфигурации БПФ. Сейчас хотел заняться, но ничего не нашёл. Может кто-нибудь видел подобное? Предыстория такова. Я сделал тупую программку, которая берёт простую корреляцию с синусом (суммы), а затем с учётом того, что тригонометрические таблицы с ограниченной точностью тасует их и разбивает на слагаемые (30+30 = можно использовать как 60 или даже как 59 и 61). Вначале мне казалось, что использование такого "округления" коэффициентов в области медленного изменения синуса могло бы дать прирост производительности. Плюс таблица - это четверть периода синуса, что дополнительно уменьшает количество перемножений. Но не дооптимизировался даже до простого radix-2! Умножений получилось раз в 10 больше. Конечно логичнее было бы начать с простенького фурье, но там уже надо как-то тасовать бабочки.
  18. я опечатался, я хотел сказать 512 байт. Я хотел чуть-чуть добавить эхо, по сути это тоже фильтр. p.s. Я пока на сайте TI пользовался их поиском, там 512 байт отображаются как 512.000, а 2кб как 2.000, хотя по цене можно понять сколько там в реальности.
  19. Да, я хотел делать именно так: БПФ128 находит максимум X, потом идёт цикл ДПФ4096, но i пробегает значения не 0..4095, а (X*32-10)..(x*32+10) В обоих случаях ничего нулей не добавляю. пс Вот смотрю приведённый вами интересный метод.
  20. Да, об этом я как-то не подумал. Тогда от цифровой пересылки я думаю отказаться и использовать ЦАП подключенный к звуковой карте компьютера. А как такой вариант: МИКРОФОН-> АЦП (встроенный/внешний) -> MSP430 добавление звуковых эффектов -> ЦАП -> линейный вход компьютера -> программа звукозаписи. Смотря на схему http://www.olimex.com/dev/images/msp430-169stk-sch.gif у меня есть надежды, что такое реально сделать. На этой схеме 2 стерео-линейных входа и 2 стерео-выхода. Остаётся вопрос, хватит ли ресурсов на добавление звуковых эффектов? Фильтры могут быть табличные из FLASH, а для эхо использовать встроенную RAM память 512кб. Спасибо за разъяснения!
  21. Как насчёт следующего алгоритма: 1) Берём FFT 128 точек, грубо находим максимум 2) В окрестности максимума запускаем DFT с шагом, как у FFT на 4096 точки, но только для маленького диапазона частот. Т.е. получаем кусок спектра из 50-60 точек с повышенной точностью. Есть смысл? Как это будет соотноситься с поиском центра масс только по FFT-128?
  22. Два дня читаю документации, но пока ещё не обзавёлся макетной платой с MSP430 и не притрагивался к софтовым примерам, а без практики понимание идёт туго. По этой причине у меня возникло несколько вопросов, ответы на которые хотелось бы поскорее найти, чтобы купить плату с подходящим мне микроконтроллером этой серии. Вопрос 1. В MSP430 со встроенным АЦП есть несколько каналов. Возможно ли получение данных одновременно с 2 или 4-рёх каналов при частоте дискретизации 44.100кГц? Если да, то продолжение вопроса: в реальном времени контроллер должен формировать несжатый WAV файл стандартного формата (стерео,16бит,44.1кГц, понимаемый компьютером и отсылать его по порту). Т.е. я сам формирую заголовок WAV (битность и т.п.) а вслед за ним данные с 4-ёх каналов АЦП. Успеет ли? Вопрос 2. Останутся ли после этого ресурсы, чтобы перед отправкой WAV-потока наложить на него звуковой эффект (простое эхо с задержкой на 100 сэмплов, фильтры, time-warping и т.п.). Если ресурсы останутся, то насколько много, возможно ли WAV-файл ещё сжать каким-нибудь простым алгоритмом из стандартны, поддерживающихся в Windows Media Player? Вопрос 3. Во время работы программы-эффекта (прошивки) не возникнет ли характерное жужжание-помехи и прочие попискивания, как это бывает в некоторых MP3 плеерах при выходе в меню и нажатии на кнопки? Если да, то на сколько высок шум в дБ? Вопрос 4. В некоторых MSP430 стоит встроенный ОУ. Могу ли я обойтись наличием только его при подключении внешнего микрофона или линейного входа? Как по вашему опыту себя показываюьт встроенные ОУ и АЦП, с хорошей или плохой стороны? Вопрос 5. Коэффициенты усиления ОУ устанавливаются отдельно для каждого канала АЦП? Буду рад ответам на любые из моих вопросов. В правильном ли направлении я думаю устанавливать частоту дискретизации: http://electronix.ru/forum/index.php?showtopic=96571 p.s. В интернете нашёл следующую схему с использованием MSP430 и двух стерео-входов: http://www.olimex.com/dev/images/msp430-169stk-sch.gif сейчас читаю переводные инструкции PDF (КОМПЭЛ), и рекомендации по применению (тоже PDF).
  23. Если это возможно, перенесите пожалуйста мою тему сюда: Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (МК) - Microcontrollers (MCs) > MSP430
  24. В примерах от TI есть устройство на микроконтроллере MSP430 (slaa123.pdf), которое пишет звук во внутреннюю флеш. Данные по схеме от TI: - внешний кварц 3.58МГц - частота дискретизации 5.5кГц - частота среза аналогового RC-фильтра 2.7кГц Данные по программной части: ... SetupCCR0 bis.w #CCIE,&TBCCTL0 Mov.w #649,&TBCCR0; Initialize TBCCR0 for sampling ; frequency of 5.5Khz ... Как я понимаю, #649 - это интервал выборки. Если посчитать с учетом кварца: 3.58 МГц = 3580000 Гц 3580000 Гц / 649 = 5516.2 Гц Т.е. получаем искомые 5.5162 кГц Теперь вопрос. Что если я хочу поставить внешнюю флеш или память и записать туда звук на более высокой частоте 44.1кГц? Правильно ли я мыслю: пересчитываю аналоговый RC-фильтр на частоту 22.050кГц, беру R и C уже не по схеме заменяю коэффициент #649 на... (3580000/ x = 44100 x=81.1) ... на #81 И в программе будет: Mov.w #81,&TBCCR0; Но что-то я сомневаюсь. Достаточно ли этих изменений или желательно ещё поменять кварц? p.s. Может кто посоветует у каких ещё микроконтроллеров удобная система команд, 2..4кб оперативки, аппаратный умножитель и встроенный ADC12 (12-битный), ног поменьше да и шаг между ними покрупней =)
  25. эко меня проглючило. Я хотел сказать что его 16килослов это на самом деле 32килобайта. С компонентами выше я уже определился. Остановился на аналоге micro2440, там и дисплей есть, вроде и программу уже удалось залить под WinCE через обычную USB-шную флешку. С измерением TTL встроенным АЦП только ещё повозиться и будет почти готово. А на свободное время я хочу взять что-нибудь наподобие MSP430, в нём меня пока только смущает память. Привык к терминологии ADI DM и PM (память данных и память программ) А тут я чего-то не пойму, у MSP430 программа запускается непосредственно из прошивки без загрузки в RAM?
×
×
  • Создать...