Отговори на тема  [ 10 мнения ] 
AD7606 Evaluation Board 
Автор Съобщение
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Съб Апр 01, 2023 9:59 am
Мнения: 302
Мнение 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 | Прегледано 3711 пъти ]
Пет Фев 14, 2025 7:05 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение Re: AD7606 Evaluation Board
погледни разни готови кодове
https://github.com/MrWangShuai/stm32-AD ... 6/ad7606.c
https://github.com/leollo98/AD7606/blob/main/AD7606.cpp

_________________
main[-1u]={1};


Пет Фев 14, 2025 8:01 pm
Профил ICQ
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Съб Апр 01, 2023 9:59 am
Мнения: 302
Мнение Re: AD7606 Evaluation Board
TheWizard написа:


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


Пет Фев 14, 2025 8:08 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30684
Местоположение: София
Мнение Re: AD7606 Evaluation Board
Абе готови кодове добре, но това е чарк който ако не разбираш как работи е кажи речи безполезен. Вземи му прочети добре менуала, и предполагам всичко ще се изясни. То не, че със всяко АДЦ не е така, но за този тип чипове в още по-евтино, иначе това което получаваш може да не е това което искаш да измериш.


Пет Фев 14, 2025 8:16 pm
Профил
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Съб Апр 01, 2023 9:59 am
Мнения: 302
Мнение Re: AD7606 Evaluation Board
ToHu написа:
Абе готови кодове добре, но това е чарк който ако не разбираш как работи е кажи речи безполезен. Вземи му прочети добре менуала, и предполагам всичко ще се изясни. То не, че със всяко АДЦ не е така, но за този тип чипове в още по-евтино, иначе това което получаваш може да не е това което искаш да измериш.


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


Пет Фев 14, 2025 10:16 pm
Профил
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Съб Апр 01, 2023 9:59 am
Мнения: 302
Мнение Re: AD7606 Evaluation Board
Изглежда че не съм разбрал правилно. Падането на FSTDATA трябва да се случи в процесът на четене, а не да бъде условие за такова. Ще тествам утре.


Пет Фев 14, 2025 11:55 pm
Профил
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Съб Апр 01, 2023 9:59 am
Мнения: 302
Мнение Re: AD7606 Evaluation Board
Изглежда че тъкмо там се "крие заека". FSTDATA започна да дава прекъсвания щом започне четенето.


Съб Фев 15, 2025 4:43 pm
Профил
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Съб Апр 01, 2023 9:59 am
Мнения: 302
Мнение Re: AD7606 Evaluation Board
Здравейте,

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

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

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


Сря Фев 19, 2025 8:11 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Чет Фев 03, 2005 2:21 am
Мнения: 12764
Местоположение: София
Мнение Re: AD7606 Evaluation Board
VPavlov написа:
...Имам една неяснота – в Bill of Materials виждам, че бордът има конектори Phoenix Contact 1727078 (3.81 mm). Не намирам мъжки конектори за това чудо, с изключение на едни, които били предназначени само за СА (1803332 compatible male header 3.81)...

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


Съб Фев 22, 2025 11:46 am
Профил
Ранг: Популярен
Ранг: Популярен
Аватар

Регистриран на: Съб Апр 01, 2023 9:59 am
Мнения: 302
Мнение 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


Съб Фев 22, 2025 12:55 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 10 мнения ] 

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 2 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни