реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> SignalTap 2 Logic Analyzer, Ошибка : Waiting for clock
Ensider
сообщение Jun 28 2017, 06:52
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 8-03-17
Из: Россия,Москва
Пользователь №: 95 746



После того , как запускаю "Run".Идет бесконечное Waiting for clock.Нашел самом сообщение об ошибке в литературе: "Логический анализатор выполняет захват триггера включения или в запущенном времени и ожидает тактовый сигнал для перехода".Но толком и не понял.Дело в самом CLOCK?Или , что-то другое?На большинство форумах пишут , что виноват CLOCK , но испытав способы устранения, не пришел к успешному результату.Прошу помочь в сложившейся ситуации.
Go to the top of the page
 
+Quote Post
doom13
сообщение Jun 28 2017, 07:02
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Проблема с сигналом тактирования для сигналтап, его нет, ищите причину.
Go to the top of the page
 
+Quote Post
Ensider
сообщение Jun 28 2017, 07:07
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 8-03-17
Из: Россия,Москва
Пользователь №: 95 746



Цитата(doom13 @ Jun 28 2017, 07:02) *
Проблема с сигналом тактирования для сигналтап, его нет, ищите причину.

Т.е. я его , как-то некорректно указал в самой программе?

Я использовал обыкновенный делитель.Вот отрывок.

Код
always @(posedge ADC_CLK) begin  

                                              

    if (COUNT == (SYS_CLOCK_FREQ/2 - 1)) begin
        timer_2Hz <= 1'b1;                                  
        COUNT           <= '0;                                    
    end
    else begin
        COUNT           <= COUNT+1;                              
        timer_2Hz <= 1'b0;                                
    end
end
Go to the top of the page
 
+Quote Post
doom13
сообщение Jun 28 2017, 07:34
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Покажите настройки сигнслтап
Go to the top of the page
 
+Quote Post
Ensider
сообщение Jun 28 2017, 07:37
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 8-03-17
Из: Россия,Москва
Пользователь №: 95 746



Цитата(doom13 @ Jun 28 2017, 07:34) *
Покажите настройки сигнслтап


Вот прикладываю.Я вообще не понимаю почему не видит он его.

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
doom13
сообщение Jun 28 2017, 07:46
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



ADC_CLK вручную прописали или по нажатию кнопки выбрали, если вручную, то выбирайте из меню по нажатию кнопки.
Иначе смотрите наличие ADC_CLK.
Go to the top of the page
 
+Quote Post
Ensider
сообщение Jun 28 2017, 07:52
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 8-03-17
Из: Россия,Москва
Пользователь №: 95 746



Цитата(doom13 @ Jun 28 2017, 07:46) *
ADC_CLK вручную прописали или по нажатию кнопки выбрали, если вручную, то выбирайте из меню по нажатию кнопки.
Иначе смотрите наличие ADC_CLK.

По нажатию.Таким образом.Он у меня прописан в теле модуля. Да и в Pin Planner.Что ещё может быть не так -то?

Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
doom13
сообщение Jun 28 2017, 07:57
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Судя по названию линий, АЦП у вас с SPI интерфейсом, а ADC_CLK - клок для SPI со стороны FPGA , т.е. не должен быть входом и Вы должны сами его сформировать.
Go to the top of the page
 
+Quote Post
Ensider
сообщение Jun 28 2017, 08:06
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 8-03-17
Из: Россия,Москва
Пользователь №: 95 746



Цитата(doom13 @ Jun 28 2017, 07:57) *
Судя по названию линий, АЦП у вас с SPI интерфейсом, а ADC_CLK - клок для SPI со стороны FPGA , т.е. не должен быть входом и Вы должны сами его сформировать.

Я должен сам реализовать "клок"?
А таким образом реализовывать нельзя?

Код
reg DATA_TEMP [96:0];                                  // Разрядность даннных АЦП

reg RDY;

reg CNV ;

reg serial_data;

reg SERIAL_BIT;

reg TEMP [96:0];

reg COUNT;


always @(posedge ADC_CLK) begin  

                                              

    if (COUNT == (SYS_CLOCK_FREQ/2 - 1)) begin
        timer_2Hz <= 1'b1;                                  
        COUNT           <= '0;                                    
    end
    else begin
        COUNT           <= COUNT+1;                              
        timer_2Hz <= 1'b0;                                
    end
end
                                                                // Утверждают сигнал CNV
always @ (negedge ADC_CLK)
        begin
            if ((COUNT == 97) || (COUNT == 98))
                CNV = 1'b0;
            else
                CNV = 1'b1;
                     end
                    
                                                              // Чтение последовательных данных в 97-битовый регистр. После этого преобразовать его в параллельный, если счетчик равен 97 (конец потока данных)
                    
                       always @ (negedge ADC_CLK)
        
        begin
                         DATA_TEMP[CNV]   <= (serial_data);
            if (COUNT == 97)
                TEMP <= DATA_TEMP;
                     end
always_ff @(posedge ADC_CLK) begin
    if (timer_2Hz == 1'b1) begin
        timer_1Hz <= ~timer_1Hz;
    end
end
                    
            assign ADC_CNV = CNV ;
            
             
endmodule


Сообщение отредактировал Ensider - Jun 28 2017, 08:10
Go to the top of the page
 
+Quote Post
doom13
сообщение Jun 28 2017, 08:19
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Посмотрите доку на АЦП, сигнал АЦП соответствующий Вашему ADC_CLK является его входом.
Go to the top of the page
 
+Quote Post
Ensider
сообщение Jun 28 2017, 08:34
Сообщение #11


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 8-03-17
Из: Россия,Москва
Пользователь №: 95 746



Цитата(doom13 @ Jun 28 2017, 08:19) *
Посмотрите доку на АЦП, сигнал АЦП соответствующий Вашему ADC_CLK является его входом.

Я это понял. Мне просто сказали организовать делитель с такой-то частотой.Я его организовал. Мне нужен клок , который непосредственно на FPGA идет? Что-то все перепуталось. И да если у меня его нет , как уже было сказано , его надо написать?
Go to the top of the page
 
+Quote Post
doom13
сообщение Jun 28 2017, 09:06
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Делитель какой частоты? Можете взять ее с клоковой ножки FPGA, подключить PLL и затактировать свою систему клоком с PLL.

Цитата(Ensider @ Jun 28 2017, 11:34) *
И да если у меня его нет , как уже было сказано , его надо написать?

Его нужно откуда-то взять, а это, как вариант, клоковая ножка FPGA, при условии что на нее подается сигнал тактирования.

И да, Ваш делитель - "не совсем делитель ", высокий уровень один такт ADC_CLK, все остальное время низкий.
Go to the top of the page
 
+Quote Post
spectr
сообщение Jun 28 2017, 09:23
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 285
Регистрация: 10-12-04
Из: Earth
Пользователь №: 1 437



Похоже что сигналтапу не хватает клоков, чтобы заполнить весь буфер. На АЦП, видимо, у вас идет клок, разрешаемый чипселектом, а не постоянно? В таком случае сделайте еще один такой же клок, но который будет работать постоянно. Тогда сигналтап от него заработает.
Go to the top of the page
 
+Quote Post
Ensider
сообщение Jun 28 2017, 09:37
Сообщение #14


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 8-03-17
Из: Россия,Москва
Пользователь №: 95 746



Цитата(doom13 @ Jun 28 2017, 08:50) *
Делитель какой частоты? Можете взять ее с клоковой ножки FPGA, подключить PLL и затактировать свою систему клоком с PLL.

Делитель с частотой 10 МHz. Это все через ALTPLL делается?
Go to the top of the page
 
+Quote Post
AVR
сообщение Jun 28 2017, 09:39
Сообщение #15


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Должен быть постоянный клок, синхронный с данными, которые хочется захватить. Идет ли он извне или генерируется внутри, мне казалось это не принципиально.
В приведенном куске кода убрана шапка модуля - зачем? Чтоб труднее было помочь?


--------------------
Go to the top of the page
 
+Quote Post
Ensider
сообщение Jun 28 2017, 09:44
Сообщение #16


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 8-03-17
Из: Россия,Москва
Пользователь №: 95 746



Цитата(spectr @ Jun 28 2017, 09:23) *
Похоже что сигналтапу не хватает клоков, чтобы заполнить весь буфер. На АЦП, видимо, у вас идет клок, разрешаемый чипселектом, а не постоянно? В таком случае сделайте еще один такой же клок, но который будет работать постоянно. Тогда сигналтап от него заработает.

Это если прописать таким образом?Ниже:
Код
  always @ (posedge CLOCK_8)
        begin
            count <= count + 1;
        end


Цитата(AVR @ Jun 28 2017, 09:39) *
Должен быть постоянный клок, синхронный с данными, которые хочется захватить. Идет ли он извне или генерируется внутри, мне казалось это не принципиально.
В приведенном куске кода убрана шапка модуля - зачем? Чтоб труднее было помочь?


Если прописать вот так:

Код
  always @ (posedge CLOCK_8)
        begin
            count <= count + 1;
        end


Прикладываю с шапкой:

Код
//Проект АЦП связь с FPGA
                                                                                
                                                                                
                                                                                
localparam int unsigned DATA_TEMP            = 97;         //Сумма разрядносте 6 АЦП

localparam int unsigned SYS_CLOCK_FREQ        = 10000000;    // Частота ADC_CLK в герцах.

module NOKIA (input  ADC_SDO , SPICMOSI , SPICCLK , SPICFLG,

output ADC_CNV , SPICMISO , ADC_CLK );

logic            timer_2Hz;  
                                  
logic            timer_1Hz;

reg DATA_TEMP [96:0];                                  // Разрядность даннных АЦП

reg RDY;

reg CNV ;

reg serial_data;

reg SERIAL_BIT;

reg TEMP [96:0];

reg COUNT;


always @(posedge ADC_CLK) begin  

                                              

    if (COUNT == (SYS_CLOCK_FREQ/2 - 1)) begin
        timer_2Hz <= 1'b1;                                  // Этот сигнал будет выставляться в лог.1 на 1 такт с периодом 1/(SYS_CLOCK_FREQ/2), т.е.,
        COUNT           <= '0;                                     // с частотой 2 Гц. Счетчик cnt при этом сбрасывается.
    end
    else begin
        COUNT           <= COUNT+1;                               // В иных случаях счет разрешен,
        timer_2Hz <= 1'b0;                                // а сигнал таймера д.б. занулен.
    end
end
                                                                // Утверждают сигнал CNV
always @ (negedge ADC_CLK)
        begin
            if ((COUNT == 97) || (COUNT == 98))
                CNV = 1'b0;
            else
                CNV = 1'b1;
                     end
                    
                                                              // Чтение последовательных данных в 97-битовый регистр. После этого преобразовать его в параллельный, если счетчик равен 97 (конец потока данных)
                    
                       always @ (negedge ADC_CLK)
        
        begin
                         DATA_TEMP[CNV]   <= (serial_data);
            if (COUNT == 97)
                TEMP <= DATA_TEMP;
                     end
always_ff @(posedge ADC_CLK) begin
    if (timer_2Hz == 1'b1) begin
        timer_1Hz <= ~timer_1Hz;
    end
end
                    
            assign ADC_CNV = CNV ;
            
             
endmodule


Цитата(doom13 @ Jun 28 2017, 09:06) *
Делитель какой частоты? Можете взять ее с клоковой ножки FPGA, подключить PLL и затактировать свою систему клоком с PLL.


Его нужно откуда-то взять, а это, как вариант, клоковая ножка FPGA, при условии что на нее подается сигнал тактирования.

И да, Ваш делитель - "не совсем делитель ", высокий уровень один такт ADC_CLK, все остальное время низкий.


Нужно прописать с постоянной на "высокий" ? Или сделать , как я привел уже пример? Ниже:

Код
  always @ (posedge CLOCK_8)
        begin
            count <= count + 1;
        end


Сообщение отредактировал Ensider - Jun 28 2017, 09:42
Go to the top of the page
 
+Quote Post
doom13
сообщение Jun 28 2017, 09:52
Сообщение #17


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



top module выкладывайте, чтоб было понятно, кто такой ADC_CLK и откуда он берется

, а то по коду модуля он выход, по рисунку выше - вход
Go to the top of the page
 
+Quote Post
Ensider
сообщение Jun 28 2017, 09:59
Сообщение #18


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 8-03-17
Из: Россия,Москва
Пользователь №: 95 746



Цитата(doom13 @ Jun 28 2017, 09:52) *
top module выкладывайте, чтоб было понятно, кто такой ADC_CLK и откуда он берется

, а то по коду модуля он выход, по рисунку выше - вход


Я учел , то что он является выходом и исправил.Вот этот код окончательный.
Go to the top of the page
 
+Quote Post
doom13
сообщение Jun 28 2017, 10:08
Сообщение #19


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Да и вообще (в случае приведённого куска кода) бред получился, вся схема тактируется от выходного пина
Код
...
module NOKIA (input  ADC_SDO , SPICMOSI , SPICCLK , SPICFLG,
output ADC_CNV , SPICMISO , ADC_CLK );
...

, но по коду ему ничего не присваивается, это вообще как?

Цитата(Ensider @ Jun 28 2017, 12:59) *
Я учел , то что он является выходом и исправил.Вот этот код окончательный.

Круто, т.е. сейчас он тупо выход, и на него Вы ничего не выдаете.
От чего вы хотите тактировать SignalTap и АЦП?
Приведённый код и есть топ-модуль? ...

Есть такая интересная штука RTL Viewer (Tools->Netlist Viewers->RTL Viewer), можете посмотреть, какую схему собрал компилер на основе Вашего кода.
Go to the top of the page
 
+Quote Post
Ensider
сообщение Jun 28 2017, 10:15
Сообщение #20


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 8-03-17
Из: Россия,Москва
Пользователь №: 95 746



Цитата(doom13 @ Jun 28 2017, 10:02) *
Да и вообще (в случае приведённого куска кода) бред получился, вся схема тактируется от выходного пина
Код
...
module NOKIA (input  ADC_SDO , SPICMOSI , SPICCLK , SPICFLG,
output ADC_CNV , SPICMISO , ADC_CLK );
...

, но по коду ему ничего не присваивается, это вообще как?


Круто, т.е. сейчас он тупо выход, и на него Вы ничего не выдаете.
От чего вы хотите тактировать SignalTap и АЦП?
Приведённый код и есть топ-модуль? ...

Я хотел сделать , как вы мне предложили.Использовать ALTPLL.Значит все таки можно тактировать от ADC_CLK? В данном случае , да. Я уже сам запутался. Я хотел сделать делитель , чтобы от него тактировалось все.Потом уже обработку и забор и сохранение данных в отведенный регистр. Это не грамотно написано?

Цитата(doom13 @ Jun 28 2017, 10:08) *
Да и вообще (в случае приведённого куска кода) бред получился, вся схема тактируется от выходного пина
Код
...
module NOKIA (input  ADC_SDO , SPICMOSI , SPICCLK , SPICFLG,
output ADC_CNV , SPICMISO , ADC_CLK );
...

, но по коду ему ничего не присваивается, это вообще как?


Круто, т.е. сейчас он тупо выход, и на него Вы ничего не выдаете.
От чего вы хотите тактировать SignalTap и АЦП?
Приведённый код и есть топ-модуль? ...

Есть такая интересная штука RTL Viewer (Tools->Netlist Viewers->RTL Viewer), можете посмотреть, какую схему собрал компилер на основе Вашего кода.

Бред какой-то собрал.Который имеет один выход.

Цитата(Ensider @ Jun 28 2017, 10:12) *
Я хотел сделать , как вы мне предложили.Использовать ALTPLL.Значит все таки можно тактировать от ADC_CLK? В данном случае , да. Я уже сам запутался. Я хотел сделать делитель , чтобы от него тактировалось все.Потом уже обработку и забор и сохранение данных в отведенный регистр. Это не грамотно написано?


Бред какой-то собрал.Который имеет один выход.


Я просто не понимаю. Почему ADC_CLK нельзя использовать в качестве тактирования. Лишь потому , что по документации так. Что касается выходов я не подсоеденил ещё все выхода. Мне бы разобраться с клоком.
Go to the top of the page
 
+Quote Post
doom13
сообщение Jun 28 2017, 10:22
Сообщение #21


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Внимание, объясняю ещё раз:
Если пин FPGA соответствующий сигналу ADC_CLK на схеме Вашей платы подключен к ноге SCK (8-ая нога) микросхемы AD7687, то ничего Вы от неё тактировать не можете, она сама (SCK) хочет чтоб её тактировали.

Цитата(Ensider @ Jun 28 2017, 13:15) *
Я просто не понимаю. Почему ADC_CLK нельзя использовать в качестве тактирования. Лишь потому , что по документации так. Что касается выходов я не подсоеденил ещё все выхода. Мне бы разобраться с клоком.

Для тактирования АЦП можно её использовать, но для этого она выходом должна быть, и тактовый сигнал к ней нужно подключить, и его же для тактирования SignalTap II можно использовать.
Go to the top of the page
 
+Quote Post
Ensider
сообщение Jun 28 2017, 10:34
Сообщение #22


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 8-03-17
Из: Россия,Москва
Пользователь №: 95 746



Цитата(doom13 @ Jun 28 2017, 10:22) *
Внимание, объясняю ещё раз:
Если пин FPGA соответствующий сигналу ADC_CLK на схеме Вашей платы подключен к ноге SCK (8-ая нога) микросхемы AD7687, то ничего Вы от неё тактировать не можете, она сама (SCK) хочет чтоб её тактировали.


Для тактирования АЦП можно её использовать, но для этого она выходом должна быть, и тактовый сигнал к ней нужно подключить, и его же для тактирования SignalTap II можно использовать.


Первое я уяснил.А тактовый сигнал подключить так , как вы посоветовали ? "Можете взять ее с клоковой ножки FPGA, подключить PLL и затактировать свою систему клоком с PLL." ?
Go to the top of the page
 
+Quote Post
doom13
сообщение Jun 28 2017, 10:39
Сообщение #23


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Да, ну только с той клоковой ножки, которая подключена к источнику сигнала тактирования sm.gif
Go to the top of the page
 
+Quote Post
XVR
сообщение Jun 28 2017, 10:40
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



У вас к FPGA вообще какой нибудь генератор подключен? Если да, то тот пин FPGA, к которому он подключен, и должен являться самым главным клоком. Если нет - то нужно подключить, без него ничего работать не будет
Go to the top of the page
 
+Quote Post
Ensider
сообщение Jun 28 2017, 11:10
Сообщение #25


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 8-03-17
Из: Россия,Москва
Пользователь №: 95 746



Цитата(XVR @ Jun 28 2017, 10:40) *
У вас к FPGA вообще какой нибудь генератор подключен? Если да, то тот пин FPGA, к которому он подключен, и должен являться самым главным клоком. Если нет - то нужно подключить, без него ничего работать не будет

Я как слепой сидел и не замечал этот момент.Вот у меня этот генератор.22 пин отвечает за это.А я возился с этим ADC_CLK.

Цитата(doom13 @ Jun 28 2017, 10:39) *
Да, ну только с той клоковой ножки, которая подключена к источнику сигнала тактирования sm.gif

Нашел эту ножку.Листал документацию , видел , что CLK есть , но пин не указывался. Дошло , что нужно в приложении посмотреть.

Цитата(doom13 @ Jun 28 2017, 10:39) *
Да, ну только с той клоковой ножки, которая подключена к источнику сигнала тактирования sm.gif

Первые признаки жизни есть.Я решил сделать вот так:
Код
always @ (posedge CLK)
        begin
            COUNT <= COUNT + 1;
        end

Только вот странно , из-за не подключенных переменных у меня получилась такая прямая в SignalTap 2?
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
AVR
сообщение Jun 28 2017, 11:34
Сообщение #26


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Причина проблемы ясна: клок брался из космоса, а в космос его никто не положил. Попытка делать синхронную схему без самого святого - без клока.


--------------------
Go to the top of the page
 
+Quote Post
Ensider
сообщение Jun 28 2017, 17:02
Сообщение #27


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 8-03-17
Из: Россия,Москва
Пользователь №: 95 746



Цитата(doom13 @ Jun 28 2017, 11:22) *
Внимание, объясняю ещё раз:
Если пин FPGA соответствующий сигналу ADC_CLK на схеме Вашей платы подключен к ноге SCK (8-ая нога) микросхемы AD7687, то ничего Вы от неё тактировать не можете, она сама (SCK) хочет чтоб её тактировали.


Для тактирования АЦП можно её использовать, но для этого она выходом должна быть, и тактовый сигнал к ней нужно подключить, и его же для тактирования SignalTap II можно использовать.


Можно обратиться за помощью?А почему , если SDO отвечает за передачу данных,его нельзя поставить на выход,относительно АЦП?Вот , что у меня получилось:
Клоки поступают на ADC_CLK потом все это идет на ADC_CNV, потом же должно идти на ADC_SDO , или я не совсем понял?

Сообщение отредактировал Ensider - Jun 28 2017, 17:05
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
doom13
сообщение Jun 28 2017, 18:11
Сообщение #28


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Что-то Вы совсем все плохо поняли. SDO - выходной пин АЦП, по тактовому сигналу ADC_CLK (SCLK) АЦП последовательно выдает на него биты текущего оцифрованного значения напряжения, Ваша задача принять и получить соответствующее значение. В теме про SPI-мастер про это говорили, Вам необходимо сформировать сигналы в соответствии с докой на АЦП (CNV, SCLK и т.д), там все разрисовано, что должно получиться.
1) CNV - старт преобразования напряжения в цифру, максимальная частота вроде 1МГц
2) По ADC_CLK, через какой-то интервал времени после CNV АЦП выдает валидные данные на линию SDO, а Вы их должны принять.
3) Далее обработка на ваше усмотрение.
Go to the top of the page
 
+Quote Post
Ensider
сообщение Jun 29 2017, 09:05
Сообщение #29


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 8-03-17
Из: Россия,Москва
Пользователь №: 95 746



Цитата(doom13 @ Jun 28 2017, 18:11) *
Что-то Вы совсем все плохо поняли. SDO - выходной пин АЦП, по тактовому сигналу ADC_CLK (SCLK) АЦП последовательно выдает на него биты текущего оцифрованного значения напряжения, Ваша задача принять и получить соответствующее значение. В теме про SPI-мастер про это говорили, Вам необходимо сформировать сигналы в соответствии с докой на АЦП (CNV, SCLK и т.д), там все разрисовано, что должно получиться.
1) CNV - старт преобразования напряжения в цифру, максимальная частота вроде 1МГц
2) По ADC_CLK, через какой-то интервал времени после CNV АЦП выдает валидные данные на линию SDO, а Вы их должны принять.
3) Далее обработка на ваше усмотрение.


Сделал через PLL клоки.У меня правильно получилось?

Код
localparam int unsigned DATA_TEMP            = 97;         //Сумма разрядносте 6 АЦП

module NOKIA (input  ADC_SDO ,INCLK0,INCLK1,

output ADC_CNV , CLK_10MHz , CLK_80MHz , CLK_20MHz , CLK_100MHz , CLK_40MHz );

reg DATA_TEMP [96:0];                                  // Разрядность даннных АЦП

reg CNV ;

reg serial_data;

reg TEMP [96:0];

reg COUNT;

PLL PLL_CLK(
        .inclk0(INCLK0),
       .inclk1(INCLK1),
        .c0(CLK_10MHz),
        .c1(CLK_80MHz),
        .c2(CLK_20MHz),
        .c3(CLK_100MHz),
        .c4(CLK_40MHz)
        );


После этого надо работать с CNV?
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
doom13
сообщение Jun 29 2017, 10:11
Сообщение #30


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



Диодом моргать научились? Если нет, забейте на АЦП и моргайте светодиодом.
Go to the top of the page
 
+Quote Post
XVR
сообщение Jun 29 2017, 10:22
Сообщение #31


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Цитата
Сделал через PLL клоки.У меня правильно получилось?
Крайне не рекомендуется делать кучу клоков без особенной на то необходимости. Сигналы, пересекающие клоковые домены, требуют особой синхронизации (в случае зависимых клоков с PLL будет немного проще, но лучше без этого обойтись)
Используйте сигналы Enable, которые будут выбирать в схеме когда переключаться, но само переключение делайте на самом быстром клоке.
Go to the top of the page
 
+Quote Post
Ensider
сообщение Jun 29 2017, 10:29
Сообщение #32


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 8-03-17
Из: Россия,Москва
Пользователь №: 95 746



Цитата(doom13 @ Jun 29 2017, 10:11) *
Диодом моргать научились? Если нет, забейте на АЦП и моргайте светодиодом.


Да.Научился.Обычное присвоение сигнала,через assign. Там разве так же нужно присвоить?

Код
always @ (negedge INCLK0)
        begin
            if ((COUNT == 97) || (COUNT == 98))
                CNV = 1'b0;
            else
                CNV = 1'b1;
                     end


Утверждение сигнала у меня тут идет.Но как его связать , для меня затруднительно.


Цитата(XVR @ Jun 29 2017, 10:22) *
Крайне не рекомендуется делать кучу клоков без особенной на то необходимости. Сигналы, пересекающие клоковые домены, требуют особой синхронизации (в случае зависимых клоков с PLL будет немного проще, но лучше без этого обойтись)
Используйте сигналы Enable, которые будут выбирать в схеме когда переключаться, но само переключение делайте на самом быстром клоке.


Убрал лишний клок на входе и пару на выходе.
Go to the top of the page
 
+Quote Post
AVR
сообщение Jun 29 2017, 10:32
Сообщение #33


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



Цитата(doom13 @ Jun 29 2017, 13:11) *
Диодом моргать научились? Если нет, забейте на АЦП и моргайте светодиодом.

Сурово, но справедливо sm.gif

А еще я бы автору темы посоветовал воспользоваться симулятором Modelsim Altera Starter Edition, он бесплатный.
К SignalTap прибегают только тогда, когда схема уже работает в целом отлично, но нужно выяснить какие-то проблемы.
Но очевидно что на таком этапе как в этой теме - начинать надо с симулятора. Научиться писать тестбенчи, и только после этого пытаться работать с более сложными вещами.

При этом я понимаю, как сильно хочется пропустить этот этап освоения и кинуться в бой, но не удалось.


--------------------
Go to the top of the page
 
+Quote Post
Ensider
сообщение Jun 29 2017, 10:45
Сообщение #34


Частый гость
**

Группа: Участник
Сообщений: 83
Регистрация: 8-03-17
Из: Россия,Москва
Пользователь №: 95 746



Цитата(AVR @ Jun 29 2017, 10:32) *
Сурово, но справедливо sm.gif

А еще я бы автору темы посоветовал воспользоваться симулятором Modelsim Altera Starter Edition, он бесплатный.
К SignalTap прибегают только тогда, когда схема уже работает в целом отлично, но нужно выяснить какие-то проблемы.
Но очевидно что на таком этапе как в этой теме - начинать надо с симулятора. Научиться писать тестбенчи, и только после этого пытаться работать с более сложными вещами.

При этом я понимаю, как сильно хочется пропустить этот этап освоения и кинуться в бой, но не удалось.


Спасибо,за направление. Но неужели ничего из того , что я пишу не верно.
Go to the top of the page
 
+Quote Post
doom13
сообщение Jun 29 2017, 11:06
Сообщение #35


Профессионал
*****

Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539



SPI-мастер для похожего АЦП, отличие в том, что тут АЦП 8-ми канальное и для него задаётся конфигурация.
Если подключить к Вашему, думаю, всё должно заработать, но опрашивать будет только один канал на Вашей плате.
Разбирайтесь!
Прикрепленные файлы
Прикрепленный файл  adas3022.rar ( 3.21 килобайт ) Кол-во скачиваний: 13
 
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 11:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.01765 секунд с 7
ELECTRONIX ©2004-2016