Jump to content
    

Не получается нормально прочитать регистры АЦП AD7792

Всем доброго времени суток!

Ситуация такая: подаю питание на АЦП, выдаю софтовый сброс с чипселектом 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 АЦП действительно не отвечает.

Share this post


Link to post
Share on other sites

Вопрос не про ИС, а фактически про то, чего тот индиец насочинял в той библиотеке, и как минимум для другого раздела форума.

Share this post


Link to post
Share on other sites

В 13.01.2024 в 05:39, Plain сказал:

Вопрос не про ИС, а фактически про то, чего тот индиец насочинял в той библиотеке, и как минимум для другого раздела форума.

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

Share this post


Link to post
Share on other sites

В этом разделе показывают осциллограммы и т.п.

Share this post


Link to post
Share on other sites

В 13.01.2024 в 11:10, Plain сказал:

В этом разделе показывают осциллограммы и т.п.

Хорошо. ВОт осциллограммы SPI

Соответствуют коду 

rrr=AD779X_HWDetect();   
rrr=AD779X_HWDetect();

Другими словами первая строчка работает, ответ есть. Вторая не работает, ответ всегда 0.

Вот это осциллорамма SCK и SDO

photo_2024-01-15_11-31-38(2).thumb.jpg.30c8290d58fb557801fc1439902f048b.jpg

Вот это осциллорамма SCK и CS

photo_2024-01-15_11-31-38.thumb.jpg.3f24ebd2f2e9974212128494443fd919.jpg

Вот это более подробная осциллорамма SCK и SDO когда данные с АЦП выплевываются.

photo_2024-01-15_11-31-38(3).thumb.jpg.a0694992f3c55cb628592df02f814348.jpg

 

ВОт осциллограммы SPI

Соответствуют коду 

rrr=AD779X_HWDetect();  
AD779X_Reset(); 
rrr=AD779X_HWDetect();

Первая и третья строчка работает если между ними ставить сброс.

Осциллорамма SCK и SDO

photo_2024-01-15_11-42-55.thumb.jpg.6adc43311be3b2a17dd07e4b128e8991.jpg

Осциллорамма SCK и CS

photo_2024-01-15_11-42-46.thumb.jpg.de9e7866e406a3a4a35da3649b51dee6.jpg

Edited by Halfback

Share this post


Link to post
Share on other sites

AD779X_Reset(); -> это выплевывание из МК в АЦП 4 раза 0xFF

AD779X_HWDetect(); -> это выплевывание из МК в АЦП 0x60 и потом 0x00, где АЦП должен выплюнуть байт с идентификатором. 

Share this post


Link to post
Share on other sites

В 12.01.2024 в 20:23, Halfback сказал:

Второй день туплю...

Это нормально. Я неделю тупил, пока не понял, что у меня не тот тип SPI задан (чтение/запись по фронту/срезу SCLK)

Share this post


Link to post
Share on other sites

В 15.01.2024 в 12:02, stells сказал:

Это нормально. Я неделю тупил, пока не понял, что у меня не тот тип SPI задан (чтение/запись по фронту/срезу SCLK)

Вот так спасибо. Привел CPHA (2 EDGE) и CPOL (High) в соответствие и всё заработало как надо. Ура!

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...