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

Не могу запустить ацп AD7706

Доброе время суток, уважаемые форумчане! Может кто может помочь с ацп AD7706. Подключён к pic18f4520 по spi, где din и dout соединены между собой. Код на ассемблере. Вроде всё делал по даташит, но на drdy не появляется логический 0.

Movlw 0x20

Movwf com_reg Bcf cs

Movlw 0x08

Movwf loop

Mosi1 Bcf mosi Rlcf com_reg

Btfsc status, 0

Bsf mosi

Bsf sck

Bcf sck

Decfsz loop

Goto mosi  

Movlw 0x0c

Movwf cl_reg Movlw 0x08

Movwf loop

Mosi1 Bcf mosi Rlcf cl_reg

Btfsc status, 0

Bsf mosi

Bsf sck

Bcf sck

Decfsz loop

Goto mosi1   Movlw 0x10

Movwf com_reg Movlw 0x08

Movwf loop

Mosi2 Bcf mosi Rlcf com_reg

Btfsc status, 0

Bsf mosi

Bcf sck

Decfsz loop

Goto mosi2   Movlw 0x40

Movwf set_reg Movlw 0x08

Movef loop

Mosi3 Bcf mosi Rlcf set_reg

Btfsc status, 0

Bsf mosi

Bsf sck

Bcf sck

Decfsz loop

Goto mosi3

Bsf cs  

DRDY Btfsc drdy Goto drdy

И дальше тишина. 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, и будет тишина пока не будут хотя-бы расставлены метки,

и Ваш вопрос не будет разбит на две части

1. Вопросы по программированию PIC на ASM / SPI

и основам использования макросов в ASM

2. Описание на читабельном "псевдо-коде" алгоритма обмена с ADC AD7706

- установить CS

- передать настройку COM-регистра AD  == 0xYY

- сбросить CS

итд

Оптимально - привести ссылку на даташит 7706.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я делал так:

1. Сброс ss

2. Отправляю данные на коммутационнвй регистр с последующей записью в clock register (20hex)

3. Отправляю данные в clock register (0c hex) 

4. Подъём ss

5. Сброс ss

6. Отправляю данные на коммутационнвй регистр с последующей записью в setup register (10hex)

7. Отправляю данные в setup register (40 hex) 

8. Подъём ss

9. Запрос drdy

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, Hailmary сказал:

4. Подъём ss

5. Сброс ss

Это где оно так? Сигнал CS вообще не обязателен, при условии, что в паспорте SCLK требуются отрицательные, у Вас не так, и начальное состояние неизвестно.

Соединить DIN и DOUT можно, но тогда у PIC вывод должен быть с открытым стоком, управляться битом TRIS.

И что с метками? Такое сказать был обязан компилятор.

Изменено пользователем Plain

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, Hailmary сказал:

3. Отправляю данные в clock register (0c hex) 

4. Подъём ss

Отправлять - отправляете, а завершения транзакции на шине - дожидаетесь? До поднятия SS.

Логическим анализатором смотрели - что на шине творится?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 часа назад, Plain сказал:

 

 

 

 

3 часа назад, Plain сказал:
🙂

Простите мою необразованность, про какие метки Вы говорите?span виджет

Изменено пользователем Hailmary

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

24 минуты назад, Plain сказал:

Про эти метки я в курсе, только причём здесь они? 

CS в этом приборе обязателен, не зря же эти ножки МК и ацп соединены. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

18 минут назад, Hailmary сказал:

причём здесь они?

Их три, а цикла четыре.

20 минут назад, Hailmary сказал:

эти ножки МК и ацп соединены

А на Рис.22 и Рис.23 паспорта не так, CS постоянно на общем проводе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

37 минут назад, Plain сказал:

А на Рис.22 и Рис.23 паспорта не так, CS постоянно на общем проводе.

Прибор расключен согласно рис. 20, хотя там тоже CS не участвует, на землю идёт. И зачем  тогда его на ножку МК посадили? Вы думаете нужно попробовать без CS? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

18 минут назад, Plain сказал:

Да не, я советую всё-таки пересчитать метки.

С метками всё норм: mosi, mosi1, mosi1, mosi3 - 4 метки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вам говорили про метки циклов, а также про полярность SCLK.

Изменено пользователем Plain

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

21 час назад, Hailmary сказал:

DRDY Btfsc drdy Goto drdy

И дальше тишина.

Попробуйте отключить WDT  в конфигурации.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

11 минут назад, Plain сказал:

Вам говорили про метки циклов, а также про полярность SCLK.

 

Либо мы с Вами говорим о разных метка, либо об одних, но разными словами🙂 По поводу полярность SCLK, Вы имеете ввиду когда частота меняется с 0 на 1 или с 1 на 0?

9 минут назад, quark сказал:

Попробуйте отключить WDT  в конфигурации.

 

Он отключён 

Изменено пользователем Hailmary

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...