Jump to content
Терентенко Андрей

Влияние температуры на АЦП в РІС

Recommended Posts

Добрый день! Имею следующую ситуацию : на базе  PIC16f676  создал приблуду для "управления нештатной магнитолой с руля", а именно  сигнал с руля это 4,8в и в зависимости от нажатой кнопки падает дискретной до 0.8в мк с помощью АЦП отслеживает  на магнитолу паралельно кнопкам кинул оптрони которыми управляет МК. Питание от LM с фильтрующими конденсаторами. При тестових прогонах всё работало как надо (программно реализовано защиту от дребезга аж на 0.1 сек в поисках решений) и в машине  и от штатного БП . Но заметил закономерность сейчас на улице - 2 и при первом запуске минут 5, МК "шумит" несоотвецтвует нажатия на руле кнопке  на магнитоле ! Сигнал с руля смотрел стабильный без дребезга , притом когда тестил вынес магнитолу подключил всё работало гуд но пока устанавливал закручивал она остыла и начинались эти тацы . Кто что подскажет? МК или ЛМ могут так реагировать на температуру ? Прошу прощения у модераторов за повторение теми (может в этом разделе будет актуальней)

Share this post


Link to post
Share on other sites

А схему устройства можно показать?

Как у вас вывод VREF задействован?

Share this post


Link to post
Share on other sites

(исходник проект в протеусе печатка остались на ноуте на роботе) набросал схему от руки , VREF- никак просто весит в воздухе ! Наверное нужно так как на втором фото ? 

IMG_20190117_105417.jpg

IMG_20190117_105852.jpg

Share this post


Link to post
Share on other sites

Тестирование литиевых батареек Fanso в нормальных условиях

Компания Компэл, эксклюзивный дистрибьютор компании Fanso, предлагает широкий перечень ЛХИТ, позволяющий подобрать элемент питания, в наибольшей степени соответствующий конкретным требованиям. Для тестирования параметров, указанных в Datasheet, специалисты Компэл организовали в апреле 2019 г. полугодовой тест на постоянный разряд в нормальных условиях четырех наиболее популярных моделей литий-тионилхлоридных и литий-диоксидмарганцевых батареек Fanso.

Посмотреть результаты первого среза

исходник проект в протеусе печатка остались на ноуте на роботе) набросал схему от руки , VREF- никак просто весит в воздухе  (перепроверил в исходнике ) 

            banksel     ADCON1         ; переходим в регистр ADCON1
            movlw       b'00110000'   ;          vcfg-0-VDD        
            movwf       ADCON1        ; -//- ) !

или не так понял ?

 

Edited by Терентенко Андрей

Share this post


Link to post
Share on other sites

IMG_20190117_105852.jpg

 

Нет, на vref нужно повесить ион . Например mcp1525. И переделать инициализацию модуля АЦП. И нужно также применять хорошие резисторы в цепи делителя.

Share this post


Link to post
Share on other sites

Новое бюджетное семейство микроконтроллеров STM32G0 и планы его развития

Семейство STM32G0 сочетает в себе лучшие качества представителей семейств STM32F0 и STM32L0 - относительно высокую производительность и низкое энергопотребление. Модели STM32G0 имеют упрощенную схему питания, улучшенную периферию, систему тактирования и быстрые порты в/в, доп.средства защиты ПО, повышенную устойчивость к статическим разрядам, широкий ассортимент корпусов, обновленные пакеты библиотек для STM32CubeMX. STMicroelectronics планирует развивать новое семейство.

Подробнее...

Спасибо ! буду пробовать переделать ! Но мне наверное больше подойдёт 1541+ минимальный делитель, (максимальное измеряемое напряжение 4.85V а опорное с MCP1541= 4.098V ) + переделка АЦП вычислений под делитель... И всё же не могу понять почему если в МК есть возможность привязаться к VDD как опорному почему такие проблемы там градация между кнопками  почти  в 1V (как на меня не мега точность при 10 разрядах)  ,  и почему оно так реагирует на температуру или я неправильно понимаю причину  проблемы? может запитать чем то более стабильным и ровным..?     

Share this post


Link to post
Share on other sites

Да, 1541 тоже хороший ион .

Share this post


Link to post
Share on other sites
46 минут назад, Терентенко Андрей сказал:

Спасибо ! буду пробовать

Господа, вы вообще что тут обсуждаете?  :crazy:

Какой, туды его в качель, ИОН?  :lol2:

Как вообще формируется сигнал на руле? Почему на схеме с руля идет только один проводник? Откуда руль получает питание для формирования сигнала? 

 

Share this post


Link to post
Share on other sites

Стоит штатная магнитола с неё на руль идёт питание подсветка кнопок на руле + сами кнопки ! С руля возвращается  на магнитолу для управления ею (от 4.8 до 0.75) в зависимости от нажатой кнопки на руле ! В магнитоле есть канал для подключения телефона (при замыкании определённых контактов в шлейфе магнитола переходит в режим телефон) к нему подключёна периферия которой и должен управлять МК. сигнал с руля берёста в разъёме магнитолы, питание  МК (+-12) тоже с магнитолы . Штатная магнитола работает в штатном режиме и управляться с руля тоже, при зажатии клавиши на руле и удержании более минуты МК  оптроном замыкает и переводит магнитолу в режим телефон (в этом режиме магнитола не реагирует на команды с руля кроме звука +-  а мк управляет схемой подключённой к каналу телефона  ) 

Share this post


Link to post
Share on other sites

Вся история с аналоговым интерфейсом кнопок состоит в том, что делитель напряжения на кнопках выполняется по ратиометрической схеме. Сиречь, когда опорное напряжение АЦП и является питанием делителя оных кнопок. Таким образом, на величину опорного напряжения становится БОЛТ ПОЛОЖИТЬ. АЦП измеряет не напряжение, а КОЭФФИЦИЕНТ ДЕЛЕНИЯ в аналоговом делителе кнопок. Никакого ИОН там не требуется. 

Идея с тем, чтобы задействовать входы опорного напряжения не имеет никакого смысла еще и потому, что эти входы придется подключить к АЦП в качестве опоры (в соответствующем регистре), иначе АЦП их проигнорирует. Но это так, лирическое отступление.

Что касается линии сигнала, то ИМЕННО НА ДЕЛИТЕЛЬ должны идти ТРИ ВЫДЕЛЕННЫХ проводника - общий, питание, сигнал - (причем их желательно свить, поместить в экран, который соединить с общим АНАЛОГОВЫМ проводником схемы (в районе пина AVss, либо просто Vss, если отдельного вывода AVss у МК не предусмотрено). Никакие другие "общие" проводники и уж тем более "масса" для этого не пригодны от слова СОВСЕМ.

Edited by my504

Share this post


Link to post
Share on other sites
11 минуту назад, my504 сказал:

Никакого ИОН там не требуется. 

Это радует! А то я тут уже два часа про ИОН читаю :wacko:

МК вместе с схемой размещены  в нутри самой магнитолы длина проводов не более 4 см . 

 

Основной вопрос почему (шум, дребезг, шайтан ...) только на холодную если снять магнитолу и подержать в помещении или когда в салоне малость потеплеет то работает как швейцарские часы !!! А на холодную вот такая ерунда !!!!!!!

 

Share this post


Link to post
Share on other sites

Я не понимаю как выполнена топология шин от руля к магнитоле, где размещена плата с МК.

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

И то, что Вы видите никакого отношения к дребезгу не имеет.

Кроме всего прочего, измерения АЦП должны идти сплошным потоком в кольцевой буфер. После каждого измерения нужно находить среднее значение буфера. Оно и будет собственно отфильтрованным значением подлежащем анализу на предмет определения нажатия. Длина буфера должна быть выбрана такой, чтобы достаточно быстро реагировать на кнопку.  Ну, положим, 10...30 мс. Количество измерений в буфере, например, - 16. То есть каждое преобразование должно идти с интервалом 10 мс/16= 525 мкс.

Как то так.

Share this post


Link to post
Share on other sites
41 минуту назад, my504 сказал:

Никакого ИОН там не требуется. 

Ну, ну :) расскажите. 

4 минуты назад, Терентенко Андрей сказал:

Основной вопрос почему (шум, дребезг, шайтан ...) только на холодную если снять магнитолу и подержать в помещении или когда в салоне малость потеплеет то работает как швейцарские часы !!! А на холодную вот такая ерунда !!!!!!!

Кстати , эту проблему можно исправить программно . Только конечно если обвязка позволит. 4.8в формируется через делитель? Или питание там 4.8в  .

Если 4.8в через делитель , то можно использовать как калибровку при перепадах температуры . Так как при изменении температуры меняется сопротивление и соответственно напряжение . Программно нужно делать пересчет , чтобы компенсировать "уплывание" напряжения .

Share this post


Link to post
Share on other sites
Только что, artos5 сказал:

Ну, ну :) расскажите. 

А тут и рассказывать нечего. Без ратиометрии эта приблуда работать нормально не будет. А ратиометрии не требуется конкретная опора. Нужна лишь стабильность на интервале преобразования. Но ИОН не гарантирует низкий шум. Поэтому он тут не пришей, ни пристегни.

Share this post


Link to post
Share on other sites
2 минуты назад, my504 сказал:

Кроме всего прочего, измерения АЦП должны идти сплошным потоком в кольцевой буфер. После каждого измерения нужно находить среднее значение буфера. Оно и будет собственно отфильтрованным значением подлежащем анализу на предмет определения нажатия. Длина буфера должна быть выбрана такой, чтобы достаточно быстро реагировать на кнопку.  Ну, положим, 10...30 мс. Количество измерений в буфере, например, - 16. То есть каждое преобразование должно идти с интервалом 10 мс/16= 525 мкс.

Усреднение обязательно нужно делать . Можно и каждых 50мс усреднять по 20-40 значений , этого будет достаточно.

Share this post


Link to post
Share on other sites
11 минуту назад, artos5 сказал:

Можно и каждых 50мс усреднять по 20-40 значений

50 мс - это многовато. Могут успевать сформироваться промежуточные значения при росте выходного сигнала фильтра. И 20-40 тоже неудобно. Потребуется деление. значит либо 16, либо 32.

ЗЫ. Кстати. Фильтрация сигнала с аналогового делителя кнопок - это не совсем тривиальная задача. Выход КИХ ФНЧ (с прямоугольным окном), коим и является простое усреднение, дает задержку в половину длины буфера. Ответом на функцию Хевисайда (единичный перепад) будет линейный рост выходного сигнала вплоть до заполнения буфера.  а теперь подумайте что с этим делать... :bye:

Edited by my504

Share this post


Link to post
Share on other sites

Ну , я антидребезг всегда делаю на значении 50мс. Когда делал опрос при помощи АЦП , то делал по моему около 50мс.  За этот период 40 опросов и выдача усредненного результата . Можно применить ещё и чуток другой метод:

5 опросов и выдача самого среднего значения. Например так:

100

110

130

120

130

После фильтра

= 120

 

Или выдача максимально одинакового значения:

После такого фильтра:

= 130

Share this post


Link to post
Share on other sites

Это все вырванный из реальных условий пример. Я выше изложил проблему. Решите ее... :crazy:

Share this post


Link to post
Share on other sites
15 минут назад, my504 сказал:

Кроме всего прочего, измерения АЦП должны идти сплошным потоком в кольцевой буфер. После каждого измерения нужно находить среднее значение буфера. Оно и будет собственно отфильтрованным значением подлежащем анализу на предмет определения нажатия. Длина буфера должна быть выбрана такой, чтобы достаточно быстро реагировать на кнопку.  Ну, положим, 10...30 мс. Количество измерений в буфере, например, - 16. То есть каждое преобразование должно идти с интервалом 10 мс/16= 525 мкс.

Как то так.

Этого автору топика скорее всего (с долей вероятности 95%) будет недостаточно для решения его проблемы. Ему нужно кроме усреднения ввести самокалибровку . И ион лишним кстати не будет :) зря вы забраковали мое предложение (хотя для кнопок возможно ион и избыточен).

Share this post


Link to post
Share on other sites

а можно кусок кода как усреднить в ассемблере ? У меня там  немного примитивно всё 

Скрытый текст



;===============================================
	;програми контроля напряжения на руле
   ;===============================================
	
Prov_V   
    CLRF       FL_KNOPKA ; очистка флагов кнопок перед измерениэм
    
	
    banksel     ADCON0        ; переходим в регистр ADCON0
	nop
    movlw       b'10001101'   ; правое виравнивание включаем модуль АЦП, , AN1 - вход
    movwf       ADCON0        ; -//-  
	
	call        del_20mcs

    bsf         ADCON0,1      ; включаем преобразование АЦП
    btfsc       ADCON0,1      ; ожидаем завершения
    goto        $-1           ; преобразования
 	
	CLRF	ANALIZ_H
	MOVF	ADRESH,0		; Загрузили измеренное значение в регистр
	MOVWF 	ANALIZ_H	
	
;------------------------------------------------------------------------------
	BTFSS   ANALIZ_H,0    ;  измеренное значение в регистр H = 0 (0)
	GOTO   P_X_0               ; бит0=0 на пп проверки бита1
	BTFSC   ANALIZ_H,1    ;  измеренное значение в регистр H = (0) 0
	GOTO   P_1_1               ; бит 1 =1 
	

P_0_1  ;--- бит 1=0 бит 0=1 

	bsf	    STATUS,RP0            ; вибор банка 1
	CLRF	ANALIZ_L
	MOVF	ADRESL,0		; Загрузили измеренное значение в регистр
	MOVWF 	ANALIZ_L
	bcf	    STATUS,RP0            ; вибор банка 0
	ADDLW	D'87'		; Добавили число 87 (проверка напряжениэ  више 2.07v (425))
	BTFSS	STATUS,C
	GOTO   B_1
	B_2
	bsf     FL_KNOPKA,1  ; флаг  "кнопка  (>)   нажата"
	return
	
	
	B_1
	bsf	STATUS,RP0            ; вибор банка 1
	CLRF	ANALIZ_L
	MOVF	ADRESL,0		; Загрузили измеренное значение в регистр
	MOVWF 	ANALIZ_L
	bcf	   STATUS,RP0            ; вибор банка 0
	ADDLW	D'199'		; Добавили число 199 (проверка напряжениэ  више 1.52v (425))
	BTFSC	STATUS,C
	GOTO   A_ret
	
	bsf     FL_KNOPKA,2  ; флаг  "кнопка   (+)   нажата"
	return
	
	A_ret
	bsf     FL_KNOPKA,3  ; флаг  "кнопка   (0)   нажата"
	return
	
	
	
;------------------------------------------------------------------------------


P_1_1  ; пп проверки при бит 1=1 бит 0=1 	
	
    bsf	STATUS,RP0            ; вибор банка 1
	CLRF	ANALIZ_L
	MOVF	ADRESL,0		; Загрузили измеренное значение в регистр
	MOVWF 	ANALIZ_L
	bcf	   STATUS,RP0            ; вибор банка 0
	ADDLW	D'103'		; Добавили число 103 (проверка напряжениэ  више 1.52v (773))
	BTFSS	STATUS,C
	GOTO    pysto  ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
	bsf     FL_KNOPKA,4  ; флаг  "кнопка   (p)   нажата"
	return
	
	

	
;=========================================================================================================================================
	
P_X_0               ; пп проверки бита1 при бит0=0	
	
	
	BTFSC ANALIZ_H,1    ;  измеренное значение в регистр H = (0) 0
	GOTO   P_1_0               ; бит 1 =1 
	
P_0_0   ;--- бит 1=0 бит 0=0
    bsf	STATUS,RP0            ; вибор банка 1
	CLRF	ANALIZ_L
	MOVF	ADRESL,0		; Загрузили измеренное значение в регистр
	MOVWF 	ANALIZ_L
	bcf	   STATUS,RP0            ; вибор банка 0
	ADDLW	D'87'		; Добавили число 87 (проверка напряжениэ  више 1v (204))
	BTFSS	STATUS,C
	GOTO A_1
	bsf     FL_KNOPKA,2  ; флаг  "кнопка   (+)   нажата"
	return
	
	A_1
	bsf	STATUS,RP0            ; вибор банка 1
	CLRF	ANALIZ_L
	MOVF	ADRESL,0		; Загрузили измеренное значение в регистр
	MOVWF 	ANALIZ_L
	bcf	   STATUS,RP0            ; вибор банка 0
	ADDLW	D'179'		; Добавили число 179 (проверка напряжениэ  више 0.37v (76))
	BTFSS	STATUS,C
	GOTO	pysto          ;на пп "пусто"
	bsf     FL_KNOPKA,5  ; флаг  "кнопка   (-)   нажата"
	return
;------------------------------------------------------------------------------
    
    P_1_0   ;--- бит 1=1 бит 0=0 
	
	bsf	STATUS,RP0            ; вибор банка 1
	CLRF	ANALIZ_L
	MOVF	ADRESL,0		; Загрузили измеренное значение в регистр
	MOVWF 	ANALIZ_L
	bcf	   STATUS,RP0            ; вибор банка 0
	ADDLW	D'104'		; Добавили число 104 (проверка напряжениэ  више .0v (773))
	BTFSS	STATUS,C
	GOTO   A_2
	bsf     FL_KNOPKA,4  ; флаг  "кнопка   (p)   нажата"
	return
	
	
	A_2
	bsf	STATUS,RP0            ; вибор банка 1
	CLRF	ANALIZ_L
	MOVF	ADRESL,0		; Загрузили измеренное значение в регистр
	MOVWF 	ANALIZ_L
	bcf	   STATUS,RP0            ; вибор банка 0
	ADDLW	D'225'		; Добавили число 225 (проверка напряжениэ  више .v (542))
	BTFSS	STATUS,C
	GOTO  B_2
	
	bsf     FL_KNOPKA,6  ; флаг  "кнопка   (<)  нажата"
	return
	
	
pysto          ;на пп "пусто"
    bsf FL_KNOPKA,7        ; флаг НЕ нажатих кнопок
	return

 


 

а защита от "дребезга " состоит в задержке 0.1 сек (проверки условия флага сработавшей кнопки) с выходом если условие не выполнено  (кнопка скорее будет не нажата чем нажата ) но увы в протэусэ и теории это так а на практике нет!

Share this post


Link to post
Share on other sites

Если в схеме есть электролиты, попробуйте заменить на тантал.

Share this post


Link to post
Share on other sites
27 минут назад, Терентенко Андрей сказал:

а можно кусок кода как усреднить в ассемблере ?

Не знаю как на ассемблере , но на си выглядит так:

Цитата

int filtr(int data, int filtr){

Int filtr_cnt, data_buff;

data_buff+=data;

if(++filtr_cnt>filtr)data=filtr_cnt=0;

return data_buff/filtr;

}

Ps: может быть с ошибками , на скорую и с телефона написал. Но суть ясна .

Share this post


Link to post
Share on other sites

здесь речь скорее идёт не о единичных "проскоках" а о закономерносте! притом повторюсь сигнал с руля стабилен без изменений чётко в пределах 0.05V  колебания!   Впечатление что МК просто те так считает в этот период ! при стабильном сигнале с руля может выдавать команду на один с оптронов постоянно как будто зажата какая то кнопка на руле или при нажатии одной кнопки срабатывает другая ..... и всё это пока не нагрета (проработала минут 5+- ) схема (LM8705 + PIC16f676 +PC817) всё на одной плате. 

2 минуты назад, artos5 сказал:

Не знаю как на ассемблере , но на си выглядит так

В том то и проблема что + - в ассемблере как раз плюнуть умножить пол беды а  делить целая наука, :wacko: ну по крайней мере для меня !

Ех знал бы СИ подпелил бы на ардуинке и не морочил бы вам голову :blink: 

Share this post


Link to post
Share on other sites
28 минут назад, Терентенко Андрей сказал:

У меня там  немного примитивно всё 

 у вас там бред какойто написан...  начиная с настройки АЦП:

movlw       b'10001101'   ; правое виравнивание включаем модуль АЦП, , AN1 - вход
movwf       ADCON0        ; -//-  

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

 

Share this post


Link to post
Share on other sites

 

49 минут назад, IMXO сказал:

не настроено тактирование АЦП

banksel     ADCON1         ; переходим в регистр ADCON1
            movlw       b'00110000'   ; RC- генератор,                  
            movwf       ADCON1        ; -//-

в шапке при инициализации контролера !

 

49 минут назад, IMXO сказал:

комментарий не соответствует включенному каналу  АЦП

в процессе создания печатки изменил с АN1 на АN3 комментарий не поправил ! 

49 минут назад, IMXO сказал:

нахрена вообще правое выравнивание в задаче определения "трех кнопок" , для этого 8бит АЦП выше крыши и на порядок упрощает сам код обработки

Да потому что  я профи в в этом :D:D!  Скорей от глупости точнее от незнания ассемблер и пик знаю на уроне "поморгать светодиодом" ну если так можно сказать ну как мой воспальонний мозг допЁр реализовать задуманное так и написал:wacko: 

почитал примеры там 10бит было вот по аналогии и ...

Edited by Терентенко Андрей

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By artos5
      Приветствую всех на этом форуме!
      Есть необходимость измерять сигнал при помощи данного АЦП. С помощью этого АЦП можно измерять 4 аналоговых не дифференциальных сигнала . Схема следующая:
      Schematic_Temp_opto_sens_V2_20190817124112.pdf
      Картинками с более низким разрешением:
      библиотеку за основу взял эту:
      https://github.com/nsaspook/nidaq700/blob/master/supermoon/example/ADS1220.c
      Путем незначительного допиливания, получилась такая библиотека:
       
      Поправил только эти функции:
      void ADS1220SendByte(unsigned char Byte) { unsigned char Result = 0x01, i=0, flg=0; MOSI_LO; Delay_us(1); for(i=0;i<8;i++) { SCK_LO; //ADC_CLK=0 Delay_us(4); if (flg) MOSI_LO; Delay_us(1); SCK_HI; //ADC_CLK=1 Delay_us(1); if (Byte&Result){ MOSI_HI; flg=1; } else MOSI_LO; Delay_us(4); Result<<=1; } SCK_LO; //ADC_CLK=0 } unsigned char ADS1220ReceiveByte(void) { unsigned char Result = 0, i=0; for(i=0;i<8;i++) { Result<<=1; SCK_LO; //ADC_CLK=0 Delay_us(5); //Delay_us(5); SCK_HI; //ADC_CLK=1 Delay_us(3); if (MISO) Result++; Delay_us(2); } SCK_LO; //ADC_CLK=0 return Result; } И добавил эту функцию:
      void ADS1220Config_MUX_GAIN(uint8_t mux, uint8_t gain) { unsigned Temp; ADS1220ReadRegister(ADS1220_0_REGISTER, 0x01, &Temp); // clear prev value; Temp &= 0x0f; Temp |= gain; Temp |= mux; // write the register value containing the new value back to the ADS ADS1220WriteRegister(ADS1220_0_REGISTER, 0x01, &Temp); ADS1220ReadRegister(ADS1220_1_REGISTER, 0x01, &Temp); // clear prev DataRate code; Temp &= 0x1f; Temp |= (ADS1220_DR_600 + ADS1220_CC); // Set default start mode to 600sps and continuous conversions // write the register value containing the new value back to the ADS ADS1220WriteRegister(ADS1220_1_REGISTER, 0x01, &Temp); } ADS1220.h :
      в результате получаю такую осциллограмму :

      То есть , постоянно считывается 0.
      А вот регистры конфигурации:
      Задаю номер входа MUX и усиление :
       

       
      Читаю данные так:
      ADS1220Config_MUX_GAIN(ADS1220_MUX_0_G, ADS1220_GAIN_1); HAL_Delay(10); temp_[0] = ADS1220ReadData(); Это для 0 канала. 
      Пробовал и так:
      ADS1220SetChannel(ADS1220_MUX_0_G); ADS1220SetGain(ADS1220_GAIN_1); temp_[0] = ADS1220ReadData(); Результат аналогичный. Кто что подскажет? Может кто заметит какой косяк в коде? Уже голова дымит ..
    • By pryanic
      Доброго времени суток. Понадобилось разобраться с АЦП.  Основной материал использовал Евстифеева (микроконтроллеры семейства мега) и учебный курс Di-Halt.
      На первый раз задача простая - обработать напряжение с переменного резистора и послать по UART в терминал. С терминалом уже кое-что делал, так что тут вряд ли косяк есть.
      Кратко опишу программу: каждую секунду в обработчике прерывания таймера (не совсем точно, прерывание по переполнению Т0) запускаю преобразование АЦП установкой в 1 бита ADSC. 
      В обработчике прерывания АЦП читаю байт ADCH (выравнивание по левому краю ADLAR=1) и шлю по уарт. Но в терминал приходят одни FF независимо от положения движка потенциометра (подключен к PC1 средним контактом, крайними на землю и AVCC)
       
       
      ADC_test.zip
    • By dav1977
      Кто-нибудь запускал скоростные  АЦП  AD7606(последовательного приближения)
       в последовательном режиме считывания данных ?,
      из 4 шт одна заработала, остальные на выводе последовательного вывода DOUT ничего не выдают постоянно 0.
      пробовал переключаться с внутренним опорным источником(выдает 2.49), и с внешним без разницы.
      Может у них есть какая то очередность включения?
       

    • By Профан
      Заказал своей даме в подарок плойку из Китая.Пришла быстро,но при первом использовании от волос пошел дым. Я взял тестер с термопарой,зажал в плойке и начал регулировать температуру. Температура при любых показаниях на дисплее(должно регулироваться 80-210 градусов) была ~196. Спор с продавцом я проиграл и решил попробовать оживить ее с вашей помощью. Проверил симиcтор (BT137),он рабочий. Куда еще копать ?



    • By Илья Говжеев
      Поделитесь опытом , кто уже пробывал из arduino сделать программатор pic? 

  • Сообщения

    • Да да в копеечные колонки только специально подобранные (тестируют в особой "тихой" камере, прогон в течении нескольких суток), на них даже наверное маркировка есть
    • И как у тебя уживается такое двоемыслие?! Избивают (кстати, шибко громко сказано) именно по закону! А вот "мирные демонстранты" действуют не по закону. Так кто живет ПО, а кто НЕ ПО закону?! На счет несовсем русских фамилий: тебе перечислить фамилии организаторов этих "демонстраций", чтобы ты посчитал там процент фамилий по национальному признаку? А я и сейчас живу, как чех. Потому спроси себя - с какого? А не меня. Со мной работают люди, которые через 30 лет будут жить не хуже чехов. А ты так и останешься в жопе. И виноват тебе будет не строй, не власть, а твоя голова. Ты сам решил заменить в ней мозги на помои. Я повторюсь, назвав тебя завистливым глупым нытиком.
    • Мне мозг выносит их способность различать подобные вещи и не путаться
    • Более половины россиян (53%) хотели бы, чтобы их дети работали в правоохранительных органах и силовых структурах Об этом свидетельствуют данные опроса, проведенного Всероссийским центром изучения общественного мнения (ВЦИОМ). Опрос проводился с 3 по 4 декабря 2016 года в 130 населенных пунктах в 46 областях, краях и республиках и восьми федеральных округах России. Объем выборки составил 1600 человек.
    • Продам или обменяю на советские фотообъективы  коллекцию журналов Радио 1949  - 1959 гг.  Все 12 номеров только в подшивках 1951 - 52 гг. Остальные   - не полные  , хотя есть и по 11 номеров одного из годов.
    • ремонтировал дежурку, починил, запустил замеряю напряжение на выходе-60в и в течении минуты опускается до 10 в, первый раз с таким сталкиваюсь, где собака зарыта ?, осциллограммы будут вечером, пока пытаюсь понять как напряжение регулируется/стабилизируется
    • подаю на выход +5 напругу от лабораторника, и меряю сопротивление на базе Q9.напряжение увеличиваю, когда оно больше 5,5 оптопара открывается и сопротивление падает. Q9 выпаял и проверил на транзистор тестере, оказался рабочий. а вообще если бы Q9 был не рабочим генерация врядли была. 
×
×
  • Create New...