Guest izakom

Проблемы с подключение АЦП к контроллеру

12 posts in this topic

Guest izakom   
Guest izakom

Добрый день,

Никак не могу, подключить АЦП к микроконтроллеру. Будет здраво, если кто-нибудь сможет подсказать где моя ошибка или хотя бы где ее искать.

Я подключаю ADS1240 к arduino UNO. Описание АЦП слишком тяжелое, поэтому прикрепляю ссылку

http://www.ti.com/lit/ds/sbas173f/sbas173f.pdf
Также во вложении прикрепил 2 схемы подключения, которые побывал.
Контроллер общается с АЦП по SPI, где D10 -SS, D11 - MOSI, D12 - MISO, D13 - SCLK.

Сейчас моя задача, измерять напряжение на потенциометре с достаточной точностью. 
К сожалению внутренний АЦП arduino 10 разрядный, поэтому пытаюсь подключить внешний.

Также прикрепляю программу, при помощи которой пытаюсь снимать показания. Но к сожалению на контроллер приходит только "0".

Схема_2.pdf

Схема_1.pdf

Тестова программа.txt

Схема_2.pdf

Схема_1.pdf

Тестова программа.txt

Share this post


Link to post
Share on other sites
BARS_    996
1 час назад, Гость izakom сказал:

на контроллер приходит только "0"

А SPI вообще работает и если работает, то так, как описано в даташите на АЦП? Почитайте регистры, в которых заранее известно значение, например тот же FSR0 должен выдавать 59h

Share this post


Link to post
Share on other sites
izakom    0

Попробовал - без изменений.
Может я не правильно настроил SPI?
я настроил так: 

  • CPOL=0, CPHA=1

Чтение — на спаде, запись — на фронте.

  • Частота SPI 2 МГц.
  •  Порядок посылки битов: MSBFIRST — первым идёт старший бит посылки

Как можно убедиться, что проблема именно в  SPI, а не том как я подключил АЦП?
 

Share this post


Link to post
Share on other sites

Приглашаем на вебинар «Создание беспроводных устройств на системах-на-кристалле семейства SimpleLink компании TI»

Компания Компэл, совместно с Texas Instruments приглашают 26 июня принять участие в вебинаре, где инженер по применению беспроводных технологий компании TI расскажет, как на новых беспроводных системах можно реализовать несколько полезнейших в повседневной жизни функций для ваших устройств. С развитием элементной базы TI становится возможной реализация более удобных, функциональных и безопасных систем, недоступных ранее. Вебинар проводит инженер по применению беспроводных технологий в TI Мари Хернес(будет дублированный перевод).

Подробнее...

BARS_    996

Для начала ткнуться осциллом в SPI и посмотреть, работает ли он вообще. И насколько правильно. Может там SS поднимается после передачи каждого байта.

Share this post


Link to post
Share on other sites
izakom    0

К сожалению, до него доберусь только завтра (в лучшем случае).
Может можно как-то проверить  без него? 

Чтобы проверить вообще отсылает ли что-нибудь SPI, я соединил MISO и MOSI на контроллере.
При отправке 0x1A как и ожидалось пришло 26.

Пробовал менять время задержки м/у отправкой команды и ответом с АЦП - не дало результатов.
 

Share this post


Link to post
Share on other sites

Видео вебинара «Уникальный подход MORNSUN к разработке DC/DC-преобразователей. Что на выходе?»

На сайте КОМПЭЛ доступны материалы вебинара, посвященные последнему поколению DC/DC преобразователей с фиксированным входом R3 от MORNSUN. Вы можете посмотреть видеозапись, ознакомиться с презентацией и ответами на вопросы.

Подробнее...

BARS_    996

Линия CS правильно работает? Идеальный вариант - отправить в помойку ардуйяйские библиотеки вместе с IDE и написать код по человечески. Тогда будет понятно, в чем проблема.

Share this post


Link to post
Share on other sites

Вы тактируете SPI и сам АЦП одной частотой? А в даташите написано, что частота SPI должна быть меньше частоты АЦП в 4 раза (минимум).

Share this post


Link to post
Share on other sites
izakom    0

@Геннадий Спасибо, действительно не правильно понял как пользоваться микросхемой. Теперь тактовая частота АЦП, берется с кварцевого резонатора на 4.9152МГц. По схеме ниже, с конденсаторами 20пФ. 

Я наконец раздобыл цифровой анализатор, результаты прикрепляю.
Можете подсказать, правильно ли реализован SPI для данной микросхемы? Время м/у командой и ожидаемым ответом я пробовал разное и 50*Tosc и 50000*Tosc, результат тотже = 0000 0000.

И может ли быть ошибка в чем то еще? Или я всетаки испортил микросхему при монтаже? 

Screenshot_1.png

Screenshot_2.png

Edited by izakom

Share this post


Link to post
Share on other sites
izakom    0

 

//Пытаюсь считать значение регистра с адресом 0Сh

#include <SPI.h>
void setup() {
   Serial.begin(9600);  
// Управление ведомым устройством 10 pin  
  int SS = 10;            
  pinMode(SS, OUTPUT);
  digitalWrite(SS, HIGH);

// Настройка SPI Интерфейса
  SPI.begin();
  SPI.setBitOrder(MSBFIRST);
  SPI.setClockDivider(SPI_CLOCK_DIV32);
  SPI.setDataMode(SPI_MODE1);
  
}

void loop()
{
  
 
  digitalWrite(SS, LOW);                // Начало общения с АЦП

   SPI.transfer(0x1C);  // отправка команды 0001 1100
  SPI.transfer(0x01);  // отправка команды READ - 0000 0001
  delay(50*0.203);      // задержка 50 * Tosc
  SPI.transfer(0x00);
  SPI.transfer(0x00);
  SPI.transfer(0x00);
  SPI.transfer(0x00);
  SPI.transfer(0x00);
  SPI.transfer(0x00);

  digitalWrite(SS, HIGH);               // Конец общения с АЦП
     SPI.endTransaction();

   delay(25);
  }   
 

Edited by izakom

Share this post


Link to post
Share on other sites

Your content will need to be approved by a moderator

Guest
You are commenting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoticons maximum are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By Aven
      Продам остатки от разработки, в наличии 4 штуки.
      Описание:
      Контроллер - Atmega328 с загрузчиком Ардуино Нано
      USB порт в преобразователем CH340 для работы с контроллером + Jack 2.5 UART
      4 тактовые кнопки
      2 разъема для подключения аккумулятора
      2 разъема Vcc+GPIO+GND
      5-контактный разъем для шагового двигателя
      Контроллер заряда АКБ (сигнальные линии заведены на контроллер)
      Делитель для измерения заряда АКБ.
      Дисплей 0,96/1,3 дюйма, OLED
      Цена:
      С дисплеем 0,96 - 1000руб
      С дисплеем 1,3 - 1200руб.
      Отправка за ваш счет.

       
    • By Aven
      Разработка устройств на базе Ардуино любой сложности, написание прошивки, проектирование печатной платы, производство прототипов.
      Быстро и качественно разработаю ардуиноподобные устройства под ваши требования, возможна сборка макета или разработка полноценной печатной платы под ваши требования.
      Быстро и качественно, за адекватную цену.
      КОнтакты: ЛС или Rough_ne@mail.ru
      Примеры:
      SDR приемник для анализа сетевых наводок на связке Ардуино+Raspberry.

       
      Часы на ГРИ.  Разработка полностью с нуля, до того как в сети появилось что-то подобное.
      Bluetooth, RGB подсветка, игры, календарь, будильник:) Проектировал на подарок.


       
      Оружейный хронограф для пневматики. Инициативная работа, может когда-нибудь начну продавать:)
      OLED дисплей, контроль заряда, несколько режимов работы.


       
      Кормушка для животных с Wi-Fi.

       
      И много чего еще:
       

    • By StilFer
      Доброго времени суток! Столкнулся с задачей передачи данных через оптоволокно, пробовал использовать такую связку Arduino (ATSAMD21G18) -> Ethernet модуль на W5500 -> Медиаконвертер(на IC IP101GR). Все работает, но теперь хочу сделать все по-человечески, развести на одной плате и на выходе под оптику поставить либо SFP трансивер, либо 1x9. Понятно что на прямую SFP или 1x9 трансивер к ардуине не подключить, надо использовать, так сказать, посредника, стал курить даташиты на W5500 и на IC IP101GR, но возникла сложность с поиском литературы про связь интерфейсов MII/RMII с контроллером, связь с SFP либо с 1x9 модулем. Не до конца понял, но показалось что можно к W5500 вместо RJ45 коннектора подключить напрямую 1x9 трансивер. Может кто-то имеет опыт в разработках сетевого оборудования, подскажет литературу по этой тематике или даст мудрый совет, а может посоветует другие чипы? Буду искренне благодарен! 
    • By Alexandr Petrenko
      Нужна помощь, так случилось, что я никак не связан с радиотехникой и т.д, но мне нужно сделать перчатку (тема дипломной работы) по видео AlexGyver, которая по сути и есть стробоскопом на базе Arduino nano. И я её кое-как спаял и конечно же она не работает, причины искать нет смысла, потому что может быть всё что угодно. Подскажите мне как можно упростить это устройство чтобы я его смог сделать, что-то проще, желательно схему иначе я не справлюсь.
      Вот то видео:
      https://www.youtube.com/watch?v=rLpn_4ERJXQ