Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

AD7606 Evaluation Board
http://mcu-bg.com/mcu_site/viewtopic.php?f=7&t=19421
Страница 1 от 1

Автор:  VPavlov [ Пет Фев 14, 2025 7:05 pm ]
Заглавие:  AD7606 Evaluation Board

Здрасти пичове,
Опитвам се да подкарам това "животно" с Nucleo F401RE. Пуснах го на софтуерен режим, защото нямам много опит със запояването и не ми се ще да я скапвам още. Показвам какво съм направил. Ако го правя без прекъсвания чете някакви стойностти. Проблемът ми е че FSTDATA си стои винаги високо и не генерира прекъсвания на PB3. Всякакви съвети са добре дошли, сигурно нещо пропускам. Или нещо правя грешно, обаче не намирам какво м*@§* му и... :)
Благодаря предварително!

Пускам ресет за 3000 ns:

Код:
void A7606Reset (uint64_t RSTtime){


     //Нулирам Порт B пин 6
   GPIOB->BSRR = PIN6ReSet;

     //Изчаквам малко за да се види в анализатора
   DelayMicroseconds(500);

     //Активирам Порт B пин 6
    GPIOB->BSRR = PIN6Set;

   //Измервам необходимото време
    DelayNanoseconds(RSTtime);

     //Отново нулирам Порт B пин 6
   GPIOB->BSRR = PIN6ReSet;

   //Изчаквам 500 микросекунди, за стабилизация след Ресет /253 по документация
   DelayMicroseconds(500);


}


После изпращам CONVST сигнал:
Код:
//Задавам PA11 активно за 40 ns.
/*Бота ми казваше че може би не му оставям достатъчно време,
така че в последствие го промених на 1 микросекунда*/

void CONVST_Set (void){

   GPIOA->BSRR = (1U<<27); //1 RESET

   DelayMicroseconds(1);

    GPIOA->BSRR = (1U<<11); //1 SET

    my_ad7606b.Busy = 1;

}



AD7606 вдига BUSY. Генерирам прекъсване при падането на BUSY, както и вдигането на FRSTDATA.

Цитат:
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {

if (GPIO_Pin == GPIO_PIN_8) // BUSY сигнал
{
my_ad7606b.Busy = 0; // ADC приключва с преобразуването
}
if (GPIO_Pin == GPIO_PIN_3) // FSTDATA сигнал
{
my_ad7606b.Fstdata = 1; // Първите данни са изпратени
}
}


Горните елементи са от един структ който инициализирам някъде в майн:
Код:
void AD7606_flag_init (void) {
     //Инициализация на структа
     ad7606b my_ad7606b = {
         .adc_data = {0},   
         .Busy = 1,         
         .Fstdata = 0       
     };
}




Активирам CS (правя го ниско):
Код:
void CS_set (void) {

   GPIOA->BSRR = PIN10ReSet;

}


Чета:
Код:
HAL_SPI_Receive_DMA(&hspi2, (uint8_t*)my_ad7606b.adc_data, 16);


Деактивирам CS:
Код:
void CS_reset (void) {

   GPIOA->BSRR = PIN10Set;
}


Прикачени файлове:
Pitane.jpg
Pitane.jpg [ 206.53 KiB | Прегледано 3712 пъти ]

Автор:  TheWizard [ Пет Фев 14, 2025 8:01 pm ]
Заглавие:  Re: AD7606 Evaluation Board

погледни разни готови кодове
https://github.com/MrWangShuai/stm32-AD ... 6/ad7606.c
https://github.com/leollo98/AD7606/blob/main/AD7606.cpp

Автор:  VPavlov [ Пет Фев 14, 2025 8:08 pm ]
Заглавие:  Re: AD7606 Evaluation Board

TheWizard написа:


Благодаря, ще разгледам!

Автор:  ToHu [ Пет Фев 14, 2025 8:16 pm ]
Заглавие:  Re: AD7606 Evaluation Board

Абе готови кодове добре, но това е чарк който ако не разбираш как работи е кажи речи безполезен. Вземи му прочети добре менуала, и предполагам всичко ще се изясни. То не, че със всяко АДЦ не е така, но за този тип чипове в още по-евтино, иначе това което получаваш може да не е това което искаш да измериш.

Автор:  VPavlov [ Пет Фев 14, 2025 10:16 pm ]
Заглавие:  Re: AD7606 Evaluation Board

ToHu написа:
Абе готови кодове добре, но това е чарк който ако не разбираш как работи е кажи речи безполезен. Вземи му прочети добре менуала, и предполагам всичко ще се изясни. То не, че със всяко АДЦ не е така, но за този тип чипове в още по-евтино, иначе това което получаваш може да не е това което искаш да измериш.


Уж чета, иначе въобще нямаше да се кахъря за FSTDATA, както колегите писали горните драйвери. Все пак нещо пропускам, може би първо трябва да се изпратят dummy данни. Може би в софтуерен режим трябва да се пусне допълнителна команда за четене. Ще взема да пробвам да разчета\пиша в някой регистър първо.

Автор:  VPavlov [ Пет Фев 14, 2025 11:55 pm ]
Заглавие:  Re: AD7606 Evaluation Board

Изглежда че не съм разбрал правилно. Падането на FSTDATA трябва да се случи в процесът на четене, а не да бъде условие за такова. Ще тествам утре.

Автор:  VPavlov [ Съб Фев 15, 2025 4:43 pm ]
Заглавие:  Re: AD7606 Evaluation Board

Изглежда че тъкмо там се "крие заека". FSTDATA започна да дава прекъсвания щом започне четенето.

Автор:  VPavlov [ Сря Фев 19, 2025 8:11 pm ]
Заглавие:  Re: AD7606 Evaluation Board

Здравейте,

Успях да подкарам четене на ацп-то + четене и писане в регистрите (добре че беше Бота, пак се бях омотал). Още не съм направил точен план за настройката на всички регистри, но днес ще проучвам.

Същевременно е време да подготвя малко апаратна част, за да синхронизирам забавянето в доставката с работата по настройването на борда. Имам една неяснота – в Bill of Materials виждам, че бордът има конектори Phoenix Contact 1727078 (3.81 mm). Не намирам мъжки конектори за това чудо, с изключение на едни, които били предназначени само за СА (1803332 compatible male header 3.81).
Другото нещо е следното:
Според вас да купувам ли платка USB модул, или има шанс да стане с UART на по-високи скорости. Всъщност, вече успях да го подкарам на около 1 MHz, така че 5000 проби в секунда изглеждат напълно постижими. От друга страна е малко на границата и прави много грешки. Ще трябва да се добавят битове за проверка, което ще забави нещата.

Какво е вашето мнение?
Благодаря!

Автор:  itso.t [ Съб Фев 22, 2025 11:46 am ]
Заглавие:  Re: AD7606 Evaluation Board

VPavlov написа:
...Имам една неяснота – в Bill of Materials виждам, че бордът има конектори Phoenix Contact 1727078 (3.81 mm). Не намирам мъжки конектори за това чудо, с изключение на едни, които били предназначени само за СА (1803332 compatible male header 3.81)...

Това е винтова клема, и за нея няма насрещен конектор. Предвидена е за директно свързване на проводник или проводник с "гилза".
Гледай на тая клема като на лустер-клема изглеждаща по друг начин. :mrgreen:

Автор:  VPavlov [ Съб Фев 22, 2025 12:55 pm ]
Заглавие:  Re: AD7606 Evaluation Board

itso.t написа:
VPavlov написа:
...Имам една неяснота – в Bill of Materials виждам, че бордът има конектори Phoenix Contact 1727078 (3.81 mm). Не намирам мъжки конектори за това чудо, с изключение на едни, които били предназначени само за СА (1803332 compatible male header 3.81)...

Това е винтова клема, и за нея няма насрещен конектор. Предвидена е за директно свързване на проводник или проводник с "гилза".
Гледай на тая клема като на лустер-клема изглеждаща по друг начин. :mrgreen:


Пейстнъл съм грешен номер: Phoenix Contact 1803332 (3.81 mm).

https://www.phoenixcontact.com/en-pc/pr ... 81-1803332

Edit: всъщност сега видях на страницата им че има насрещни конекори. Май намерих подходящо в страницата на Фарнел: https://bg.farnell.com/phoenix-contact/ ... dp/3705134

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/