Например TDA7294

Форум РадиоКот • Просмотр темы - [atmega + tlv1570] Помогите подключить
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Вс авг 03, 2025 01:22:30

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 2 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: [atmega + tlv1570] Помогите подключить
СообщениеДобавлено: Вс май 10, 2009 18:27:19 
Первый раз сказал Мяу!

Зарегистрирован: Ср апр 16, 2008 21:13:04
Сообщений: 32
Рейтинг сообщения: 0
Пытаюсь подключить к ATmega16 и заставить работать внешнее АЦП TLV1570 - появились некоторые затруднения, прошу помочь разобраться

Интерфейс соединения с микроконтроллером - SPI вот с этим я и борюсь.

Исходная информация:

1. Схема подключения:

В даташите структурно это выглядит так:
Изображение

На деле так:
Изображение

2. Алгоритм работы и прошивка для МК


Работает данное АЦП следующим образом:
а. Передаем 16 конфигурационных бит с настройками.
б. Передаем 16 конфигурационных бит с настройками и читаем 10 бит результата (то что сконфигурировали в пункте а.)
... и т.д.

Т.е на каждую выборку, я должен отсылать конфигурационную последовательность, и получать свой результат.

* Для оцифровки сигнала на канале 0, с внутренней опорой в 2.3В, мне необходима следующая комбинация битов:
[00000000 01000000] или 0x40h

1. Определения
Код:
#define ADC_SCLK  PORTA.0
#define ADC_SDIN  PORTA.1
#define ADC_SDOUT PORTA.2
#define ADC_CS    PORTA.3


2. Функция передачи 16 бит на АЦП
Код:
 void spi_send (void) {
  char  ctr = 8;
 
  ADC_CS = 1;
  ADC_SCLK = 0;
  ADC_CS = 0;
 
  while (ctr) {
        ADC_SDIN = adc_conf_hi & 0b10000000;
        ADC_SCLK = 1;
        adc_conf_hi <<= 1;
        ADC_SCLK = 0;
        ctr--;
test_sdout = test_sdout + ADC_SDOUT;     
  }
 
  ctr = 8;
 
  while (ctr) {
        ADC_SDIN = adc_conf_low & 0b10000000;
        ADC_SCLK = 1;
        adc_conf_low <<= 1;
        ADC_SCLK = 0;
        ctr--; 
  }
 
  ADC_CS = 1;
  }
 }


3. Основная процедура
Код:
while (1)
      {
      adc_conf_hi = 0x00;
      adc_conf_low = 0x40;
      spi_send(); 
      };


* Состояние ноги ADC_SDOUT (т.е. там где должны появлятся оцифрованные данные) - контролирую по УАРТУ (код посылки состояния ноги в ПК не стал приводить, дабы не загромождать(putchar(ADC_SDOUT);))

3. Временные диаграммы

Проэмулировал работу прошивки в VMLAB - вроде всё как в даташите:

Диаграмма из ДШ:
Изображение

Диаграмма из VMLAB (передача [00000000 01000000]):
Изображение

* насколько я понял чтение данных происходит по спаду.

Перепробывал уже почти всё, на выходе (ADC_SDOUT) всегда 0 оцифрованных данных. Может кто советом поможет?


Вложения:
Комментарий к файлу: Тайминги в эмуляторе
vmlab_diagram.jpg [13.92 KiB]
Скачиваний: 404
Комментарий к файлу: Тайминги по даташиту
tlv_to_mc_diagram.gif [13.77 KiB]
Скачиваний: 270
Комментарий к файлу: Схема
tlv_to_mc_scheme.gif [8.31 KiB]
Скачиваний: 393
Комментарий к файлу: Схема
tlv_to_mc.gif [5.25 KiB]
Скачиваний: 366
Вернуться наверх
 
Не в сети
 Заголовок сообщения:
СообщениеДобавлено: Вс май 10, 2009 18:28:03 
Первый раз сказал Мяу!

Зарегистрирован: Ср апр 16, 2008 21:13:04
Сообщений: 32
Рейтинг сообщения: 0
Признаки жизни
При передачи 16 бит конфига: [00000000 01000000] - я говорю АЦП что бы использовался канал #0. Тогда напряжение, подаваемое на CH0 отобразится на ноге AIN - т.е на аналоговом входе. Путем изменения номеров каналов, и подачи постоянного напряжения туда - убедился в том что АЦП распознает конфигурационные 16 бит, и правильно выбирает канал для оцифровки. => оно живое, оно работает, просто вредничает и не хочет оцифровывать мой сигнал


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 2 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y