реклама на сайте
подробности

 
 
> ATmega8A + ADS1244, Не могу подключить АЦП
pavel-pervomaysk
сообщение Oct 3 2011, 10:57
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 253
Регистрация: 28-12-07
Из: Украина г. Первомайск
Пользователь №: 33 716



Всем привет.
Не получается правильно состыковать эти 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 // выход



Это код для чтения АЦП.
Читает мусор. Возможно из-за того что неверно входы АЦП подключил...

Прикрепляю схему, сделал на отдельной платке. Частота опорника 4,3320 МГц, 2,4576 МГц у меня пока нет...
Как подключить ноги АЦП AINN AINP чтобы мерить постоянное напряжение ?




Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ILYAUL
сообщение Oct 3 2011, 21:34
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



1. Чётко посадите оба входа на GND
2. Частота на SCLK должна представлят ЧЁТКИЙ меандр. т.к правильные данные появляются только через 50 нс после положительного фронта. Поэтому Вам надо строго придерживаться меандра.
3. После подачи положительного фронта 24 импульса - оставьте его в этом состоянии и посмотрите данные. Должны быть 000.
4. Подайте Ваше питание 5В на положительный вход
5. Сбросьте SCLK в ноль - дождитесь DOUT прочитайте - на "выходе" должно быть FFF

NOP - добавьте или удалите для получения меандра, это зависит от времени которое затратит МК на команды. Например SBIS SBIC -1 или 3 такта
, CLR один такт. RET - естесвенно не считать
CODE
ads1244:                 //
     clr    data              // очищаем регистр перед приемом байта
     ldi    loop,8            // bit counter
     read_ads_c:              // цикл
     sbi    ads_port,ads_clk  // CLK -> 1 импульс
     nop
     nop
     nop
     nop ;;; Где здесь должны появиться данные
     nop
     nop
     nop
     nop
     cbi    ads_port,ads_clk  // CLK -> 0
     sbic   ads_pin,ads_di    // Пропускаем следующую команду, если на входе Di низкий уровень
     inc    data              // data = + 1
     lsl    data              // data << 1  
     dec    loop              // bit counter - 1
    brne   read_ads_c        // если счетчик цикла > 0, переходим к началу цикла
    ret                      // выход


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Павлик   ATmega8A + ADS1244   Oct 3 2011, 10:57
- - ILYAUL   QUOTE (Павлик @ Oct 3 2011, 14:57) Как по...   Oct 3 2011, 14:21
- - Павлик   Посадил AINN на землю , AINP оставил подтяжку на к...   Oct 3 2011, 14:43
|- - Палыч   Цитата(Павлик @ Oct 3 2011, 18:43) AINP о...   Oct 3 2011, 16:07
|- - ILYAUL   QUOTE (Палыч @ Oct 3 2011, 20:07) Для это...   Oct 3 2011, 16:23
- - Павлик   Читаю как раз 3 байта верно, а не 1 байт. Ошибка ...   Oct 3 2011, 18:51
- - Павлик   2. Полный бред, такое первый раз слышу . Пробл...   Oct 4 2011, 08:02
|- - ILYAUL   QUOTE (Павлик @ Oct 4 2011, 12:02) Судя п...   Oct 4 2011, 09:16
- - Павлик   t5 = 50ns, но зачем заморачиваться, если четкий вы...   Oct 4 2011, 14:03
|- - ILYAUL   QUOTE (Павлик @ Oct 4 2011, 18:03) t5 = 5...   Oct 4 2011, 14:13
- - Павлик   При моей тактовой менее 60ns не получится никак. ...   Oct 4 2011, 15:08
|- - ILYAUL   QUOTE (Павлик @ Oct 4 2011, 19:08) При мо...   Oct 4 2011, 15:39
- - Павлик   Там такого не написано, так что не будем об этом. ...   Oct 5 2011, 05:55
|- - ILYAUL   QUOTE (Павлик @ Oct 5 2011, 09:55) Там та...   Oct 5 2011, 07:02
|- - 777777   Цитата(Павлик @ Oct 5 2011, 09:55) В итог...   Oct 5 2011, 09:28
- - Павлик   Попробую позже, кварц на 2,4576 стоит зараза 1,25...   Oct 5 2011, 07:22
- - Павлик   NOTES: (1) Load on DRDY/DOUT = 20pF || 100kΩ....   Oct 5 2011, 20:44


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 21:26
Рейтинг@Mail.ru


Страница сгенерированна за 0.01413 секунд с 7
ELECTRONIX ©2004-2016