AD5601(dac) spi 3-wire

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
jeck-wolf
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Пн мар 14, 2011 14:47:23

AD5601(dac) spi 3-wire

Сообщение jeck-wolf »

Кто знает правильную последовательность сигналов. а то я запутался.

Даташит.ad5601
http://www.datasheetcatalog.org/datashe ... t5jtfy.pdf

Страница 7.- сигнал synk инверсний.

Страница 14.- на рис 27 битов в правом 17
стр 13 снизу битов 16

как правельно отослать?
Последний раз редактировалось jeck-wolf Вт июл 26, 2011 10:23:00, всего редактировалось 1 раз.
Реклама
Аватара пользователя
Satyr
Друг Кота
Сообщения: 7439
Зарегистрирован: Чт ноя 04, 2010 01:56:36
Откуда: г. Москва

Re: AD5601(dac) spi 3-wire

Сообщение Satyr »

У тебя же есть даташит. В чем вопрос.
spi там, на самомо деле, 2 проводный -))) только на прием.

и к какому контроллеру будешь прикручивать ? там 16 битные пакеты, железный SPI в столь любимых тут аврах, насколько помню, работает только с 8 битными.
Реклама
jeck-wolf
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Пн мар 14, 2011 14:47:23

Re: AD5601(dac) spi 3-wire

Сообщение jeck-wolf »

ATTINY25

Вот программа на отправку

.include "tn25def.inc"
.def temp =R16
.def temp1 =R17
.def BTS =R20
.def Bit_counter =R21
.equ SYNC =PB4
.equ SCL =PB2
.equ SDA =PB0

.org 0
rjmp RESET
reset:
ldi temp,RAMEND
out SPL,temp ;Init Stack Pointer
ldi temp,0b010111
out DDRB,temp
ldi temp,0b010000
out PORTB,temp

ldi temp,0x80
out CLKPR,temp
ldi temp,0b00001000 ;8/256=31.250 khz
out CLKPR,temp

LDI BTS,0X0F
RCALL Send_Byte


PROG:
RJMP PROG


DELAY:
ldi temp1,0x0F
d2:ldi temp,0xff
d1:dec temp
brne d1
dec temp1
brne d2
RET
;++++++++++++++++++++++++++++++++++++++++++++++++++++i2c send BTS= ?????????? ????
SYNC_null:
CBI PORTB,SYNC
RCALL DELAY
RET
SYNC_ONE:
SBI PORTB,SYNC
RCALL DELAY
RET
Clock_null:
CBI PORTB,PB1
CBI portB,scl
RCALL DELAY
RET
Clock_one:
SBI PORTB,PB1
SBI portB,scl
RCALL DELAY
RET
Data_null:
CBI portB, sda
RCALL DELAY
RET
Data_one:
SBI portB,sda
RCALL DELAY
RET
;))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
Send_Byte:
LDI Bit_counter, 8
CLR TEMP
RCALL SYNC_ONE
RCALL Clock_ONE
RCALL SYNC_null
next_bit_sI:
RCALL Clock_ONE
SBRC TEMP,7
rjmp sI
RCALL Data_null
rjmp sII
sI: RCALL Data_one
sII: RCALL Clock_NULL
ROL TEMP
DEC Bit_counter
BRNE next_bit_sI

LDI Bit_counter, 8
next_bit_s:
RCALL Clock_ONE
SBRC BTS,7
rjmp s1
RCALL Data_null
rjmp s11
s1: RCALL Data_one
s11: RCALL Clock_NULL
ROL BTS
DEC Bit_counter
BRNE next_bit_s
RCALL SYNC_ONE
RCALL Clock_ONE
RET

и никак на выходе 0
jeck-wolf
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Пн мар 14, 2011 14:47:23

Re: AD5601(dac) spi 3-wire

Сообщение jeck-wolf »

SPI программный
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

Re: AD5601(dac) spi 3-wire

Сообщение Леонид Иванович »

Не проверял, но примерно так:

Код: Выделить всё

;Загрузка 8-битного ЦАП, код ЦАП в регистре temp1

Wr_Dac:   mov  temp,temp1
                lsr    temp
                lsr    temp               ;temp = 0,0,D7,D6,D5,D4,D3,D2
                cbi    PORTB,SYNC
                rcall  Spi_Wr
                mov  temp,temp1
                swap temp
                lsl     temp
                lsl     temp              ;temp = D1,D0,0,0,0,0,0,0
                rcall Spi_Wr
                sbi   PORTB,SYNC
                ret
               
;Загрузка байта по SPI, код в регистре temp

Spi_Wr:	ldi	Cnt,8		;counter load
wd_bit:	sbi    PORTB,SCL
	        rol	temp
	        brcs	wd_1
wd_0:	cbi    PORTB,SDA
	        rjmp	wd_clk
wd_1:	sbi    PORTB,SDA
wd_clk:     cbi    PORTB,SCL
	        dec	Cnt
	        brne	wd_bit
	        ret
Совет! Никогда не качайте даташиты с левых сайтов, а только с сайта производителя! У Вас даташит PRELIMINARY, хоть уже есть rev. E.
Реклама
jeck-wolf
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Пн мар 14, 2011 14:47:23

Re: AD5601(dac) spi 3-wire

Сообщение jeck-wolf »

БОЛЬШОЕ СПАСИБО, ОЧЕНЬ ПОМОГ)
Реклама
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»