Перейти к содержанию
    

8 минут назад, jenya7 сказал:

я понял. а почему кор генерирует 6 бит?

Так поняли или нет?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, andrew_b said:

Так поняли или нет?

почему 6 бит не понял.

Изменено пользователем jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 minute ago, jenya7 said:

почему 6 бит не понял.

full это старший бит счётчика количества слов в фифо, он выдаётся отдельно. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 
1 hour ago, des00 said:

full это старший бит счётчика количества слов в фифо, он выдаётся отдельно. 

но количество сообщений в ФИФО я читаю из usedw.  а если usedw  : out std_logic_vector (5 DOWNTO 0)  он мне не выдаст 64. почему (5 DOWNTO 0) ?

 

то есть мне надо изменить алгоритм чтения ФИФО?

вместо

if (size == 0)
	{
		if (status_rx_fifo & RX_FIFO_FULL_MASK)
		{
			//dummy read to resolve fifo_full = 1 issue
			SPI_can_rd(rd_opcode, 0, g_buff_in, 14);
		}

		return 0;
	}
	else
	{
		while (size > 0)
		{
			mailbox_save_to_struct(mcp_num, 0);
			size--;
		}
	}

сделать

 

if (size == 0)
	{
		if (status_rx_fifo & RX_FIFO_FULL_MASK)
		{
			//dummy read to resolve fifo_full = 1 issue
			SPI_can_rd(rd_opcode, 0, g_buff_in, 14);
		}

		return 0;
	}
	else
	{
        //to fix usedw 6 bit
        if (status_rx_fifo & RX_FIFO_FULL_MASK)
           size = 64;

		while (size > 0)
		{
			mailbox_save_to_struct(num, 0);
			size--;
		}
	}
Изменено пользователем jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вам надо перестать кодить в слепую, взять ручку, тетрадь, книгу по компьютерному представлению чисел и расписать что происходит с фифо и его сигналами, на ваших разрядностях и в вашем случае. 

В итоге выведете формулу, как, в вашем случае, перейти от сигналов фифо, сгенерированной корки, к настоящему количеству слов в фифо 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, des00 said:

Вам надо перестать кодить в слепую, взять ручку, тетрадь, книгу по компьютерному представлению чисел и расписать что происходит с фифо и его сигналами, на ваших разрядностях и в вашем случае. 

В итоге выведете формулу, как, в вашем случае, перейти от сигналов фифо, сгенерированной корки, к настоящему количеству слов в фифо 

 

можно конечно и так

rx_fifo_size <= rx_fifo_full & rx_fifo_usedw;

я бы даже сказал - нужно так :), раз корка выделила MSB бит в качестае флага full.

Изменено пользователем jenya7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...