Halfback 0 12 января Опубликовано 12 января · Жалоба Всем доброго времени суток! Ситуация такая: подаю питание на АЦП, выдаю софтовый сброс с чипселектом 32 единицы, читаю ID - всё нормально, возвращает 0x4A (с маской 0xF интересно что это именно А) а далее всё, кранты. Допустим читаю это же регистр или другие регистры - возвращает в основном нули. Если перед каждым чтением регистра выдавать софтовый сброс то всё хорошо, все регистры по умолчанию читаются в соответствии с даташитом. Вопрос - что я не так делаю? Т.е. вот так работает, rrr = 0x4A: volatile unsigned short rrr; AD779X_Reset(); HAL_Delay(1); rrr=AD779X_HWDetect(); AD779X_Reset(); HAL_Delay(1); rrr=AD779X_HWDetect(); вот так не работает volatile unsigned short rrr; rrr=AD779X_HWDetect(); HAL_Delay(1); rrr=AD779X_HWDetect(); unsigned char AD779X_HWDetect() { unsigned char result; ADCDevice.CSControl(cssEnable); ADCDevice.TxByte(AD779X_RDR_ID); /* send cmd: read ID register */ m_adc_model = ADCDevice.RxByte(); /* get ID */ ADCDevice.CSControl(cssDisable); return (m_adc_model); } ВТорой день туплю, не понимаю почему так происходит. Что АЦП не нравиться? Почему сброса требует? На осциллографе вроде всё нормально. Когда не работает, SDO АЦП действительно не отвечает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 226 13 января Опубликовано 13 января · Жалоба Вопрос не про ИС, а фактически про то, чего тот индиец насочинял в той библиотеке, и как минимум для другого раздела форума. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Halfback 0 13 января Опубликовано 13 января · Жалоба В 13.01.2024 в 05:39, Plain сказал: Вопрос не про ИС, а фактически про то, чего тот индиец насочинял в той библиотеке, и как минимум для другого раздела форума. Изначально либу на гитхабе писал не индус, я её во многом переработал. Если топик надо перенести в другое место - я не против. Просто в этом же разделе было обсуждение АЦП 7792 но на дркгкю тему, вот и решил разместить тут же. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 226 13 января Опубликовано 13 января · Жалоба В этом разделе показывают осциллограммы и т.п. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Halfback 0 15 января Опубликовано 15 января (изменено) · Жалоба В 13.01.2024 в 11:10, Plain сказал: В этом разделе показывают осциллограммы и т.п. Хорошо. ВОт осциллограммы SPI Соответствуют коду rrr=AD779X_HWDetect(); rrr=AD779X_HWDetect(); Другими словами первая строчка работает, ответ есть. Вторая не работает, ответ всегда 0. Вот это осциллорамма SCK и SDO Вот это осциллорамма SCK и CS Вот это более подробная осциллорамма SCK и SDO когда данные с АЦП выплевываются. ВОт осциллограммы SPI Соответствуют коду rrr=AD779X_HWDetect(); AD779X_Reset(); rrr=AD779X_HWDetect(); Первая и третья строчка работает если между ними ставить сброс. Осциллорамма SCK и SDO Осциллорамма SCK и CS Изменено 15 января пользователем Halfback Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Halfback 0 15 января Опубликовано 15 января · Жалоба AD779X_Reset(); -> это выплевывание из МК в АЦП 4 раза 0xFF AD779X_HWDetect(); -> это выплевывание из МК в АЦП 0x60 и потом 0x00, где АЦП должен выплюнуть байт с идентификатором. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
stells 12 15 января Опубликовано 15 января · Жалоба В 12.01.2024 в 20:23, Halfback сказал: Второй день туплю... Это нормально. Я неделю тупил, пока не понял, что у меня не тот тип SPI задан (чтение/запись по фронту/срезу SCLK) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Halfback 0 15 января Опубликовано 15 января · Жалоба В 15.01.2024 в 12:02, stells сказал: Это нормально. Я неделю тупил, пока не понял, что у меня не тот тип SPI задан (чтение/запись по фронту/срезу SCLK) Вот так спасибо. Привел CPHA (2 EDGE) и CPOL (High) в соответствие и всё заработало как надо. Ура! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться