Jump to content
    

Работа с AD7714

на исчезновение импульсов на 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 */                   
}

 

Edited by Zx80

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Я выбрасываю один байт, и вывидете 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

Share this post


Link to post
Share on other sites

54 minutes ago, Zx80 said:

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

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

Share this post


Link to post
Share on other sites

Quote

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

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

Share this post


Link to post
Share on other sites

8 minutes ago, Zx80 said:

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

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

 

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

Edited by Zx80
spiWrite(0xC0) на spiWrite(0xFF) была неточность

Share this post


Link to post
Share on other sites

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

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

 

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

NewFile0.png.631893981e3f378f00875433ddddc39d.png

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

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

Share this post


Link to post
Share on other sites

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

 

Edited by Zx80

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji 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.

×
×
  • Create New...