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

akl

Свой
  • Постов

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

  • Посещение

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


  1. Аналоговый ключ с отрицательным смещением появился не от хорошей жизни. При подключении длинноходовых датчиков на длинном кабеле, генерация не обеспечивалась во всем диапазоне. Увеличение уровня возбуждения приводила к приоткрыванию защитных диодов на входах контроллера. Катушки имеют магнитную связь и на свободном конце неработающей в данный момент возникает ЭДС, отрицательная полуволна которой приоткрывает диод. Номиналы деталей R1 10к, R2 22к, R3 300, R4 910, C1(C3) 4700pF NP0, C2(C4) 22nF NP0, C3(C5) 47nF NPO, С4(C9) 1,0uF, аналоговый ключ ADG419
  2. Не думаю, что это хорошая идея. Сделайте нормальный генератор, подключите к нему контур, сделайте паузу для стабилизации частоты и только затем меряйте. Потом для второго контура. На выходе получите примерно такое.
  3. Конечно не успевает. Вход захвата заносит значение таймера в ICRx при активном перепаде на оном. Ну и устанавливает флаг ICF. К примеру, частота тактирования 8000000Гц (0,125мкс) на входе от генератора C*L1.1 20'000Гц(50мкс). Меряется 2000 периодов генератора, значение n1=800000 накапливается и запоминается. Переключается на измерение второго контура, частота генерации которого 19'999Гц(50,002500125006250312515625781289мкс). Накапливается n2= 800 040. n1-n2=-40. Допустим, коэффициент преобразования, полученный при калибровке, равен K=18193/65536. K(n1-n2)=-40*K=-0,11мкм. Числа и коэффициент вполне себе реальные.
  4. Ностальгия! Использовал, в своё время, частотное преобразование. Меряется время N периодов генерации контура C1L1.1, потом N периодов C1L1.2 в тиках частоты тактирования MCU. Берется разность n1-n2, что и является выходным параметром.
  5. В этом режиме ICR1 используется в качестве регистра сравнения и автоматом в него извне ничего не заносится. Этот код дает на выходе PB3/OC1A (на макете стоит ATtiny2313, кварц 20МГц) довольно строгие 100мкс - 0 и 170мкс - 1
  6. http://electronix.ru/forum/uploads/monthly...74098_thumb.png Похожий термометр на ИН-13 пробегал здесь. Или здесь. Кстати, часы ещё собирают из наборов. Правда, на ИН-1 не видел, уж больно они не аккуратные.
  7. Возможно, есть дребезг в моменты перехода полуволны синуса через уровень компарирования. Можно попробовать включить бит "шумодава" ICNC1.
  8. Для тензомостов использую AD7798(99) с опорным резистором в качестве опоры. Сегодня отгрузил преобразователь давления на MPX2200GP (опорный резистор 301 Ом).
  9. Рядовым кварцам производитель, как правило, дает гарантированную нестабильность частоты; про точность установки оной скромно умалчивается. Вот здесь на кварце написано 8.000к на самом деле 8'006'760Гц(конденсаторов нет, корпус кварца соединен с лапой GND контроллера).
  10. Тоже очень нравятся. Купил себе, переделал на частоту 60Гц. Правда, жрут довольно много, порядка 180мА.
  11. Может временно подать Vref на опорные входы REFIN+ REFIN- и на магазин + доп.резистор. Выход магазина на Vx. И посмотреть в этом режиме.
  12. Более общее выражение для определения скорости вращения RPM=60*Fo*Nx/nox*K, где RPM - скорость вращения [об/мин] Fo - частота тактирования счётчика Nx - целое число периодов измеряемой величины nox - значение счётчика за Nx K - коэффициент передачи таходатчика.
  13. Таймеры atmega32a

    Да, действительно, период будет 256*30821=7890176/7890123=1,000006717259 секунды. Виноват, извините. Ниже показана работа кода из указанного поста.
  14. Таймеры atmega32a

    Каждое прерывание Т0, в котором дополнительно чистится TCNT0, наращиваются и сравниваются с уставками счетчики приводит к тому, что обработка идёт не через 256 тактов, а через 266. Вот отсюда и погрешность формирования интервала.
  15. Таймеры atmega32a

    По мне, Плохо. И не частота, а период. Частота взята для примера. Вот так студия отрабатывает такую частоту. Ничего не мешает в строке задания частоты установить требуемую и получить такой же результат.
  16. Таймеры atmega32a

    Проще, конечно. Попробуйте настроить один раз без дополнительных счётчиков формирователь 1.000'000 секунды для частоты 7'890'123 Гц на 16-ти разрядном таймере в режиме CTC.
  17. Таймеры atmega32a

    Ваш код дает интервал 1 секунды, за счёт сравнений в обработчике, на 39мс больше. Если такая погрешность устраивает, нет проблем. Без ручного пересчёта чисел сравнения Вы не можете менять частоту. По мне, лучше поручить эту работу ассемблеру. ldi temp, 0b00000001 ; контакт 0-1 порта В на выход out DDRB, temp out PORTB,temp ;******************************* ;.equ Fo=8000000 .equ Fo=7890123 MOV R0,TEMP SET_SEC: IN TEMP,PINB EOR TEMP,R0 LDI R20,BYTE3(Fo-8); загрузка 1 секунды в тиках Fo за вычетом установок LDI R21,BYTE2(Fo-8); LDI R22,BYTE1(Fo-8); SEC_WAIT: SUBI R22,BYTE1(5); SBCI R21,BYTE2(5) SBCI R20,BYTE3(5) BRCC SEC_WAIT OUT PORTB,TEMP RJMP SET_SEC ;******************************* .EXIT
  18. Таймеры atmega32a

    С точностью до такта можно временной интервал формировать так. Писано для tiny13, но и для mega32 будет примерно также.
  19. Можно провести преобразование так BIN_BCD: MOV RESULT_H,R8 MOV RESULT_L,R9 BIN_BCD0: MOV #32,R15 CLR R10 CLR R11 CLR R12 CLR R13 CLR R14 BIN_BCD1: RLA R9 RLC R8 DADD R14,R14 DADD R13,R13 DADD R12,R12 DADD R11,R11 DADD R10,R10 DEC R15 JNZ BIN_BCD1 Взято из примеров старой книги по MSP430. Как это будет выглядеть на Цэ, не знаю.
  20. Использую датавижион и микротипс. Не советую фордата и винстар. ILYAUL :beer:
  21. Добавлю. 1200-й не имеет в своем составе программно доступного модуля SPI, хотя организацию его примитива ногодрыганием никто не отменял. Немного порисовал. Получается 2 индикатора с опросом готовности (линии R\W и EN раздельны)+ матрица 4х3 с диодной развязкой занимают 12 лап из 15 имеющихся. Вроде и не нужно регистров.
  22. Может это подойдет
×
×
  • Создать...