Zx80 0 January 26, 2022 Posted January 26, 2022 (edited) · Report post на исчезновение импульсов на 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 January 26, 2022 by Zx80 Quote Share this post Link to post Share on other sites More sharing options...
Zx80 0 January 28, 2022 Posted January 28, 2022 · Report post Кто знает об особенностях записи в эти регистры? Начал проверять записываю - читаю. Если записываю один регистр, то читаю только что записанное значение, и так каждый из регистров. Если пытаюсь записать два регистра последовательно, значение во втором регистре оказывается не то. Quote Share this post Link to post Share on other sites More sharing options...
Zx80 0 February 2, 2022 Posted February 2, 2022 · Report post Привет, объясните несведущему. Я выбрасываю один байт, и вывидете SPI SCK, далее осцилограф на SPI SS и вижу экспоненту. Но это не экспонента, а жуть длинный импульс на SS -> предствляю его осцилограмму также. Программа void main(void) { spiInit(); spiWrite( 0x24 ); //делаю сброс и жду на SPI SCK и SPI SS при помощи тригера на осцилографе while (1) { } } Вот и скажите, плиз, откуда такая длительность на SPI SS ? Quote Share this post Link to post Share on other sites More sharing options...
aaarrr 29 February 2, 2022 Posted February 2, 2022 · Report post 54 minutes ago, Zx80 said: откуда такая длительность на SPI SS ? Например, нижний транзистор отгорел у выхода. Quote Share this post Link to post Share on other sites More sharing options...
Zx80 0 February 2, 2022 Posted February 2, 2022 · Report post Quote Например, нижний транзистор отгорел у выхода. у второго и третьего чипа тоже ? :) Quote Share this post Link to post Share on other sites More sharing options...
aaarrr 29 February 2, 2022 Posted February 2, 2022 · Report post 8 minutes ago, Zx80 said: у второго и третьего чипа тоже ? :) А почему бы и нет? Можно и десять спалить при должном упорстве. Или неправильно управляется. Quote Share this post Link to post Share on other sites More sharing options...
Herz 3 February 2, 2022 Posted February 2, 2022 · Report post 4 часа назад, Zx80 сказал: далее осцилограф на SPI SS Я, например, ничего не понял. Это что за сигнал SPI SS? Где он у AD7714? Quote Share this post Link to post Share on other sites More sharing options...
Zx80 0 February 2, 2022 Posted February 2, 2022 (edited) · Report post 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 } } Edited February 3, 2022 by Zx80 spiWrite(0xC0) на spiWrite(0xFF) была неточность Quote Share this post Link to post Share on other sites More sharing options...
Zx80 0 February 3, 2022 Posted February 3, 2022 · Report post Записываю в регистр значение. Иногда читаю правильное иногда нет. Решил снять осцилограмму. Пишу в регистр фильтра число 0xBD. Читаю на единицу меньше, т.е. 0xBС. Осцилограммы MOSI , MISO, SCK этой операции. Видно что читаю я то что на выходе. Почему AD7714 могла не принять байт правильно ? Может у них разные режимы SPI ? Я не настолько курю SPI чтобы разобраться. Quote Share this post Link to post Share on other sites More sharing options...
Zx80 0 February 3, 2022 Posted February 3, 2022 · Report post Привожу осцилограммы для записи значения 0x04, читаю 0x10 Опять же видно что на МОSI правильное значение, а возвращается мне другое Что это может быть за проблема ? Quote Share this post Link to post Share on other sites More sharing options...
Сергей Борщ 60 February 3, 2022 Posted February 3, 2022 · Report post Купите 8-канальный логический анализатор у китайцев или в ближайшем ларьке. Искать на али по ключевым словам "logic analyzer", "saleale". Стоит копейки, может писать сигнал часами, умеет расшифровывать протоколы и отмечает ошибки на диаграммах. Ошибку в своей посылке нашли бы за полчаса с перекуром. При его цене - это вещь, которая должна быть у каждого. Quote Share this post Link to post Share on other sites More sharing options...
Zx80 0 February 3, 2022 Posted February 3, 2022 · Report post Это сигнал от AD7714 на MISO контроллера при попытке считать значение которое было записано как 0x0A. Кто может прокоментировать ? Это сигнал от AD7714 на MISO контроллера при попытке считать значение которое было записано как 0xF2. Кто может прокоментировать ? Явно просматривается что то общее. и что это за беда ума не приложу. Помогайте. Quote Share this post Link to post Share on other sites More sharing options...
Zx80 0 February 7, 2022 Posted February 7, 2022 (edited) · Report post Запустил работает, проблема была что чип хотел режим spi 3. Edited February 8, 2022 by Zx80 Quote Share this post Link to post Share on other sites More sharing options...