Changeset 10037 for firmware/FTU/rs485


Ignore:
Timestamp:
10/25/10 15:29:13 (14 years ago)
Author:
weitzel
Message:
FTU counter changed from 16 to 30 bit
Location:
firmware/FTU/rs485
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • firmware/FTU/rs485/FTU_rs485_control.vhd

    r10009 r10037  
    7474  signal rx_valid_sig : std_logic;  -- initialized in FTU_rs485_interface
    7575  signal rx_data_sig  : std_logic_vector (7 DOWNTO 0);  -- initialized in FTU_rs485_interface
    76   signal rx_busy_sig  : std_logic;  -- initialized in FTU_rs485_interface
     76  --signal rx_busy_sig  : std_logic;  -- initialized in FTU_rs485_interface
    7777
    7878  signal block_valid_sig : std_logic;  -- initialized in FTU_rs485_receiver
     
    8888  signal int_ping_pong_sig       : std_logic;  -- initialized in FTU_rs485_interpreter
    8989
    90   signal txcnt : integer range 0 to (RS485_BLOCK_WIDTH / 8) := 0;  -- count 16 1-byte frames
     90  signal txcnt : integer range 0 to (RS485_BLOCK_WIDTH / 8) := 0;  -- count 28 1-byte frames
    9191 
    9292  component FTU_rs485_receiver
     
    131131      -- FPGA
    132132      rx_data  : OUT std_logic_vector (7 DOWNTO 0);
    133       rx_busy  : OUT std_logic  := '0';
     133      --rx_busy  : OUT std_logic  := '0';
    134134      rx_valid : OUT std_logic  := '0';
    135135      tx_data  : IN  std_logic_vector (7 DOWNTO 0);
     
    187187      -- FPGA
    188188      rx_data  => rx_data_sig,
    189       rx_busy  => rx_busy_sig,
     189      --rx_busy  => rx_busy_sig,
    190190      rx_valid => rx_valid_sig,
    191191      tx_data  => tx_data_sig,
     
    390390              tx_start_sig <= '1';
    391391              FTU_rs485_control_State <= SET_DAC_TRANSMIT;
    392             elsif txcnt = 3 then        -- mirrored command
     392            elsif txcnt = 3 then        -- firmware ID
     393              txcnt <= txcnt + 1;
     394              tx_data_sig <= FIRMWARE_ID;
     395              tx_start_sig <= '1';
     396              FTU_rs485_control_State <= SET_DAC_TRANSMIT;
     397            elsif txcnt = 4 then        -- mirrored command
    393398              txcnt <= txcnt + 1;
    394399              tx_data_sig <= "00000000";
    395400              tx_start_sig <= '1';
    396401              FTU_rs485_control_State <= SET_DAC_TRANSMIT;
    397             elsif txcnt = 4 then        -- data: DAC A low
     402            elsif txcnt = 5 then        -- data: DAC A low
    398403              txcnt <= txcnt + 1;
    399404              tx_data_sig <= conv_std_logic_vector(dac_array_rs485_in(0),16)(7 downto 0);
    400405              tx_start_sig <= '1';
    401406              FTU_rs485_control_State <= SET_DAC_TRANSMIT;
    402             elsif txcnt = 5 then        -- data: DAC A high
     407            elsif txcnt = 6 then        -- data: DAC A high
    403408              txcnt <= txcnt + 1;
    404409              tx_data_sig <= conv_std_logic_vector(dac_array_rs485_in(0),16)(15 downto 8);
    405410              tx_start_sig <= '1';
    406411              FTU_rs485_control_State <= SET_DAC_TRANSMIT;
    407             elsif txcnt = 6 then        -- data: DAC B low
     412            elsif txcnt = 7 then        -- data: DAC B low
    408413              txcnt <= txcnt + 1;
    409414              tx_data_sig <= conv_std_logic_vector(dac_array_rs485_in(1),16)(7 downto 0);
    410415              tx_start_sig <= '1';
    411416              FTU_rs485_control_State <= SET_DAC_TRANSMIT;
    412             elsif txcnt = 7 then        -- data: DAC B high
     417            elsif txcnt = 8 then        -- data: DAC B high
    413418              txcnt <= txcnt + 1;
    414419              tx_data_sig <= conv_std_logic_vector(dac_array_rs485_in(1),16)(15 downto 8);
    415420              tx_start_sig <= '1';
    416421              FTU_rs485_control_State <= SET_DAC_TRANSMIT;
    417             elsif txcnt = 8 then        -- data: DAC C low
     422            elsif txcnt = 9 then        -- data: DAC C low
    418423              txcnt <= txcnt + 1;
    419424              tx_data_sig <= conv_std_logic_vector(dac_array_rs485_in(2),16)(7 downto 0);
    420425              tx_start_sig <= '1';
    421426              FTU_rs485_control_State <= SET_DAC_TRANSMIT;
    422             elsif txcnt = 9 then        -- data: DAC C high
     427            elsif txcnt = 10 then        -- data: DAC C high
    423428              txcnt <= txcnt + 1;
    424429              tx_data_sig <= conv_std_logic_vector(dac_array_rs485_in(2),16)(15 downto 8);
    425430              tx_start_sig <= '1';
    426431              FTU_rs485_control_State <= SET_DAC_TRANSMIT;
    427             elsif txcnt = 10 then        -- data: DAC D low
     432            elsif txcnt = 11 then        -- data: DAC D low
    428433              txcnt <= txcnt + 1;
    429434              tx_data_sig <= conv_std_logic_vector(dac_array_rs485_in(3),16)(7 downto 0);
    430435              tx_start_sig <= '1';
    431436              FTU_rs485_control_State <= SET_DAC_TRANSMIT;
    432             elsif txcnt = 11 then        -- data: DAC D high
     437            elsif txcnt = 12 then        -- data: DAC D high
    433438              txcnt <= txcnt + 1;
    434439              tx_data_sig <= conv_std_logic_vector(dac_array_rs485_in(3),16)(15 downto 8);
    435440              tx_start_sig <= '1';
    436441              FTU_rs485_control_State <= SET_DAC_TRANSMIT;
    437             elsif txcnt = 12 then        -- data: DAC E low
     442            elsif txcnt = 13 then        -- data: DAC E low
    438443              txcnt <= txcnt + 1;
    439444              tx_data_sig <= conv_std_logic_vector(dac_array_rs485_in(7),16)(7 downto 0);
    440445              tx_start_sig <= '1';
    441446              FTU_rs485_control_State <= SET_DAC_TRANSMIT;
    442             elsif txcnt = 13 then        -- data: DAC E high
     447            elsif txcnt = 14 then        -- data: DAC E high
    443448              txcnt <= txcnt + 1;
    444449              tx_data_sig <= conv_std_logic_vector(dac_array_rs485_in(7),16)(15 downto 8);
    445450              tx_start_sig <= '1';
    446451              FTU_rs485_control_State <= SET_DAC_TRANSMIT;
    447             elsif txcnt < 15 then        -- data: not used
     452            elsif txcnt < ((RS485_BLOCK_WIDTH / 8) - 2) then        -- data: not used
    448453              txcnt <= txcnt + 1;
    449454              tx_data_sig <= "00000000";
    450455              tx_start_sig <= '1';
    451456              FTU_rs485_control_State <= SET_DAC_TRANSMIT;
    452             elsif txcnt = 15 then        -- check sum
     457            elsif txcnt = ((RS485_BLOCK_WIDTH / 8) - 2) then        -- CRC error counter
     458              txcnt <= txcnt + 1;
     459              tx_data_sig <= "00000000";  -- NOT YET IMPLEMENTED!!!
     460              tx_start_sig <= '1';
     461              FTU_rs485_control_State <= READ_RATES_TRANSMIT;
     462            elsif txcnt = ((RS485_BLOCK_WIDTH / 8) - 1) then        -- check sum
    453463              txcnt <= txcnt + 1;
    454464              tx_data_sig <= "00000000";  -- NOT YET IMPLEMENTED!!!
     
    481491              tx_start_sig <= '1';
    482492              FTU_rs485_control_State <= SET_ENABLE_TRANSMIT;
    483             elsif txcnt = 3 then        -- mirrored command
     493            elsif txcnt = 3 then        -- firmware ID
     494              txcnt <= txcnt + 1;
     495              tx_data_sig <= FIRMWARE_ID;
     496              tx_start_sig <= '1';
     497              FTU_rs485_control_State <= SET_ENABLE_TRANSMIT;
     498            elsif txcnt = 4 then        -- mirrored command
    484499              txcnt <= txcnt + 1;
    485500              tx_data_sig <= "00000011";
    486501              tx_start_sig <= '1';
    487502              FTU_rs485_control_State <= SET_ENABLE_TRANSMIT;
    488             elsif txcnt = 4 then        -- data: enable pattern A7-0
     503            elsif txcnt = 5 then        -- data: enable pattern A7-0
    489504              txcnt <= txcnt + 1;
    490505              tx_data_sig <= enable_array_rs485_in(0)(7 downto 0);
    491506              tx_start_sig <= '1';
    492507              FTU_rs485_control_State <= SET_ENABLE_TRANSMIT;
    493             elsif txcnt = 5 then        -- data: enable pattern A8
     508            elsif txcnt = 6 then        -- data: enable pattern A8
    494509              txcnt <= txcnt + 1;
    495510              tx_data_sig <= enable_array_rs485_in(0)(15 downto 8);
    496511              tx_start_sig <= '1';
    497512              FTU_rs485_control_State <= SET_ENABLE_TRANSMIT;
    498             elsif txcnt = 6 then        -- data: enable pattern B7-0
     513            elsif txcnt = 7 then        -- data: enable pattern B7-0
    499514              txcnt <= txcnt + 1;
    500515              tx_data_sig <= enable_array_rs485_in(1)(7 downto 0);
    501516              tx_start_sig <= '1';
    502517              FTU_rs485_control_State <= SET_ENABLE_TRANSMIT;
    503             elsif txcnt = 7 then        -- data: enable pattern B8
     518            elsif txcnt = 8 then        -- data: enable pattern B8
    504519              txcnt <= txcnt + 1;
    505520              tx_data_sig <= enable_array_rs485_in(1)(15 downto 8);
    506521              tx_start_sig <= '1';
    507522              FTU_rs485_control_State <= SET_ENABLE_TRANSMIT;
    508             elsif txcnt = 8 then        -- data: enable pattern C7-0
     523            elsif txcnt = 9 then        -- data: enable pattern C7-0
    509524              txcnt <= txcnt + 1;
    510525              tx_data_sig <= enable_array_rs485_in(2)(7 downto 0);
    511526              tx_start_sig <= '1';
    512527              FTU_rs485_control_State <= SET_ENABLE_TRANSMIT;
    513             elsif txcnt = 9 then        -- data: enable pattern C8
     528            elsif txcnt = 10 then        -- data: enable pattern C8
    514529              txcnt <= txcnt + 1;
    515530              tx_data_sig <= enable_array_rs485_in(2)(15 downto 8);
    516531              tx_start_sig <= '1';
    517532              FTU_rs485_control_State <= SET_ENABLE_TRANSMIT;
    518             elsif txcnt = 10 then        -- data: enable pattern D7-0
     533            elsif txcnt = 11 then        -- data: enable pattern D7-0
    519534              txcnt <= txcnt + 1;
    520535              tx_data_sig <= enable_array_rs485_in(3)(7 downto 0);
    521536              tx_start_sig <= '1';
    522537              FTU_rs485_control_State <= SET_ENABLE_TRANSMIT;
    523             elsif txcnt = 11 then        -- data: enable pattern D8
     538            elsif txcnt = 12 then        -- data: enable pattern D8
    524539              txcnt <= txcnt + 1;
    525540              tx_data_sig <= enable_array_rs485_in(3)(15 downto 8);
    526541              tx_start_sig <= '1';
    527542              FTU_rs485_control_State <= SET_ENABLE_TRANSMIT;
    528             elsif txcnt < 15 then        -- data: not used
     543            elsif txcnt < ((RS485_BLOCK_WIDTH / 8) - 2) then        -- data: not used
    529544              txcnt <= txcnt + 1;
    530545              tx_data_sig <= "00000000";
    531546              tx_start_sig <= '1';
    532547              FTU_rs485_control_State <= SET_ENABLE_TRANSMIT;
    533             elsif txcnt = 15 then        -- check sum
     548            elsif txcnt = ((RS485_BLOCK_WIDTH / 8) - 2) then        -- CRC error counter
     549              txcnt <= txcnt + 1;
     550              tx_data_sig <= "00000000";  -- NOT YET IMPLEMENTED!!!
     551              tx_start_sig <= '1';
     552              FTU_rs485_control_State <= SET_ENABLE_TRANSMIT;
     553            elsif txcnt = ((RS485_BLOCK_WIDTH / 8) - 1) then        -- check sum
    534554              txcnt <= txcnt + 1;
    535555              tx_data_sig <= "00000000";  -- NOT YET IMPLEMENTED!!!
     
    562582              tx_start_sig <= '1';
    563583              FTU_rs485_control_State <= SET_PRESCALING_TRANSMIT;
    564             elsif txcnt = 3 then        -- mirrored command
     584            elsif txcnt = 3 then        -- firmware ID
     585              txcnt <= txcnt + 1;
     586              tx_data_sig <= FIRMWARE_ID;
     587              tx_start_sig <= '1';
     588              FTU_rs485_control_State <= SET_PRESCALING_TRANSMIT;
     589            elsif txcnt = 4 then        -- mirrored command
    565590              txcnt <= txcnt + 1;
    566591              tx_data_sig <= "00000110";
    567592              tx_start_sig <= '1';
    568593              FTU_rs485_control_State <= SET_PRESCALING_TRANSMIT;
    569             elsif txcnt = 4 then        -- data: prescaling
     594            elsif txcnt = 5 then        -- data: prescaling
    570595              txcnt <= txcnt + 1;
    571596              tx_data_sig <= prescaling_rs485_in;
    572597              tx_start_sig <= '1';
    573598              FTU_rs485_control_State <= SET_PRESCALING_TRANSMIT;
    574             elsif txcnt < 15 then        -- data: not used
     599            elsif txcnt < ((RS485_BLOCK_WIDTH / 8) - 2) then        -- data: not used
    575600              txcnt <= txcnt + 1;
    576601              tx_data_sig <= "00000000";
    577602              tx_start_sig <= '1';
    578603              FTU_rs485_control_State <= SET_PRESCALING_TRANSMIT;
    579             elsif txcnt = 15 then        -- check sum
     604            elsif txcnt = ((RS485_BLOCK_WIDTH / 8) - 2) then        -- CRC error counter
     605              txcnt <= txcnt + 1;
     606              tx_data_sig <= "00000000";  -- NOT YET IMPLEMENTED!!!
     607              tx_start_sig <= '1';
     608              FTU_rs485_control_State <= SET_PRESCALING_TRANSMIT;
     609            elsif txcnt = ((RS485_BLOCK_WIDTH / 8) - 1) then        -- check sum
    580610              txcnt <= txcnt + 1;
    581611              tx_data_sig <= "00000000";  -- NOT YET IMPLEMENTED!!!
     
    608638              tx_start_sig <= '1';
    609639              FTU_rs485_control_State <= READ_RATES_TRANSMIT;
    610             elsif txcnt = 3 then        -- mirrored command
     640            elsif txcnt = 3 then        -- firmware ID
     641              txcnt <= txcnt + 1;
     642              tx_data_sig <= FIRMWARE_ID;
     643              tx_start_sig <= '1';
     644              FTU_rs485_control_State <= READ_RATES_TRANSMIT;
     645            elsif txcnt = 4 then        -- mirrored command
    611646              txcnt <= txcnt + 1;
    612647              tx_data_sig <= "00000010";
    613648              tx_start_sig <= '1';
    614649              FTU_rs485_control_State <= READ_RATES_TRANSMIT;
    615             elsif txcnt = 4 then        -- data: counter A low
    616               txcnt <= txcnt + 1;
    617               tx_data_sig <= conv_std_logic_vector(rate_array_rs485(0),16)(7 downto 0);
    618               tx_start_sig <= '1';
    619               FTU_rs485_control_State <= READ_RATES_TRANSMIT;
    620             elsif txcnt = 5 then        -- data: counter A high
    621               txcnt <= txcnt + 1;
    622               tx_data_sig <= conv_std_logic_vector(rate_array_rs485(0),16)(15 downto 8);
    623               tx_start_sig <= '1';
    624               FTU_rs485_control_State <= READ_RATES_TRANSMIT;
    625             elsif txcnt = 6 then        -- data: counter B low
    626               txcnt <= txcnt + 1;
    627               tx_data_sig <= conv_std_logic_vector(rate_array_rs485(1),16)(7 downto 0);
    628               tx_start_sig <= '1';
    629               FTU_rs485_control_State <= READ_RATES_TRANSMIT;
    630             elsif txcnt = 7 then        -- data: counter B high
    631               txcnt <= txcnt + 1;
    632               tx_data_sig <= conv_std_logic_vector(rate_array_rs485(1),16)(15 downto 8);
    633               tx_start_sig <= '1';
    634               FTU_rs485_control_State <= READ_RATES_TRANSMIT;
    635             elsif txcnt = 8 then        -- data: counter C low
    636               txcnt <= txcnt + 1;
    637               tx_data_sig <= conv_std_logic_vector(rate_array_rs485(2),16)(7 downto 0);
    638               tx_start_sig <= '1';
    639               FTU_rs485_control_State <= READ_RATES_TRANSMIT;
    640             elsif txcnt = 9 then        -- data: counter C high
    641               txcnt <= txcnt + 1;
    642               tx_data_sig <= conv_std_logic_vector(rate_array_rs485(2),16)(15 downto 8);
    643               tx_start_sig <= '1';
    644               FTU_rs485_control_State <= READ_RATES_TRANSMIT;
    645             elsif txcnt = 10 then        -- data: counter D low
    646               txcnt <= txcnt + 1;
    647               tx_data_sig <= conv_std_logic_vector(rate_array_rs485(3),16)(7 downto 0);
    648               tx_start_sig <= '1';
    649               FTU_rs485_control_State <= READ_RATES_TRANSMIT;
    650             elsif txcnt = 11 then        -- data: counter D high
    651               txcnt <= txcnt + 1;
    652               tx_data_sig <= conv_std_logic_vector(rate_array_rs485(3),16)(15 downto 8);
    653               tx_start_sig <= '1';
    654               FTU_rs485_control_State <= READ_RATES_TRANSMIT;
    655             elsif txcnt = 12 then        -- data: trigger counter low
    656               txcnt <= txcnt + 1;
    657               tx_data_sig <= conv_std_logic_vector(rate_array_rs485(4),16)(7 downto 0);
    658               tx_start_sig <= '1';
    659               FTU_rs485_control_State <= READ_RATES_TRANSMIT;
    660             elsif txcnt = 13 then        -- data: trigger counter high
    661               txcnt <= txcnt + 1;
    662               tx_data_sig <= conv_std_logic_vector(rate_array_rs485(4),16)(15 downto 8);
    663               tx_start_sig <= '1';
    664               FTU_rs485_control_State <= READ_RATES_TRANSMIT;
    665             elsif txcnt = 14 then        -- data: overflow register
     650            elsif txcnt = 5 then        -- data: counter A 7...0
     651              txcnt <= txcnt + 1;
     652              tx_data_sig <= conv_std_logic_vector(rate_array_rs485(0),32)(7 downto 0);
     653              tx_start_sig <= '1';
     654              FTU_rs485_control_State <= READ_RATES_TRANSMIT;
     655            elsif txcnt = 6 then        -- data: counter A 15...8
     656              txcnt <= txcnt + 1;
     657              tx_data_sig <= conv_std_logic_vector(rate_array_rs485(0),32)(15 downto 8);
     658              tx_start_sig <= '1';
     659              FTU_rs485_control_State <= READ_RATES_TRANSMIT;
     660            elsif txcnt = 7 then        -- data: counter A 23...16
     661              txcnt <= txcnt + 1;
     662              tx_data_sig <= conv_std_logic_vector(rate_array_rs485(0),32)(23 downto 16);
     663              tx_start_sig <= '1';
     664              FTU_rs485_control_State <= READ_RATES_TRANSMIT;
     665            elsif txcnt = 8 then        -- data: counter A 31...24
     666              txcnt <= txcnt + 1;
     667              tx_data_sig <= conv_std_logic_vector(rate_array_rs485(0),32)(31 downto 24);
     668              tx_start_sig <= '1';
     669              FTU_rs485_control_State <= READ_RATES_TRANSMIT;
     670            elsif txcnt = 9 then        -- data: counter B 7...0
     671              txcnt <= txcnt + 1;
     672              tx_data_sig <= conv_std_logic_vector(rate_array_rs485(1),32)(7 downto 0);
     673              tx_start_sig <= '1';
     674              FTU_rs485_control_State <= READ_RATES_TRANSMIT;
     675            elsif txcnt = 10 then        -- data: counter B 15...8
     676              txcnt <= txcnt + 1;
     677              tx_data_sig <= conv_std_logic_vector(rate_array_rs485(1),32)(15 downto 8);
     678              tx_start_sig <= '1';
     679              FTU_rs485_control_State <= READ_RATES_TRANSMIT;
     680            elsif txcnt = 11 then        -- data: counter B 23...16
     681              txcnt <= txcnt + 1;
     682              tx_data_sig <= conv_std_logic_vector(rate_array_rs485(1),32)(23 downto 16);
     683              tx_start_sig <= '1';
     684              FTU_rs485_control_State <= READ_RATES_TRANSMIT;
     685            elsif txcnt = 12 then        -- data: counter B 31...24
     686              txcnt <= txcnt + 1;
     687              tx_data_sig <= conv_std_logic_vector(rate_array_rs485(1),32)(31 downto 24);
     688              tx_start_sig <= '1';
     689              FTU_rs485_control_State <= READ_RATES_TRANSMIT;
     690            elsif txcnt = 13 then        -- data: counter C 7...0
     691              txcnt <= txcnt + 1;
     692              tx_data_sig <= conv_std_logic_vector(rate_array_rs485(2),32)(7 downto 0);
     693              tx_start_sig <= '1';
     694              FTU_rs485_control_State <= READ_RATES_TRANSMIT;
     695            elsif txcnt = 14 then        -- data: counter C 15...8
     696              txcnt <= txcnt + 1;
     697              tx_data_sig <= conv_std_logic_vector(rate_array_rs485(2),32)(15 downto 8);
     698              tx_start_sig <= '1';
     699              FTU_rs485_control_State <= READ_RATES_TRANSMIT;
     700            elsif txcnt = 15 then        -- data: counter C 23...16
     701              txcnt <= txcnt + 1;
     702              tx_data_sig <= conv_std_logic_vector(rate_array_rs485(2),32)(23 downto 16);
     703              tx_start_sig <= '1';
     704              FTU_rs485_control_State <= READ_RATES_TRANSMIT;
     705            elsif txcnt = 16 then        -- data: counter C 31...24
     706              txcnt <= txcnt + 1;
     707              tx_data_sig <= conv_std_logic_vector(rate_array_rs485(2),32)(31 downto 24);
     708              tx_start_sig <= '1';
     709              FTU_rs485_control_State <= READ_RATES_TRANSMIT;
     710            elsif txcnt = 17 then        -- data: counter D 7...0
     711              txcnt <= txcnt + 1;
     712              tx_data_sig <= conv_std_logic_vector(rate_array_rs485(3),32)(7 downto 0);
     713              tx_start_sig <= '1';
     714              FTU_rs485_control_State <= READ_RATES_TRANSMIT;
     715            elsif txcnt = 18 then        -- data: counter D 15...8
     716              txcnt <= txcnt + 1;
     717              tx_data_sig <= conv_std_logic_vector(rate_array_rs485(3),32)(15 downto 8);
     718              tx_start_sig <= '1';
     719              FTU_rs485_control_State <= READ_RATES_TRANSMIT;
     720            elsif txcnt = 19 then        -- data: counter D 23...16
     721              txcnt <= txcnt + 1;
     722              tx_data_sig <= conv_std_logic_vector(rate_array_rs485(3),32)(23 downto 16);
     723              tx_start_sig <= '1';
     724              FTU_rs485_control_State <= READ_RATES_TRANSMIT;
     725            elsif txcnt = 20 then        -- data: counter D 31...24
     726              txcnt <= txcnt + 1;
     727              tx_data_sig <= conv_std_logic_vector(rate_array_rs485(3),32)(31 downto 24);
     728              tx_start_sig <= '1';
     729              FTU_rs485_control_State <= READ_RATES_TRANSMIT;
     730            elsif txcnt = 21 then        -- data: trigger counter 7...0
     731              txcnt <= txcnt + 1;
     732              tx_data_sig <= conv_std_logic_vector(rate_array_rs485(4),32)(7 downto 0);
     733              tx_start_sig <= '1';
     734              FTU_rs485_control_State <= READ_RATES_TRANSMIT;
     735            elsif txcnt = 22 then        -- data: trigger counter 15...8
     736              txcnt <= txcnt + 1;
     737              tx_data_sig <= conv_std_logic_vector(rate_array_rs485(4),32)(15 downto 8);
     738              tx_start_sig <= '1';
     739              FTU_rs485_control_State <= READ_RATES_TRANSMIT;
     740            elsif txcnt = 23 then        -- data: trigger counter 23...16
     741              txcnt <= txcnt + 1;
     742              tx_data_sig <= conv_std_logic_vector(rate_array_rs485(4),32)(23 downto 16);
     743              tx_start_sig <= '1';
     744              FTU_rs485_control_State <= READ_RATES_TRANSMIT;
     745            elsif txcnt = 24 then        -- data: trigger counter 31...24
     746              txcnt <= txcnt + 1;
     747              tx_data_sig <= conv_std_logic_vector(rate_array_rs485(4),32)(31 downto 24);
     748              tx_start_sig <= '1';
     749              FTU_rs485_control_State <= READ_RATES_TRANSMIT;
     750            elsif txcnt = 25 then        -- data: overflow register
    666751              txcnt <= txcnt + 1;
    667752              tx_data_sig <= overflow_array_rs485_in;
    668753              tx_start_sig <= '1';
    669754              FTU_rs485_control_State <= READ_RATES_TRANSMIT;
    670             elsif txcnt = 15 then        -- check sum
     755            elsif txcnt = ((RS485_BLOCK_WIDTH / 8) - 2) then        -- CRC error counter
     756              txcnt <= txcnt + 1;
     757              tx_data_sig <= "00000000";  -- NOT YET IMPLEMENTED!!!
     758              tx_start_sig <= '1';
     759              FTU_rs485_control_State <= READ_RATES_TRANSMIT;
     760            elsif txcnt = ((RS485_BLOCK_WIDTH / 8) - 1) then        -- check sum
    671761              txcnt <= txcnt + 1;
    672762              tx_data_sig <= "00000000";  -- NOT YET IMPLEMENTED!!!
     
    699789              tx_start_sig <= '1';
    700790              FTU_rs485_control_State <= READ_DAC_TRANSMIT;
    701             elsif txcnt = 3 then        -- mirrored command
     791            elsif txcnt = 3 then        -- firmware ID
     792              txcnt <= txcnt + 1;
     793              tx_data_sig <= FIRMWARE_ID;
     794              tx_start_sig <= '1';
     795              FTU_rs485_control_State <= READ_DAC_TRANSMIT;
     796            elsif txcnt = 4 then        -- mirrored command
    702797              txcnt <= txcnt + 1;
    703798              tx_data_sig <= "00000001";
    704799              tx_start_sig <= '1';
    705800              FTU_rs485_control_State <= READ_DAC_TRANSMIT;
    706             elsif txcnt = 4 then        -- data: DAC A low
     801            elsif txcnt = 5 then        -- data: DAC A low
    707802              txcnt <= txcnt + 1;
    708803              tx_data_sig <= conv_std_logic_vector(dac_array_rs485_in(0),16)(7 downto 0);
    709804              tx_start_sig <= '1';
    710805              FTU_rs485_control_State <= READ_DAC_TRANSMIT;
    711             elsif txcnt = 5 then        -- data: DAC A high
     806            elsif txcnt = 6 then        -- data: DAC A high
    712807              txcnt <= txcnt + 1;
    713808              tx_data_sig <= conv_std_logic_vector(dac_array_rs485_in(0),16)(15 downto 8);
    714809              tx_start_sig <= '1';
    715810              FTU_rs485_control_State <= READ_DAC_TRANSMIT;
    716             elsif txcnt = 6 then        -- data: DAC B low
     811            elsif txcnt = 7 then        -- data: DAC B low
    717812              txcnt <= txcnt + 1;
    718813              tx_data_sig <= conv_std_logic_vector(dac_array_rs485_in(1),16)(7 downto 0);
    719814              tx_start_sig <= '1';
    720815              FTU_rs485_control_State <= READ_DAC_TRANSMIT;
    721             elsif txcnt = 7 then        -- data: DAC B high
     816            elsif txcnt = 8 then        -- data: DAC B high
    722817              txcnt <= txcnt + 1;
    723818              tx_data_sig <= conv_std_logic_vector(dac_array_rs485_in(1),16)(15 downto 8);
    724819              tx_start_sig <= '1';
    725820              FTU_rs485_control_State <= READ_DAC_TRANSMIT;
    726             elsif txcnt = 8 then        -- data: DAC C low
     821            elsif txcnt = 9 then        -- data: DAC C low
    727822              txcnt <= txcnt + 1;
    728823              tx_data_sig <= conv_std_logic_vector(dac_array_rs485_in(2),16)(7 downto 0);
    729824              tx_start_sig <= '1';
    730825              FTU_rs485_control_State <= READ_DAC_TRANSMIT;
    731             elsif txcnt = 9 then        -- data: DAC C high
     826            elsif txcnt = 10 then        -- data: DAC C high
    732827              txcnt <= txcnt + 1;
    733828              tx_data_sig <= conv_std_logic_vector(dac_array_rs485_in(2),16)(15 downto 8);
    734829              tx_start_sig <= '1';
    735830              FTU_rs485_control_State <= READ_DAC_TRANSMIT;
    736             elsif txcnt = 10 then        -- data: DAC D low
     831            elsif txcnt = 11 then        -- data: DAC D low
    737832              txcnt <= txcnt + 1;
    738833              tx_data_sig <= conv_std_logic_vector(dac_array_rs485_in(3),16)(7 downto 0);
    739834              tx_start_sig <= '1';
    740835              FTU_rs485_control_State <= READ_DAC_TRANSMIT;
    741             elsif txcnt = 11 then        -- data: DAC D high
     836            elsif txcnt = 12 then        -- data: DAC D high
    742837              txcnt <= txcnt + 1;
    743838              tx_data_sig <= conv_std_logic_vector(dac_array_rs485_in(3),16)(15 downto 8);
    744839              tx_start_sig <= '1';
    745840              FTU_rs485_control_State <= READ_DAC_TRANSMIT;
    746             elsif txcnt = 12 then        -- data: DAC E low
     841            elsif txcnt = 13 then        -- data: DAC E low
    747842              txcnt <= txcnt + 1;
    748843              tx_data_sig <= conv_std_logic_vector(dac_array_rs485_in(7),16)(7 downto 0);
    749844              tx_start_sig <= '1';
    750845              FTU_rs485_control_State <= READ_DAC_TRANSMIT;
    751             elsif txcnt = 13 then        -- data: DAC E high
     846            elsif txcnt = 14 then        -- data: DAC E high
    752847              txcnt <= txcnt + 1;
    753848              tx_data_sig <= conv_std_logic_vector(dac_array_rs485_in(7),16)(15 downto 8);
    754849              tx_start_sig <= '1';
    755850              FTU_rs485_control_State <= READ_DAC_TRANSMIT;
    756             elsif txcnt < 15 then        -- data: not used
     851            elsif txcnt < ((RS485_BLOCK_WIDTH / 8) - 2) then        -- data: not used
    757852              txcnt <= txcnt + 1;
    758853              tx_data_sig <= "00000000";
    759854              tx_start_sig <= '1';
    760855              FTU_rs485_control_State <= READ_DAC_TRANSMIT;
    761             elsif txcnt = 15 then        -- check sum
     856            elsif txcnt = ((RS485_BLOCK_WIDTH / 8) - 2) then        -- CRC error counter
     857              txcnt <= txcnt + 1;
     858              tx_data_sig <= "00000000";  -- NOT YET IMPLEMENTED!!!
     859              tx_start_sig <= '1';
     860              FTU_rs485_control_State <= READ_DAC_TRANSMIT;
     861            elsif txcnt = ((RS485_BLOCK_WIDTH / 8) - 1) then        -- check sum
    762862              txcnt <= txcnt + 1;
    763863              tx_data_sig <= "00000000";  -- NOT YET IMPLEMENTED!!!
     
    790890              tx_start_sig <= '1';
    791891              FTU_rs485_control_State <= READ_ENABLE_TRANSMIT;
    792             elsif txcnt = 3 then        -- mirrored command
     892            elsif txcnt = 3 then        -- firmware ID
     893              txcnt <= txcnt + 1;
     894              tx_data_sig <= FIRMWARE_ID;
     895              tx_start_sig <= '1';
     896              FTU_rs485_control_State <= READ_ENABLE_TRANSMIT;
     897            elsif txcnt = 4 then        -- mirrored command
    793898              txcnt <= txcnt + 1;
    794899              tx_data_sig <= "00000100";
    795900              tx_start_sig <= '1';
    796901              FTU_rs485_control_State <= READ_ENABLE_TRANSMIT;
    797             elsif txcnt = 4 then        -- data: enable pattern A7-0
     902            elsif txcnt = 5 then        -- data: enable pattern A7-0
    798903              txcnt <= txcnt + 1;
    799904              tx_data_sig <= enable_array_rs485_in(0)(7 downto 0);
    800905              tx_start_sig <= '1';
    801906              FTU_rs485_control_State <= READ_ENABLE_TRANSMIT;
    802             elsif txcnt = 5 then        -- data: enable pattern A8
     907            elsif txcnt = 6 then        -- data: enable pattern A8
    803908              txcnt <= txcnt + 1;
    804909              tx_data_sig <= enable_array_rs485_in(0)(15 downto 8);
    805910              tx_start_sig <= '1';
    806911              FTU_rs485_control_State <= READ_ENABLE_TRANSMIT;
    807             elsif txcnt = 6 then        -- data: enable pattern B7-0
     912            elsif txcnt = 7 then        -- data: enable pattern B7-0
    808913              txcnt <= txcnt + 1;
    809914              tx_data_sig <= enable_array_rs485_in(1)(7 downto 0);
    810915              tx_start_sig <= '1';
    811916              FTU_rs485_control_State <= READ_ENABLE_TRANSMIT;
    812             elsif txcnt = 7 then        -- data: enable pattern B8
     917            elsif txcnt = 8 then        -- data: enable pattern B8
    813918              txcnt <= txcnt + 1;
    814919              tx_data_sig <= enable_array_rs485_in(1)(15 downto 8);
    815920              tx_start_sig <= '1';
    816921              FTU_rs485_control_State <= READ_ENABLE_TRANSMIT;
    817             elsif txcnt = 8 then        -- data: enable pattern C7-0
     922            elsif txcnt = 9 then        -- data: enable pattern C7-0
    818923              txcnt <= txcnt + 1;
    819924              tx_data_sig <= enable_array_rs485_in(2)(7 downto 0);
    820925              tx_start_sig <= '1';
    821926              FTU_rs485_control_State <= READ_ENABLE_TRANSMIT;
    822             elsif txcnt = 9 then        -- data: enable pattern C8
     927            elsif txcnt = 10 then        -- data: enable pattern C8
    823928              txcnt <= txcnt + 1;
    824929              tx_data_sig <= enable_array_rs485_in(2)(15 downto 8);
    825930              tx_start_sig <= '1';
    826931              FTU_rs485_control_State <= READ_ENABLE_TRANSMIT;
    827             elsif txcnt = 10 then        -- data: enable pattern D7-0
     932            elsif txcnt = 11 then        -- data: enable pattern D7-0
    828933              txcnt <= txcnt + 1;
    829934              tx_data_sig <= enable_array_rs485_in(3)(7 downto 0);
    830935              tx_start_sig <= '1';
    831936              FTU_rs485_control_State <= READ_ENABLE_TRANSMIT;
    832             elsif txcnt = 11 then        -- data: enable pattern D8
     937            elsif txcnt = 12 then        -- data: enable pattern D8
    833938              txcnt <= txcnt + 1;
    834939              tx_data_sig <= enable_array_rs485_in(3)(15 downto 8);
    835940              tx_start_sig <= '1';
    836941              FTU_rs485_control_State <= READ_ENABLE_TRANSMIT;
    837             elsif txcnt < 15 then        -- data: not used
     942            elsif txcnt < ((RS485_BLOCK_WIDTH / 8) - 2) then        -- data: not used
    838943              txcnt <= txcnt + 1;
    839944              tx_data_sig <= "00000000";
    840945              tx_start_sig <= '1';
    841946              FTU_rs485_control_State <= READ_ENABLE_TRANSMIT;
    842             elsif txcnt = 15 then        -- check sum
     947            elsif txcnt = ((RS485_BLOCK_WIDTH / 8) - 2) then        -- CRC error counter
     948              txcnt <= txcnt + 1;
     949              tx_data_sig <= "00000000";  -- NOT YET IMPLEMENTED!!!
     950              tx_start_sig <= '1';
     951              FTU_rs485_control_State <= READ_ENABLE_TRANSMIT;
     952            elsif txcnt = ((RS485_BLOCK_WIDTH / 8) - 1) then        -- check sum
    843953              txcnt <= txcnt + 1;
    844954              tx_data_sig <= "00000000";  -- NOT YET IMPLEMENTED!!!
     
    871981              tx_start_sig <= '1';
    872982              FTU_rs485_control_State <= READ_PRESCALING_TRANSMIT;
    873             elsif txcnt = 3 then        -- mirrored command
     983            elsif txcnt = 3 then        -- firmware ID
     984              txcnt <= txcnt + 1;
     985              tx_data_sig <= FIRMWARE_ID;
     986              tx_start_sig <= '1';
     987              FTU_rs485_control_State <= READ_PRESCALING_TRANSMIT;
     988            elsif txcnt = 4 then        -- mirrored command
    874989              txcnt <= txcnt + 1;
    875990              tx_data_sig <= "00000111";
    876991              tx_start_sig <= '1';
    877992              FTU_rs485_control_State <= READ_PRESCALING_TRANSMIT;
    878             elsif txcnt = 4 then        -- data: prescaling
     993            elsif txcnt = 5 then        -- data: prescaling
    879994              txcnt <= txcnt + 1;
    880995              tx_data_sig <= prescaling_rs485_in;
    881996              tx_start_sig <= '1';
    882997              FTU_rs485_control_State <= READ_PRESCALING_TRANSMIT;
    883             elsif txcnt = 5 then        -- data: overflow register
     998            elsif txcnt = 6 then        -- data: overflow register
    884999              txcnt <= txcnt + 1;
    8851000              tx_data_sig <= overflow_array_rs485_in;
    8861001              tx_start_sig <= '1';
    8871002              FTU_rs485_control_State <= READ_PRESCALING_TRANSMIT;
    888             elsif txcnt < 15 then        -- data: not used
     1003            elsif txcnt < ((RS485_BLOCK_WIDTH / 8) - 2) then        -- data: not used
    8891004              txcnt <= txcnt + 1;
    8901005              tx_data_sig <= "00000000";
    8911006              tx_start_sig <= '1';
    8921007              FTU_rs485_control_State <= READ_PRESCALING_TRANSMIT;
    893             elsif txcnt = 15 then        -- check sum
     1008            elsif txcnt = ((RS485_BLOCK_WIDTH / 8) - 2) then        -- CRC error counter
     1009              txcnt <= txcnt + 1;
     1010              tx_data_sig <= "00000000";  -- NOT YET IMPLEMENTED!!!
     1011              tx_start_sig <= '1';
     1012              FTU_rs485_control_State <= READ_PRESCALING_TRANSMIT;
     1013            elsif txcnt = ((RS485_BLOCK_WIDTH / 8) - 1) then        -- check sum
    8941014              txcnt <= txcnt + 1;
    8951015              tx_data_sig <= "00000000";  -- NOT YET IMPLEMENTED!!!
     
    9221042              tx_start_sig <= '1';
    9231043              FTU_rs485_control_State <= PING_PONG_TRANSMIT;
    924             elsif txcnt = 3 then        -- mirrored command
     1044            elsif txcnt = 3 then        -- firmware ID
     1045              txcnt <= txcnt + 1;
     1046              tx_data_sig <= FIRMWARE_ID;
     1047              tx_start_sig <= '1';
     1048              FTU_rs485_control_State <= PING_PONG_TRANSMIT;
     1049            elsif txcnt = 4 then        -- mirrored command
    9251050              txcnt <= txcnt + 1;
    9261051              tx_data_sig <= "00000101";
    9271052              tx_start_sig <= '1';
    9281053              FTU_rs485_control_State <= PING_PONG_TRANSMIT;
    929             elsif txcnt = 4 then        -- data: device DNA
     1054            elsif txcnt = 5 then        -- data: device DNA
    9301055              txcnt <= txcnt + 1;
    9311056              tx_data_sig <= dna(7 downto 0);
    9321057              tx_start_sig <= '1';
    9331058              FTU_rs485_control_State <= PING_PONG_TRANSMIT;
    934             elsif txcnt = 5 then        -- data: device DNA
     1059            elsif txcnt = 6 then        -- data: device DNA
    9351060              txcnt <= txcnt + 1;
    9361061              tx_data_sig <= dna(15 downto 8);
    9371062              tx_start_sig <= '1';
    9381063              FTU_rs485_control_State <= PING_PONG_TRANSMIT;
    939             elsif txcnt = 6 then        -- data: device DNA
     1064            elsif txcnt = 7 then        -- data: device DNA
    9401065              txcnt <= txcnt + 1;
    9411066              tx_data_sig <= dna(23 downto 16);
    9421067              tx_start_sig <= '1';
    9431068              FTU_rs485_control_State <= PING_PONG_TRANSMIT;
    944             elsif txcnt = 7 then        -- data: device DNA
     1069            elsif txcnt = 8 then        -- data: device DNA
    9451070              txcnt <= txcnt + 1;
    9461071              tx_data_sig <= dna(31 downto 24);
    9471072              tx_start_sig <= '1';
    9481073              FTU_rs485_control_State <= PING_PONG_TRANSMIT;
    949             elsif txcnt = 8 then        -- data: device DNA
     1074            elsif txcnt = 9 then        -- data: device DNA
    9501075              txcnt <= txcnt + 1;
    9511076              tx_data_sig <= dna(39 downto 32);
    9521077              tx_start_sig <= '1';
    9531078              FTU_rs485_control_State <= PING_PONG_TRANSMIT;
    954             elsif txcnt = 9 then        -- data: device DNA
     1079            elsif txcnt = 10 then        -- data: device DNA
    9551080              txcnt <= txcnt + 1;
    9561081              tx_data_sig <= dna(47 downto 40);
    9571082              tx_start_sig <= '1';
    9581083              FTU_rs485_control_State <= PING_PONG_TRANSMIT;
    959             elsif txcnt = 10 then       -- data: device DNA
     1084            elsif txcnt = 11 then       -- data: device DNA
    9601085              txcnt <= txcnt + 1;
    9611086              tx_data_sig <= dna(55 downto 48);
    9621087              tx_start_sig <= '1';
    9631088              FTU_rs485_control_State <= PING_PONG_TRANSMIT;
    964             elsif txcnt = 11 then       -- data: device DNA
     1089            elsif txcnt = 12 then       -- data: device DNA
    9651090              txcnt <= txcnt + 1;
    9661091              tx_data_sig <= dna(63 downto 56);
    9671092              tx_start_sig <= '1';
    9681093              FTU_rs485_control_State <= PING_PONG_TRANSMIT;
    969             elsif txcnt < 15 then        -- data: not used
     1094            elsif txcnt < ((RS485_BLOCK_WIDTH / 8) - 2) then        -- data: not used
    9701095              txcnt <= txcnt + 1;
    9711096              tx_data_sig <= "00000000";
    9721097              tx_start_sig <= '1';
    9731098              FTU_rs485_control_State <= PING_PONG_TRANSMIT;
    974             elsif txcnt = 15 then        -- check sum
     1099            elsif txcnt = ((RS485_BLOCK_WIDTH / 8) - 2) then        -- CRC error counter
     1100              txcnt <= txcnt + 1;
     1101              tx_data_sig <= "00000000";  -- NOT YET IMPLEMENTED!!!
     1102              tx_start_sig <= '1';
     1103              FTU_rs485_control_State <= PING_PONG_TRANSMIT;
     1104            elsif txcnt = ((RS485_BLOCK_WIDTH / 8) - 1) then        -- check sum
    9751105              txcnt <= txcnt + 1;
    9761106              tx_data_sig <= "00000000";  -- NOT YET IMPLEMENTED!!!
  • firmware/FTU/rs485/FTU_rs485_interface.vhd

    r9928 r10037  
    3434    -- FPGA
    3535    rx_data  : OUT    std_logic_vector (7 DOWNTO 0);
    36     rx_busy  : OUT    std_logic  := '0';
     36    --rx_busy  : OUT    std_logic  := '0';
    3737    rx_valid : OUT    std_logic  := '0';
    3838    tx_data  : IN     std_logic_vector (7 DOWNTO 0);
     
    122122  rx_en <= flow_ctrl;
    123123  rx_data <= rx_sr;
    124   rx_busy <= '1' when (rx_bitcnt < 11) else '0';
     124  --rx_busy <= '1' when (rx_bitcnt < 11) else '0';
    125125
    126126END ARCHITECTURE beha;
  • firmware/FTU/rs485/FTU_rs485_interpreter.vhd

    r10009 r10037  
    105105
    106106        when DECODE => -- decode instruction
    107           if(data_block(31 downto 24) = "00000000") then -- set DACs
     107          if(data_block(39 downto 32) = "00000000") then -- set DACs
    108108            int_new_DACs        <= '1';
    109109            int_new_enables     <= '0';
     
    114114            int_read_prescaling <= '0';
    115115            int_ping_pong       <= '0';
    116             dac_array_rs485_out_sig <= (conv_integer(unsigned(data_block(43 downto 32))),
    117                                         conv_integer(unsigned(data_block(59 downto 48))),
    118                                         conv_integer(unsigned(data_block(75 downto 64))),
    119                                         conv_integer(unsigned(data_block(91 downto 80))),
     116            dac_array_rs485_out_sig <= (conv_integer(unsigned(data_block(51 downto 40))),
     117                                        conv_integer(unsigned(data_block(67 downto 56))),
     118                                        conv_integer(unsigned(data_block(83 downto 72))),
     119                                        conv_integer(unsigned(data_block(99 downto 88))),
    120120                                        DEFAULT_DAC(4),
    121121                                        DEFAULT_DAC(5),
    122122                                        DEFAULT_DAC(6),
    123                                         conv_integer(unsigned(data_block(107 downto 96)))
     123                                        conv_integer(unsigned(data_block(115 downto 104)))
    124124                                        );
    125125            FTU_rs485_interpreter_State <= WAIT_FOR_DATA;
    126           elsif (data_block(31 downto 24) = "00000001") then -- read DACs
     126          elsif (data_block(39 downto 32) = "00000001") then -- read DACs
    127127            int_new_DACs        <= '0';
    128128            int_new_enables     <= '0';
     
    134134            int_ping_pong       <= '0';
    135135            FTU_rs485_interpreter_State <= WAIT_FOR_DATA;
    136           elsif (data_block(31 downto 24) = "00000010") then -- read rates
     136          elsif (data_block(39 downto 32) = "00000010") then -- read rates
    137137            int_new_DACs        <= '0';
    138138            int_new_enables     <= '0';
     
    144144            int_ping_pong       <= '0';
    145145            FTU_rs485_interpreter_State <= WAIT_FOR_DATA;
    146           elsif (data_block(31 downto 24) = "00000011") then -- set enables
     146          elsif (data_block(39 downto 32) = "00000011") then -- set enables
    147147            int_new_DACs        <= '0';
    148148            int_new_enables     <= '1';
     
    153153            int_read_prescaling <= '0';
    154154            int_ping_pong       <= '0';
    155             enable_array_rs485_out_sig <= (data_block(47 downto 32),
    156                                            data_block(63 downto 48),
    157                                            data_block(79 downto 64),
    158                                            data_block(95 downto 80)
     155            enable_array_rs485_out_sig <= (data_block(55 downto 40),
     156                                           data_block(71 downto 56),
     157                                           data_block(87 downto 72),
     158                                           data_block(103 downto 88)
    159159                                           );
    160160            FTU_rs485_interpreter_State <= WAIT_FOR_DATA;
    161           elsif (data_block(31 downto 24) = "00000100") then -- read enables
     161          elsif (data_block(39 downto 32) = "00000100") then -- read enables
    162162            int_new_DACs        <= '0';
    163163            int_new_enables     <= '0';
     
    169169            int_ping_pong       <= '0';
    170170            FTU_rs485_interpreter_State <= WAIT_FOR_DATA;
    171           elsif (data_block(31 downto 24) = "00000110") then -- set counter mode
     171          elsif (data_block(39 downto 32) = "00000110") then -- set counter mode
    172172            int_new_DACs        <= '0';
    173173            int_new_enables     <= '0';
     
    178178            int_read_prescaling <= '0';
    179179            int_ping_pong       <= '0';
    180             prescaling_rs485_out_sig <= data_block(39 downto 32);
    181             FTU_rs485_interpreter_State <= WAIT_FOR_DATA;
    182           elsif (data_block(31 downto 24) = "00000111") then -- read counter mode
     180            prescaling_rs485_out_sig <= data_block(47 downto 40);
     181            FTU_rs485_interpreter_State <= WAIT_FOR_DATA;
     182          elsif (data_block(39 downto 32) = "00000111") then -- read counter mode
    183183            int_new_DACs        <= '0';
    184184            int_new_enables     <= '0';
     
    190190            int_ping_pong       <= '0';
    191191            FTU_rs485_interpreter_State <= WAIT_FOR_DATA;
    192           elsif (data_block(31 downto 24) = "00000101") then -- ping pong
     192          elsif (data_block(39 downto 32) = "00000101") then -- ping pong
    193193            int_new_DACs        <= '0';
    194194            int_new_enables     <= '0';
Note: See TracChangeset for help on using the changeset viewer.