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

на исчезновение импульсов на DRDY влияют последние две строки инициализации.

      void initAD7714()
{         
      spiWrite( 0x24 );      /* set the channel AIN1-AIN2 and set the next operation as write to the filter high */
      spiWrite( 0x6F );      /* set Bipolar mode, 24 bits, boost off, all 4 MSBs of filterword to 1 */       
      spiWrite( 0x34 );      /* set the channel AIN1-AIN2 the next operation as a write to the filter low register channel AIN1/AIN2 */
      spiWrite( 0xA0 );      /* max filter word allowed for low part of the filterword */
      spiWrite( 0x14 );      /* set the channel AIN1-AIN2 the operation as a write to the mode register.*/
      spiWrite( 0x20 );      /* set gain to 1, burnout current off, no filter sync, and do a self calibration */                   
}

 

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

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


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

Кто знает об особенностях записи в эти регистры? Начал проверять записываю - читаю. Если записываю один регистр, то читаю только что записанное значение, и так каждый из регистров. Если пытаюсь записать два регистра последовательно, значение во втором регистре оказывается не то.

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


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

Привет, объясните несведущему.

Я выбрасываю один байт, и вывидете SPI SCK, далее осцилограф на SPI SS и вижу экспоненту. Но это не экспонента, а жуть длинный импульс на SS -> предствляю его осцилограмму также.
Программа

void main(void)
{
     spiInit();
     spiWrite( 0x24 ); //делаю сброс и жду на SPI  SCK и SPI SS при помощи тригера на осцилографе

     while (1)
    {
    }
}

Вот и скажите, плиз, откуда такая длительность на SPI SS ?

NewFile0.png

NewFile1.png

NewFile2.png

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


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

54 minutes ago, Zx80 said:

откуда такая длительность на SPI SS ?

Например, нижний транзистор отгорел у выхода.

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


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

Quote

Например, нижний транзистор отгорел у выхода.

у второго и третьего чипа тоже ? :)

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


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

8 minutes ago, Zx80 said:

у второго и третьего чипа тоже ? :)

А почему бы и нет? Можно и десять спалить при должном упорстве.

 

Или неправильно управляется.

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


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

4 часа назад, Zx80 сказал:

далее осцилограф на SPI SS

Я, например, ничего не понял. Это что за сигнал SPI SS? Где он у AD7714?

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


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

Quote

Я, например, ничего не понял. Это что за сигнал SPI SS? Где он у AD7714?

SPI SS формирует Атмега.

Дело было в

инициализировал
//      /* Set MOSI, SCK, SS as output */          
    DDRB = (1<<SPI_DDR_MOSI) | (1<<DDB4) | (1<<SPI_DDR_SCK);
    PORTB = (1<<SPI_PORT_MOSI) | (1<<PORTB4) | (1<<SPI_PORT_SCK);
а надо было
//      /* Set MOSI, SCK, SS as output */          
    DDRB = (1<<SPI_DDR_MOSI) | (1<<DDB4) | (1<<SPI_DDR_SCK);
    PORTB = (0<<SPI_PORT_MOSI) | (0<<PORTB4) | (0<<SPI_PORT_SCK);

в первом варианте формируется длинный импульс на SPI SS 100мс, за ним ничего не видно, ошибочно принимал этот импульс за разрешение чипа.

сейчас все видно, все 6 обращений к AD7714.

тестовый вариант для записи чтения трех регистров. 
void main(void)
{
// Declare your local variables here
unsigned char regValues[]={0, 0, 0};

initAD7714_DRDY();
initAD7714_Reset();

spiInit();

cs_Hight();
delay_ms(2);

spiWrite( 0x24 );
regValues[0] = spiWrite( 0xFF );

spiWrite( 0x34 );
regValues[1] = spiWrite( 0xFF );

spiWrite( 0x14 );
regValues[2] = spiWrite( 0xFF );

while (1)
    {   
        // Place your code here                         
    }
}

NewFile0.png.4955b9e14272ef1bfe4fc4594412cc59.png

Изменено пользователем Zx80
spiWrite(0xC0) на spiWrite(0xFF) была неточность

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


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

Записываю в регистр значение. Иногда читаю правильное иногда нет. Решил снять осцилограмму. Пишу в регистр фильтра число 0xBD. Читаю на единицу меньше, т.е. 0xBС.

Осцилограммы MOSI , MISO, SCK этой операции. NewFile1.png.c30aa22258b8cd2504b320fe52c81a04.pngNewFile2.png.340ea462eef37943be1c1ee4e06bd63e.pngNewFile3.png.7410c5cbab26285b709ca54bd1201caf.pngВидно что читаю я то что на выходе. Почему AD7714 могла не принять байт правильно ? Может у них разные режимы SPI ? Я не настолько курю SPI чтобы разобраться.

 

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


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

Привожу осцилограммы для записи значения 0x04, читаю 0x10

Опять же видно что на МОSI правильное значение, а возвращается мне другоеNewFile0.png.b681f372c38c81c3e32f1c8376bc72d1.pngNewFile1.png.5f9e18a5c91611ade333f29b3027231b.png

Что это может быть за проблема ?

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


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

Купите 8-канальный логический анализатор у китайцев или в ближайшем ларьке. Искать на али по ключевым словам "logic analyzer", "saleale". Стоит копейки, может писать сигнал часами, умеет расшифровывать протоколы и отмечает ошибки на диаграммах. Ошибку в своей посылке нашли бы за полчаса с перекуром. При его цене - это вещь, которая должна быть у каждого.

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


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

Это сигнал от AD7714 на MISO контроллера при попытке считать значение которое было записано как 0x0A. Кто может прокоментировать ?

NewFile0.png.631893981e3f378f00875433ddddc39d.png

Это сигнал от AD7714 на MISO контроллера при попытке считать значение которое было записано как 0xF2. Кто может прокоментировать ? Явно просматривается что то общее.NewFile0.png.467faebacb1c11f5a2a62961df019cac.pngNewFile1.png.c1c9bf40dd9d24a2bfdd48295d2c9429.png

и что это за беда ума не приложу. Помогайте.

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


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

Запустил работает, проблема была что чип хотел режим spi 3.

 

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

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


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

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

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

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

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

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

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

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

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

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