Не получается правильно состыковать эти 2 чипа.
CODE
.equ ads_port = PORTD //
.equ ads_pin = PIND //
.equ ads_ddr = DDRD //
// Распиновка ног
.equ ads_clk = PD3 // Serial Clock Output
.equ ads_di = PD4 // Serial Data Input
read_ads: // чтение
sbi ads_port,ads_clk // CLK -> 1 импульс
nop
nop
nop
cbi ads_port,ads_clk // CLK -> 0
nop
nop
nop
ads_wait: //
sbic ads_pin,ads_di //
rjmp ads_wait //
ads_start: //
ldi loop2,3 //
ldi yl,low (ads_h) //
ldi yh,high(ads_h) //
result: //
rcall ads1244 //
st Y+,data //
dec loop2 //
brne result //
sbi ads_port,ads_clk // CLK -> 1 импульс
nop
nop
nop
cbi ads_port,ads_clk // CLK -> 0
nop
nop
nop
ret //
ads1244: //
clr data // очищаем регистр перед приемом байта
ldi loop,8 // bit counter
read_ads_c: // цикл
lsl data // data << 1
sbi ads_port,ads_clk // CLK -> 1 импульс
nop
nop
nop
cbi ads_port,ads_clk // CLK -> 0
nop
nop
nop
sbic ads_pin,ads_di // Пропускаем следующую команду, если на входе Di низкий уровень
inc data // data = + 1
dec loop // bit counter - 1
brne read_ads_c // если счетчик цикла > 0, переходим к началу цикла
ret // выход
.equ ads_pin = PIND //
.equ ads_ddr = DDRD //
// Распиновка ног
.equ ads_clk = PD3 // Serial Clock Output
.equ ads_di = PD4 // Serial Data Input
read_ads: // чтение
sbi ads_port,ads_clk // CLK -> 1 импульс
nop
nop
nop
cbi ads_port,ads_clk // CLK -> 0
nop
nop
nop
ads_wait: //
sbic ads_pin,ads_di //
rjmp ads_wait //
ads_start: //
ldi loop2,3 //
ldi yl,low (ads_h) //
ldi yh,high(ads_h) //
result: //
rcall ads1244 //
st Y+,data //
dec loop2 //
brne result //
sbi ads_port,ads_clk // CLK -> 1 импульс
nop
nop
nop
cbi ads_port,ads_clk // CLK -> 0
nop
nop
nop
ret //
ads1244: //
clr data // очищаем регистр перед приемом байта
ldi loop,8 // bit counter
read_ads_c: // цикл
lsl data // data << 1
sbi ads_port,ads_clk // CLK -> 1 импульс
nop
nop
nop
cbi ads_port,ads_clk // CLK -> 0
nop
nop
nop
sbic ads_pin,ads_di // Пропускаем следующую команду, если на входе Di низкий уровень
inc data // data = + 1
dec loop // bit counter - 1
brne read_ads_c // если счетчик цикла > 0, переходим к началу цикла
ret // выход
Это код для чтения АЦП.
Читает мусор. Возможно из-за того что неверно входы АЦП подключил...
Прикрепляю схему, сделал на отдельной платке. Частота опорника 4,3320 МГц, 2,4576 МГц у меня пока нет...
Как подключить ноги АЦП AINN AINP чтобы мерить постоянное напряжение ?