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

adnega

Свой
  • Постов

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

  • Посещение

  • Победитель дней

    3

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


  1. У меня все выбирается, версия 2.2.3 Утилита в архиве LPC210x_ISP.rar
  2. печатаем who и нажимаем enter. моргает p1.11 (первый порт, а не нулевой) Сори, p0.11
  3. Конечно, не образец по написанию кода... В терминале с настройками 9600-8N1 на команду "who" должен кое-что ответить ) Моргает светодиодом PORT1.11 Кварц 18.432MHz test_lpc2101.rar
  4. Еще вопросик. А почему именно LPC2101?! Может STM32F103T4 какой-нить лучше будет ;)...
  5. Схему собирал на макетке, сейчас ее уже нет. Насколько помню, тоже долго боролся за стабильность работы (шилась через раз), и главное что понял - не надо жалеть конденсаторов на 0.1uF )) Они у Вас в полном объеме? На макете не очень видно. Конденсаторы должны быть как можно ближе к процессору. Идею подглядывал тут (http://www.olimex.com/dev/images/lpc-h2103-sch.gif)
  6. cortex-m3 instruction timing

    Можно попробовать таймер общего пользования, если есть свободный
  7. cortex-m3 instruction timing

    Страница 640 UM10360 (LPC17xx UserManual): During a debugging session, the System Tick Timer and the Repetitive Interrupt Timers are automatically stopped whenever the CPU is stopped. Other peripherals are not affected. If the Repetitive Interrupt Timer is configured such that its PCLK rate is lower than the CPU clock rate, the RIT may not increment predictably during some debug operations, such as single stepping. Может это и есть причина? Хотя и не должен SysTick останавливаться во время выполнения инструкции...
  8. cortex-m3 instruction timing

    А предделитель SysTickTimer равен 1?
  9. Можно все 20мс разбить на куски по 2.5 мс, генерить 2 однократных PWM-импульса и подавать их на входы управления двух дешифраторов, по окончании PWM изменять адрес дешифратора на следующий -> 16 каналов PWM
  10. STM32F103x

    ШИМ по первому таймеру. Вывод двухполярного сигнала с частотой 44100Гц Делаю так. #define FPLL 72000000 // частота при работе от PLL, Гц #define PWM_N (12) // разрядность ЦАП, бит #define PWM_F (44100) // частота оцифровки, Гц #define PWM_P ((FPLL/PWM_F)-1) // предделитель //------------------------------------------------------------- // init_TIMER1() //------------------------------------------------------------- void __inline init_TIMER1() { TIM1->ARR=PWM_P; // запись периода TIM1->PSC=0; // запись базы TIM1->CR1=(1<<2) |(1<<TIM_CR1_ARPE) |(1<<TIM_CR1_CEN); TIM1->CR2= (0<<TIM_CR2_OIS2) |(0<<TIM_CR2_OIS2N) |(0<<TIM_CR2_OIS3) |(0<<TIM_CR2_OIS3N); TIM1->CCMR1= (1<<TIM_CCMR1_OC2PE) |(OC_MODE_PWM1<<TIM_CCMR1_OC2M); TIM1->CCMR2= (1<<TIM_CCMR2_OC3PE) |(OC_MODE_PWM1<<TIM_CCMR2_OC3M); TIM1->CCER= (1<<TIM_CCER_CC2NE) |(1<<TIM_CCER_CC3NE); TIM1->BDTR= (1<<TIM_BDTR_MOE) |(0<<TIM_BDTR_DTG); TIM1->DIER= (1<<TIM_DIER_UIE); } //------------------------------------------------------------- // void TIM1_UP_IRQHandler(void) //------------------------------------------------------------- void TIM1_UP_IRQHandler(void) { TIM1->CCR2=x; TIM1->CCR3=y; TIM1->SR=0; }
  11. Хм.. По I2C подключил дисплей TIC-154, на SPI SD/MMC-карта (правда, CS ручками дергаю), делал и развертку VGA-сигнала (640x480) через SPI на stm32f103t4 - из-за недостатка памяти только текстовый режим (а ля, просмотр отладочных сообщение через RS232/TTL). Во всех реализациях проблем не имел - хотелось бы узнать какие есть проблемы (страшно ведь...)?
  12. Скорее всего, винда узнает размер карты (точнее, тома) из структуры в конце первого сектора карты - после записи "мусора" в первый сектор винда определяет карту размером 512 байт, не форматирует, и я не знаю как это победить средствами винды :)
  13. А в случае с I2C заморочек с уровнями нет. Выходы с открытым коллектором - подтянул резистором к 5В и работай (в основном 3.3В процы допускают подачу на вход такого уровня). Основной потребитель - подсветка, но природу не обманешь: считать все равно нужно ватты, а накладки от импульсного повышения напряжения (КПД < 100%)... мне неизвестны, но допускаю, что они не велики.
  14. сделать на спец.микросхеме (а ля мс33063) повышалку до 5В - ток-то все равно не большой нужен для работы модуля...
  15. Тактирование PORTA и AFIO включено?
  16. Пользую TIC154 (133x64) от 3.3В. Фейс - I2C
  17. По ссылке http://www.st.com/stonline/products/literature/an/15067.pdf можно найти документ "AN2834 How to get the best ADC accuracy in STM32F10xxx devices". Читать в пунктах 1.2.5 и 1.2.6. про паразитные R и C. Идея вкратце такая: большое значение Cain+Cp (ровно как Radc+Rain) могут ограничивать частоту исходного сигнала - т.к. требуется время для перезаряда конденсатора (что было очевидно изначально).
  18. Резистор у меня "рукодельный" (т.е. я его специально ставил, чтоб как-то ток ограничивать). Сопротивление 20+33 ома. Про емкость завтра поищу. Что-то видел в доках. Но заранее хочу предупредить, что для меня это не проблема, т.к. я не использую все отсчеты - получается так, что на каждый "нужный" отчет у меня приходится несколько "фиктивных", а последовательное преобразование в АЦП делаю лишь для соблюдения точных временных параметров и сбора в буфер по ДМА. Сигнал затухающий и "фиктивные" выборки стремятся к константе, т.е. до "нужного" отчета у меня оцифровывается сигнал близкий к этой константе (к половине питания) и влияние всегда одинаково. На ум приходят несколько, пожалуй, не самых удачных идей: 1. Поставить повторитель сигнала перед каждым каналом: взять какой-нить быстродействующий ОУ, соединить выход с отрицательным входом, сигнал подавать на положительный вход, выход ОУ без всяких резисторов на ногу АЦП. 2. Менять тайминги (т.е. 1.5 увеличить) или еще хуже между каждым каналом оцифровывать фиктивный с константой. Но это самых худший вариант по скорости. 3. Перетасовать каналы и последовательность оцифровки так, чтобы предыдущий и последующий каналы не сильно отличались по амплитуде. На практике сложно выполнимо. 4. Прикинуть модель работы входных цепей и делать программную коррекцию полученных данных. Потребует хорошей матобработки данных. Но, по-моему, самый перспективных вариант, если еще и п.1 сделать :) 5. "Сгородить" схему, которая бы делала автоматическую компенсацию "следа", т.е. к сигналу, который нужно измерить добавлять "ошибку", такую, чтобы после работы АЦП получать исходный сигнал. Т.е. матобработку из п. 4 "переложить" но внешнюю аналоговую схему. Попробуйте проследить влияние предыдущей оцифровки на последующую - может не такая уж и сложная зависимость. Что-нить типа "из текущей оцифровки вычитай модуль разности текущей и предыдущей оцифровки деленный на 128"...
  19. Использовал в таком варианте: При ADCPRE=3 ("PCLK2/8") на частоте PLL 72МГц получаем 9МГц для тактирования АЦП. Tconv=1.5 + 12.5 = 14 тактов => Частота на канал 0.6МГц. Есть ряд замечаний: - начало преобразования можно очень точно задать (с точностью до такта процессора). Используя этот факт можно оцифровывать сигнал с эквивалентной скоростью 72МГц (если начало периодического сигнала тоже синхронизируется до такта); - после преобразования с 1.5 -тактовым промежутком остается "след" от предыдущего преобразования, но это, по-моему, и есть "not tested in production". В моем случае измеряемый сигнал подается на вход через резистор, на входе АЦП, так или иначе, стоит емкость - а ля, интегратор; - DMA рулит! - три канала одновременно не запомнить; - на входе АЦП половинное напряжение питания, как оно там получается - не разбирался. Кста, и при повышении частоты PLL до 96МГц - работает, но это для справки - можно судить об аналоговой части входа АЦП.
  20. Вроде, сектор подготавливать надо...
  21. Исходник приложил tn13_adc.rar
  22. Сенсор на тини13 довольно хорошо работает. Делал сам. 1. Использовал принцип измерения времени заряда RC-цепочки. R - нужно брать гигантское (100 кОм), а C крошечными (12 пф). При таких номиналах входная помеха (50 Гц) неприлично высока, а время заряда всего несколько тактов ядра. 2. На первом этапе просто измерял время заряда - сплошной шум, при касании немного приподнимается средний уровень. Затем начал делать измерения 50 раз в секунду - лучше, но ложных срабатываний много, скорость распознования низкая. 3. Сейчас не начинаю измерение, пока не дождусь, когда сигнал с АЦП не снизится ниже заданного порога. Считаю, что измерение провожу в окресности нуля синусоиды. Работает стабильно и быстро - работаю над автокалибровкой. Дело в том, что сенсор у меня распределенный (провод полтора метра), а надежного заземления нет (заземление сделал из пластины фольги, служащей одной из обкладок конденсатора).
  23. Бесплатный симулятор LT Spice IV
  24. LPC1700 User manual

    И выводы пошустрее, SPI с делителем на два....
×
×
  • Создать...