Обсуждаем контроллеры компании Atmel.
Ответить

ATmega + 12bit ADC

Пн авг 02, 2021 20:03:05

Пламенный честной публике :wink: мне снова жидкость в голову ударила и сразу после этого, ни секунды немедля, я решил что пора бы уже оцифровать ток с датчика 12-битным внешним ацп mcp3201, т,к. разрешения встроенного 10-битного нехватайет. нужно цифровать диапазон 0...200а с разрешением 0.1а, т.е. вывод на 4-диджитный лёд с точкой во втором младшем разряде. 0.1...199.9а. встроенный цифрует напряжение. до этого я делал два 10-битных и ничтоже сумяшися решил пришить козью голову где-то сбоку к овце. но... меня замучили остатки совести и я решил посоветоваться с си-программистами по поводу: все ли я правильно сделал? а может быть есть более красивые места для козей головы? схема в протеусе и код в блокнотике
Вложения
atmega_8_av_meter_var_0.rar
(27.7 KiB) Скачиваний: 232
main.c
(10.75 KiB) Скачиваний: 234

Re: ATmega + 12bit ADC

Пн авг 02, 2021 21:21:22

4-диджитный лёд

а это что за лёд такой? Новый вид не скользкого льда?

Re: ATmega + 12bit ADC

Пн авг 02, 2021 21:58:41

сразу бросается в глаза
Код:
if((Adres_Reg & 0x80)==0x80)
if(
Adres_Reg & 0x80)

Код:
for(V=5;V<8;V++)
 {
   Data_In[V] = Digit[V];
   Send_max7219(V,Data_In[V]);
 }

for(
V=5;V<8;V++)
 {
   Send_max7219(V,Digit[V]);
 }

Re: ATmega + 12bit ADC

Пн авг 02, 2021 22:13:16

сразу бросается в глаза
привет slav0n :wink: скажи, будь ласков, это бросается в глаза потому, что это эротика? или это дёшовая порнографика? я в искустве слабо разбираюсь пока... ещё меня тревожит моментум один: там драйвер 7219 слушает атмегу по виртуальной spi, а ацп разговаривает по натуральной. а как драйверу вернуть людскую ориентацию? или пусть так? и ещё меня беспокоит зашью я код в микру если часть спая задействована на внешний ацп?

Re: ATmega + 12bit ADC

Пн авг 02, 2021 22:29:14

бросается в глаза лишнее и бесполезное масло масляное.
да там еще есть что кромсать

драйвер нехай будет на софтовой шине, какая ему разница, да и АЦП тоже неважно

а шить прошивку надо просто попробовать и убедиться как повлияет на процесс DOUT MCP3201

Re: ATmega + 12bit ADC

Пн авг 02, 2021 22:40:15

да там еще есть что кромсать
реж лишнее я благословляю :kill: ясна. впаяю туда оператор switch аппаратный на двух 0R на всякий.

Re: ATmega + 12bit ADC

Пн авг 02, 2021 22:58:22

можно просто поставить подтяжку на CS

Re: ATmega + 12bit ADC

Пт авг 06, 2021 08:19:56

что-то по типу того, slav0n?
СпойлерИзображение

Re: ATmega + 12bit ADC

Пт авг 06, 2021 09:45:53

R13, R14 лишние

Re: ATmega + 12bit ADC

Пт авг 06, 2021 10:38:54

понял slav0n спасибо :beer:
кста на соседнем форуме меня модераторс забабанил за ВНИМАНИЕ! : Тему нужно создавать с осмысленным заголовком, вкратце отражающим суть проблемы... а там нету проблемы от слова совсем. т.е. такие темы вообще запрещены к публикации, а если безмозглый "грамматическая ошибка на уровне 4 класса" решил расколупать кривыми клешнями настоящую пром электронику даже без тестера, то это проблема достойна публикации :facepalm:

Re: ATmega + 12bit ADC

Вс авг 08, 2021 18:00:55

...продолжаю медитировать...
Вложения
av_meter_ver_3.rar
(22.18 KiB) Скачиваний: 214

Re: ATmega + 12bit ADC

Пн авг 09, 2021 20:57:00

тяга к оптимизации неискоренима

Re: ATmega + 12bit ADC

Вт авг 10, 2021 13:00:18

прочитал. не понял ровным счётом ни хирра. да и доказательств в конце ни идиного не приведено. ни кода, ни схемы. ни фоток, ни видев. ни хирра вообчем целом. голимая абстракция про сфеерического каня педального. заказная бессмысленая статейка ради кусочка хлеба насущного не боле :sleep:
буду делать разводняк под внешний 12-битный ацп.

Re: ATmega + 12bit ADC

Вт авг 10, 2021 13:24:33

это был перевод первой половины атмеловского апноута
там же ссылка на вторую половину
charchyard писал(а):не понял ровным счётом ни хирра.
буду делать разводняк под внешний 12-битный ацп.
если ты нифига не понял, это совершенно ничего не значит.
просто проведи дополнительную дорожку между входами внешнего ацп и ацп меги, может пригодиться
Последний раз редактировалось slav0n Вт авг 10, 2021 13:28:43, всего редактировалось 1 раз.

Re: ATmega + 12bit ADC

Вт авг 10, 2021 13:27:59

Смотрим в книгу - видим фигу.

Там есть и вторая часть у статьи.
Вообще то это рекомендации от производителя AVR и схемы там есть и всё разжевано. И более того что работает, проверено.

Re: ATmega + 12bit ADC

Вт авг 10, 2021 14:35:35

читал я всю литературу. сделаю оператор switch из двух 0R. но кодировки то у меня всё одно нетути для этого. там програмных наворотов боле гораздо чем внешний прикрутить. а то что всё работает и проверено где конкретные доказательства?

Re: ATmega + 12bit ADC

Вт авг 10, 2021 18:33:53

charchyard писал(а):там програмных наворотов боле гораздо чем внешний прикрутить.
та ты шо!
суммируешь 16 10-битных выборок и делишь сумму на 4, получаешь 12 бит
вот и весь хрен до копейки

Re: ATmega + 12bit ADC

Вт авг 10, 2021 21:13:16

slav0n писал(а):суммируешь 16 10-битных выборок и делишь сумму на 4, получаешь 12 бит
а если я суммирую за 1 секунду 1000 10-битных выборок, то сколько бит я реально могу получить?
у меня получается 5 бит - 4^5 = 1024.
правда, я оставляю 16 старших бит от суммы и меня это устраивает.

Re: ATmega + 12bit ADC

Вт авг 10, 2021 21:54:13

slav0n писал(а):суммируешь 16 10-битных выборок и делишь сумму на 4, получаешь 12 бит
Попытка обмануть, и так, посчитаем:
суммируем 16 10-битных выборок, к примеру 956, итог 15296
- делим на 4 = 3824
- делим на 16 (среднее) 956

далее, будем определять шаг,
956 * 5000 / 1024 = 4668,0
3824 * 5000 / 4096 = 4668,0

суммируем 16 10-битных выборок, к примеру 957, итог 15312
- делим на 4 = 3828
- делим на 16 (среднее) 957

957 * 5000 / 1024 = 4672,9
3828 * 5000 / 4096 = 4672,9

определяем шаг

при 10 бит 4672,9 - 4668,0 = 4,9
при ваших 12 бит 4672,9 - 4668,0 = 4,9

истинный шаг 10 битного АЦП 1 * 5000 / 1024 = 4,9
истинный шаг 12 битного АЦП 1 * 5000 / 4096 = 1,2

Кого вы пытаетесь обмануть?

Re: ATmega + 12bit ADC

Вт авг 10, 2021 23:05:33

а как здесь учитывается тот факт, что последние два бита - это шум? Точнее, шум квантования и нелинейность преобразования?
Ответить