1 | procedure Daten_anlegen
|
2 | (
|
3 | signal Daten_Telegramm_1: IN std_logic_vector (gSPI_Breite - 1 downto 0);
|
4 | signal CRC_Telegramm_1 : IN std_logic_vector (gSPI_Breite - 1 downto 0);
|
5 | signal Daten_Telegramm_2: IN std_logic_vector (gSPI_Breite - 1 downto 0);
|
6 | signal CRC_Telegramm_2 : IN std_logic_vector (gSPI_Breite - 1 downto 0);
|
7 | signal poSPI_CLK: IN STD_LOGIC; -- SPI_Clk
|
8 | signal poSPI_CS_AL : out STD_LOGIC; -- SPI CS (Active Low)
|
9 | signal poSPI_MOSI : out STD_LOGIC; -- SPI MOSI
|
10 | signal poSPI_MISO : OUT STD_LOGIC -- SPI MISO
|
11 | ) is
|
12 |
|
13 | begin
|
14 |
|
15 | SPI_Bus_anlegen (SPI_Daten => Daten_Telegramm_1, poSPI_CLK=>poSPI_CLK, poSPI_CS_AL=>poSPI_CS_AL, poSPI_MOSI=> poSPI_MOSI, poSPI_MISO=>poSPI_MISO);
|
16 | SPI_Bus_anlegen (SPI_Daten => CRC_Telegramm_1, poSPI_CLK=>poSPI_CLK, poSPI_CS_AL=>poSPI_CS_AL, poSPI_MOSI=> poSPI_MOSI, poSPI_MISO=>poSPI_MISO);
|
17 | SPI_Bus_anlegen (SPI_Daten => Daten_Telegramm_2, poSPI_CLK=>poSPI_CLK, poSPI_CS_AL=>poSPI_CS_AL, poSPI_MOSI=> poSPI_MOSI, poSPI_MISO=>poSPI_MISO);
|
18 | SPI_Bus_anlegen (SPI_Daten => CRC_Telegramm_2, poSPI_CLK=>poSPI_CLK, poSPI_CS_AL=>poSPI_CS_AL, poSPI_MOSI=> poSPI_MOSI, poSPI_MISO=>poSPI_MISO);
|
19 | end Daten_anlegen;
|
20 |
|
21 |
|
22 | procedure SPI_Bus_anlegen
|
23 | (
|
24 | signal SPI_Daten : IN std_logic_vector(gSPI_Breite - 1 downto 0);
|
25 | signal poSPI_CLK: IN STD_LOGIC; -- SPI_Clk
|
26 | signal poSPI_CS_AL : out STD_LOGIC; -- SPI CS (Active Low)
|
27 | signal poSPI_MOSI : out STD_LOGIC; -- SPI MOSI
|
28 | signal poSPI_MISO : OUT STD_LOGIC -- SPI MISO
|
29 | ) is
|
30 |
|
31 |
|
32 | begin
|
33 | wait until falling_edge(poSPI_CLK);
|
34 | poSPI_CS_AL <= '1';
|
35 | wait until falling_edge(poSPI_CLK);
|
36 | poSPI_CS_AL <= '0';
|
37 | poSPI_MOSI <= SPI_Daten(7);
|
38 | wait until rising_edge(poSPI_CLK);
|
39 | wait until falling_edge(poSPI_CLK);
|
40 | poSPI_MOSI <= SPI_Daten(6);
|
41 | wait until rising_edge(poSPI_CLK);
|
42 | wait until falling_edge(poSPI_CLK);
|
43 | poSPI_MOSI <= SPI_Daten(5);
|
44 | wait until rising_edge(poSPI_CLK);
|
45 | wait until falling_edge(poSPI_CLK);
|
46 | poSPI_MOSI <= SPI_Daten(4);
|
47 | wait until rising_edge(poSPI_CLK);
|
48 | wait until falling_edge(poSPI_CLK);
|
49 | poSPI_MOSI <= SPI_Daten(3);
|
50 | wait until rising_edge(poSPI_CLK);
|
51 | wait until falling_edge(poSPI_CLK);
|
52 | poSPI_MOSI <= SPI_Daten(2);
|
53 | wait until rising_edge(poSPI_CLK);
|
54 | wait until falling_edge(poSPI_CLK);
|
55 | poSPI_MOSI <= SPI_Daten(1);
|
56 | wait until rising_edge(poSPI_CLK);
|
57 | wait until falling_edge(poSPI_CLK);
|
58 | poSPI_MOSI <= SPI_Daten(0);
|
59 | wait until rising_edge(poSPI_CLK);
|
60 | poSPI_CS_AL <= '1';
|
61 | wait until rising_edge(poSPI_CLK);
|
62 | end SPI_Bus_anlegen ;
|