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

Slava.dev.503

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

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

  • Посещение

Репутация

0 Обычный

Информация о Slava.dev.503

  • Звание
    Участник
    Участник
  • День рождения 28.02.1989

Информация

  • Город
    Array
  1. Провел испытания еще с двумя м/с. TPS62260 и NCP1521. Последняя ведет себя как и NCP1529 - токи большие. Относительно TPS62260 - все как в документации, ток покоя 25 мкА, остановлюсь на ней. Всем спасибо!
  2. Последний пост касательно NCP1529. TPS61200 планировалось использовать когда было предположение использовать три элемента AAA. Теперь, когда решили делать на аккумуляторе, потребность в повышающем/понижающем преобразователи отпала. Теперь нужно только понижать. Схема один в один как в даташите, номиналы и разводка тоже. 5 вольт берутся с лабораторного БП. При питании от аккумулятора ток такой же как и от БП с напряжением 3,6В.
  3. Сделал плату как указано в рекомендациях. Заметил что при напряжении порядка 5,5 В потребление около 50 мкА. При 5 вольтах и ниже уже 5 мА.
  4. Индуктивность вот такая - CDRH2D14NP-2R2NC, ток насыщения 1,5А. Попробую переразведу плату, возможно действительно косяк в этом.
  5. Adjustable. В делителе сопротивления 330K и 75К.
  6. В моем понимании это ток который потребляет преобразователь при отсутствии нагрузки. Т.е. напряжение на выходе есть, ток равен нулю. Хотя тут NCP1529 в описании Iq стоит вот что: Quiescent Current (No Switching, No load). Получается что преобразователь не работает? Устройство большую часть времени будет спать, а когда схема в режиме сна потребляет раз в 5 меньше DC-DC, то это уже не есть хорошо. Корпус то не проблема. У тех преобразователей что я привел тоже небольшие токи в описании. Токи индуктивности не измерял. Разводка не такая как у них в рекомендациях. Но неужели от нее так сильно может зависеть?!
  7. Добрый день. Для питания устройства от литиевого аккумулятора решил использовать DC-DC преобразователи. Напряжение питания устройства 3.3В. Так как питание от батареи то и требования к потреблению высокие. Пробовал использовать два типа преобразователей TPS61200 и NCP1529. Все схемы и номиналы взяты из даташитов. Но токи покоя при этом значительно отличаются от указанных. При входном напряжении 5 вольт TPS61200 потребляет 0.5 mA (Iq = 0.05 mA). NCP1529 ведет себя вообще странно, потребляемый ток при отключении/подачи питания периодически меняется, хотя напряжение на выходе стабильно равно 3.3В. Но почти во все включения ток не падает ниже 2 mA. В чем может быть дело? Подозреваю, есть вероятность что попались подделки. Есть ли у Вас проверенные варианты DC-DC с низким Iq?
  8. 2-3 недели долго. К тому же может встать вопрос с получением на них лицензии, что еще как минимум займет месяц.
  9. Куплю MRF24WB0MA

    Необходимо приобрести 10 модулей MRF24WB0MA. Буду рад если у кого-нибудь они есть, и он готов их продать.
  10. Продаю приборы X1-48 и Г3-112. Оба в рабочем состоянии. Для измерителя АЧХ есть чемоданчик с ЗИП. Насколько его содержимое соответствует комплектации я не знаю, если кому-то будет нужно могу сделать фотографию этого добра. Санкт-Петербург.
  11. Вот фрагмент схемы и код #include <avr/io.h> #include <touch_api.h> #include <avr/interrupt.h> extern y_line_info_t y_line_info[NUM_Y_LINES]; extern x_line_info_t x_line_info[NUM_X_LINES]; x_line_info_t x_line_info[NUM_X_LINES]= { FILL_OUT_X_LINE_INFO( 1,0u ), FILL_OUT_X_LINE_INFO( 1,1u ), FILL_OUT_X_LINE_INFO( 1,2u ), FILL_OUT_X_LINE_INFO( 1,3u ), FILL_OUT_X_LINE_INFO( 1,4u ), FILL_OUT_X_LINE_INFO( 1,5u ), FILL_OUT_X_LINE_INFO( 1,6u ), FILL_OUT_X_LINE_INFO( 1,7u ) }; y_line_info_t y_line_info[NUM_Y_LINES]= { FILL_OUT_Y_LINE_INFO(1u), FILL_OUT_Y_LINE_INFO(0u) }; uint16_t qt_measurement_period_msec = 25u; /* flag set by timer ISR when it's time to measure touch */ static volatile uint8_t time_to_measure_touch = 0u; /* current time, set by timer ISR */ static volatile uint16_t current_time_ms_touch = 0u; static volatile unsigned int lastpos; extern qt_touch_lib_measure_data_t qt_measure_data; #define GET_SENSOR_STATE(SENSOR_NUMBER) qt_measure_data.qt_touch_status.sensor_states[sENSOR_NUMBER] #define GET_SENSOR_POS(SENSOR_NUMBER) qt_measure_data.qt_touch_status.rotor_slider_values[sENSOR_NUMBER] #define GET_SENSOR_SIGNAL(SENSOR_NUMBER) qt_measure_data.channel_signals[sENSOR_NUMBER] #define GET_SENSOR_REFERENCE(SENSOR_NUMBER) qt_measure_data.channel_references[sENSOR_NUMBER] void init() { /* disable pull-ups */ SFIOR |= (1 << PUD); qt_reset_sensing(); qt_enable_rotor(CHANNEL_8, CHANNEL_15, NO_AKS_GROUP, 10u, 3, RES_8_BIT, 2u); qt_init_sensing(); qt_config_data.qt_di = DEF_QT_DI; qt_config_data.qt_neg_drift_rate = DEF_QT_NEG_DRIFT_RATE; qt_config_data.qt_pos_drift_rate = DEF_QT_POS_DRIFT_RATE; qt_config_data.qt_max_on_duration = DEF_QT_MAX_ON_DURATION; qt_config_data.qt_drift_hold_time = DEF_QT_DRIFT_HOLD_TIME; qt_config_data.qt_recal_threshold = DEF_QT_RECAL_THRESHOLD; qt_config_data.qt_pos_recal_delay = DEF_QT_POS_RECAL_DELAY; /* set timer compare value (how often timer ISR will fire) */ OCR1A = ( 1000 * qt_measurement_period_msec); /* enable timer ISR */ TIMSK |= (1u << OCIE1A); /* timer prescaler = system clock / 8 */ TCCR1B |= (1u << CS11); /* timer mode = CTC (count up to compare value, then reset) */ TCCR1B |= (1u << WGM12); } volatile uint16_t status_flag; volatile uint16_t status; int main() { uint16_t burst_flag = 0u; spi_init(); init(); sei(); /* loop forever */ for( ; ; ) { if( time_to_measure_touch ) { /* clear flag: it's time to measure touch */ time_to_measure_touch = 0u; do { /* one time measure touch sensors */ status_flag = qt_measure_sensors( current_time_ms_touch ); burst_flag = status_flag & QTLIB_BURST_AGAIN; if(status_flag & QTLIB_STATUS_CHANGE) { lastpos = GET_SENSOR_POS(0); } }while (burst_flag) ; status = status_flag; } /* Time Non-critical host application code goes here */ } return 0; } ISR(TIMER1_COMPA_vect) { /* set flag: it's time to measure touch */ time_to_measure_touch = 1u; /* update the current time */ current_time_ms_touch += qt_measurement_period_msec; } ISR(SPISTC_vect) { if( SPDR == 0x01) { SPDR = (status & 0x0F) | ((status & 0x0F00) >> 8); } if( SPDR == 0x02) { SPDR = lastpos; } } в опциях самого проекта делаю следующие дефайны: -D_QMATRIX_=1 -DQT_NUM_CHANNELS=16 -DPORT_X_1=D -DPORT_YB=A -DPORT_YA=B -DPORT_SMP=A -DNUM_X_LINES=8 -DSMP_PIN=3 -DPORT_NUM_1=1 -DNUM_Y_LINES=2 -DNUM_X_PORTS=1 -DQT_MAX_NUM_ROTORS_SLIDERS=2 -DQT_DELAY_CYCLES=4 -D_ROTOR_SLIDER_
  12. AVR Qtouch wheel

    Здравствуйте. Возникла у меня необходимость сделать сенсорное кольцо. Поискав в интернете, но недостаточно хорошо изучив даташит, приобрел AT42QT2160. Все это дело развел, сделал платку самого кольца - сенсора, но в процессе программирования выяснил, что максимум из нее можно сделать слайдер. В качестве слайдера он конечно, почти работал, но вблизи нуля сенсор себя вел неадекватно. В остальном же претензий не было. Следующим шагом была идея использовать Atmega16 и с помощью Qtouch Library добиться требуемого результата. Все сделал по даташиту. Но стабильной работы я не получил. Можно даже сказать что вообще работы я не получил. Конечно реакция на прикосновение есть, но она не стабильна и по мере работы контроллера чувствительность падала. Может кто нибудь сталкивался с такой проблемой? Код один в один что и в примерах, за исключением отсутствия кнопок и других каналов, повешенных на кольцо. Может быть есть смысл использовать аппаратное решение типа STMPE16M31, где предусмотрена аппаратная поддержка кольца. Если есть опыт в этом вопросе, поделитесь пожалуйста!
  13. Да, конечно. Страна - родная Россия, город Санкт-Петербург. Хотел бы паять/разводить платы/программировать, возможно что-то другое.
×
×
  • Создать...