35
35
36
36
using namespace utest ::v1;
37
37
38
-
39
38
typedef enum {
40
39
TRANSFER_SPI_MASTER_WRITE_SYNC,
41
40
TRANSFER_SPI_MASTER_BLOCK_WRITE_SYNC,
42
41
TRANSFER_SPI_MASTER_TRANSFER_ASYNC
43
42
} transfer_type_t ;
44
43
45
- #define FREQ_500_KHZ 500000
46
- #define FREQ_1_MHZ 1000000
47
- #define FREQ_2_MHZ 2000000
44
+ typedef enum {
45
+ BUFFERS_COMMON, // common case rx/tx buffers are defined and have the same size
46
+ BUFFERS_TX_GT_RX, // tx buffer length is greater than rx buffer length
47
+ BUFFERS_TX_LT_RX, // tx buffer length is less than rx buffer length
48
+ BUFFERS_TX_ONE_SYM, // one symbol only is transmitted in both directions
49
+ } test_buffers_t ;
50
+
51
+ #define FREQ_200_KHZ (200000ull )
52
+ #define FREQ_500_KHZ (500000 )
53
+ #define FREQ_1_MHZ (1000000 )
54
+ #define FREQ_2_MHZ (2000000 )
55
+ #define FREQ_10_MHZ (10000000ull )
48
56
#define FREQ_MIN ((uint32_t )0 )
49
57
#define FREQ_MAX ((uint32_t )-1 )
58
+ #define FILL_SYM (0xF5F5F5F5 )
59
+ #define DUMMY_SYM (0xD5D5D5D5 )
60
+
61
+ #define SS_ASSERT (0 )
62
+ #define SS_DEASSERT (!(SS_ASSERT))
50
63
51
64
#define TEST_CAPABILITY_BIT (MASK, CAP ) ((1 << CAP) & (MASK))
52
65
@@ -67,75 +80,165 @@ void spi_async_handler()
67
80
}
68
81
#endif
69
82
83
+ /* Function finds SS pin for manual SS handling. */
84
+ static PinName find_ss_pin (PinName mosi, PinName miso, PinName sclk)
85
+ {
86
+ const PinList *ff_pins_list = pinmap_ff_default_pins ();
87
+ const PinList *restricted_pins_list = pinmap_restricted_pins ();
88
+ uint32_t cs_pin_idx;
89
+
90
+ for (cs_pin_idx = 0 ; cs_pin_idx < ff_pins_list->count ; cs_pin_idx++) {
91
+ if (ff_pins_list->pins [cs_pin_idx] == mosi ||
92
+ ff_pins_list->pins [cs_pin_idx] == miso ||
93
+ ff_pins_list->pins [cs_pin_idx] == sclk) {
94
+ continue ;
95
+ }
96
+
97
+ bool restricted_pin = false ;
98
+ for (uint32_t i = 0 ; i < restricted_pins_list->count ; i++) {
99
+ if (ff_pins_list->pins [cs_pin_idx] == restricted_pins_list->pins [i]) {
100
+ restricted_pin = true ;
101
+ }
102
+ }
103
+
104
+ if (restricted_pin) {
105
+ continue ;
106
+ } else {
107
+ break ;
108
+ }
109
+ }
110
+
111
+ PinName ssel = (cs_pin_idx == ff_pins_list->count ? NC : ff_pins_list->pins [cs_pin_idx]);
112
+
113
+ TEST_ASSERT_MESSAGE (ssel != NC, " Unable to find pin for Chip Select" );
114
+
115
+ return ssel;
116
+ }
117
+
118
+ /* Function handles ss line if ss is specified. */
119
+ static void handle_ss (DigitalOut *ss, bool select)
120
+ {
121
+ if (ss) {
122
+ if (select) {
123
+ *ss = SS_ASSERT;
124
+ } else {
125
+ *ss = SS_DEASSERT;
126
+ }
127
+ }
128
+ }
129
+
70
130
/* Auxiliary function to check platform capabilities against test case. */
71
- static bool check_capabilities (const spi_capabilities_t *capabilities, SPITester::SpiMode spi_mode, uint32_t sym_size, transfer_type_t transfer_type, uint32_t frequency)
131
+ static bool check_capabilities (const spi_capabilities_t *capabilities, SPITester::SpiMode spi_mode, uint32_t sym_size, transfer_type_t transfer_type, uint32_t frequency, test_buffers_t test_buffers )
72
132
{
73
133
// Symbol size
74
134
if (!TEST_CAPABILITY_BIT (capabilities->word_length , (sym_size - 1 ))) {
75
- utest_printf (" \n <Specified symbol size is not supported on this platform> skipped " );
135
+ utest_printf (" \n <Specified symbol size is not supported on this platform> skipped. " );
76
136
return false ;
77
137
}
78
138
79
139
// SPI clock mode
80
140
if (!TEST_CAPABILITY_BIT (capabilities->clk_modes , spi_mode)) {
81
- utest_printf (" \n <Specified spi clock mode is not supported on this platform> skipped" );
141
+ utest_printf (" \n <Specified spi clock mode is not supported on this platform> skipped. " );
82
142
return false ;
83
143
}
84
144
85
145
// Frequency
86
146
if (frequency != FREQ_MAX && frequency != FREQ_MIN && frequency < capabilities->minimum_frequency && frequency > capabilities->maximum_frequency ) {
87
- utest_printf (" \n <Specified frequency is not supported on this platform> skipped " );
147
+ utest_printf (" \n <Specified frequency is not supported on this platform> skipped. " );
88
148
return false ;
89
149
}
90
150
91
151
// Async mode
92
152
if (transfer_type == TRANSFER_SPI_MASTER_TRANSFER_ASYNC && capabilities->async_mode == false ) {
93
- utest_printf (" \n <Async mode is not supported on this platform> skipped " );
153
+ utest_printf (" \n <Async mode is not supported on this platform> skipped. " );
154
+ return false ;
155
+ }
156
+
157
+ if ((test_buffers == BUFFERS_TX_GT_RX || test_buffers == BUFFERS_TX_LT_RX) && capabilities->tx_rx_buffers_equal_length == true ) {
158
+ utest_printf (" \n <RX length != TX length is not supported on this platform> skipped. " );
94
159
return false ;
95
160
}
96
161
97
162
return true ;
98
163
}
99
164
100
- void fpga_spi_test_init_free (PinName mosi, PinName miso, PinName sclk, PinName ssel )
165
+ void fpga_spi_test_init_free (PinName mosi, PinName miso, PinName sclk)
101
166
{
102
- spi_init (&spi, mosi, miso, sclk, ssel );
103
- spi_format (&spi, 8 , SPITester::Mode0 , 0 );
167
+ spi_init (&spi, mosi, miso, sclk, NC );
168
+ spi_format (&spi, 8 , 0 , 0 );
104
169
spi_frequency (&spi, 1000000 );
105
170
spi_free (&spi);
106
171
}
107
172
108
- void fpga_spi_test_common (PinName mosi, PinName miso, PinName sclk, PinName ssel, SPITester::SpiMode spi_mode, uint32_t sym_size, transfer_type_t transfer_type, uint32_t frequency, bool init_direct)
173
+ void fpga_spi_test_common (PinName mosi, PinName miso, PinName sclk, PinName ssel, SPITester::SpiMode spi_mode, uint32_t sym_size, transfer_type_t transfer_type, uint32_t frequency, test_buffers_t test_buffers, bool auto_ss, bool init_direct)
109
174
{
110
175
spi_capabilities_t capabilities;
111
-
176
+ uint32_t freq = frequency;
177
+ uint32_t tx_cnt = TRANSFER_COUNT;
178
+ uint32_t rx_cnt = TRANSFER_COUNT;
179
+ uint8_t fill_symbol = (uint8_t )FILL_SYM;
180
+ PinName ss_pin = (auto_ss ? ssel : NC);
181
+ DigitalOut *ss = NULL ;
112
182
113
183
spi_get_capabilities (ssel, false , &capabilities);
114
184
115
- if (check_capabilities (&capabilities, spi_mode, sym_size, transfer_type, frequency) == false ) {
185
+ if (check_capabilities (&capabilities, spi_mode, sym_size, transfer_type, frequency, test_buffers ) == false ) {
116
186
return ;
117
187
}
118
188
119
189
uint32_t sym_mask = ((1 << sym_size) - 1 );
120
190
191
+ switch (frequency) {
192
+ case (FREQ_MIN):
193
+ freq = capabilities.minimum_frequency ;
194
+ break ;
195
+ case (FREQ_MAX):
196
+ freq = capabilities.maximum_frequency ;
197
+ break ;
198
+ default :
199
+ break ;
200
+ }
201
+
202
+ switch (test_buffers) {
203
+ case (BUFFERS_COMMON):
204
+ // nothing to change
205
+ break ;
206
+ case (BUFFERS_TX_GT_RX):
207
+ rx_cnt /= 2 ;
208
+ break ;
209
+ case (BUFFERS_TX_LT_RX):
210
+ tx_cnt /= 2 ;
211
+ break ;
212
+ case (BUFFERS_TX_ONE_SYM):
213
+ tx_cnt = 1 ;
214
+ rx_cnt = 1 ;
215
+ break ;
216
+
217
+ default :
218
+ break ;
219
+ }
220
+
121
221
// Remap pins for test
122
222
tester.reset ();
123
223
tester.pin_map_set (mosi, MbedTester::LogicalPinSPIMosi);
124
224
tester.pin_map_set (miso, MbedTester::LogicalPinSPIMiso);
125
225
tester.pin_map_set (sclk, MbedTester::LogicalPinSPISclk);
126
226
tester.pin_map_set (ssel, MbedTester::LogicalPinSPISsel);
127
227
128
- // Initialize mbed SPI pins
228
+ // Manually handle SS pin
229
+ if (!auto_ss) {
230
+ ss = new DigitalOut (ssel, SS_DEASSERT);
231
+ }
129
232
130
233
if (init_direct) {
131
- const spi_pinmap_t pinmap = get_spi_pinmap (mosi, miso, sclk, ssel );
234
+ const spi_pinmap_t pinmap = get_spi_pinmap (mosi, miso, sclk, ss_pin );
132
235
spi_init_direct (&spi, &pinmap);
133
236
} else {
134
- spi_init (&spi, mosi, miso, sclk, ssel );
237
+ spi_init (&spi, mosi, miso, sclk, ss_pin );
135
238
}
136
239
137
240
spi_format (&spi, sym_size, spi_mode, 0 );
138
- spi_frequency (&spi, frequency );
241
+ spi_frequency (&spi, freq );
139
242
140
243
// Configure spi_slave module
141
244
tester.set_mode (spi_mode);
@@ -147,34 +250,63 @@ void fpga_spi_test_common(PinName mosi, PinName miso, PinName sclk, PinName ssel
147
250
tester.select_peripheral (SPITester::PeripheralSPI);
148
251
149
252
uint32_t checksum = 0 ;
253
+ uint32_t sym_count = TRANSFER_COUNT;
150
254
int result = 0 ;
151
255
uint8_t tx_buf[TRANSFER_COUNT] = {0 };
152
256
uint8_t rx_buf[TRANSFER_COUNT] = {0 };
153
257
154
258
// Send and receive test data
155
259
switch (transfer_type) {
156
260
case TRANSFER_SPI_MASTER_WRITE_SYNC:
261
+ handle_ss (ss, true );
157
262
for (int i = 0 ; i < TRANSFER_COUNT; i++) {
158
263
uint32_t data = spi_master_write (&spi, (0 - i) & sym_mask);
159
264
TEST_ASSERT_EQUAL (i & sym_mask, data);
160
-
161
265
checksum += (0 - i) & sym_mask;
162
266
}
267
+ handle_ss (ss, false );
163
268
break ;
164
269
165
270
case TRANSFER_SPI_MASTER_BLOCK_WRITE_SYNC:
166
271
for (int i = 0 ; i < TRANSFER_COUNT; i++) {
167
272
tx_buf[i] = (0 - i) & sym_mask;
168
- checksum += (0 - i) & sym_mask;
169
- rx_buf[i] = 0xAA ;
273
+ rx_buf[i] = 0xFF ;
274
+
275
+ switch (test_buffers) {
276
+ case (BUFFERS_COMMON):
277
+ case (BUFFERS_TX_GT_RX):
278
+ checksum += ((0 - i) & sym_mask);
279
+ break ;
280
+ case (BUFFERS_TX_LT_RX):
281
+ if (i < tx_cnt) {
282
+ checksum += ((0 - i) & sym_mask);
283
+ } else {
284
+ checksum += (fill_symbol & sym_mask);
285
+ }
286
+ break ;
287
+ case (BUFFERS_TX_ONE_SYM):
288
+ tx_buf[0 ] = 0xAA ;
289
+ checksum = 0xAA ;
290
+ sym_count = 1 ;
291
+ break ;
292
+ default :
293
+ break ;
294
+ }
170
295
}
171
296
172
- result = spi_master_block_write (&spi, (const char *)tx_buf, TRANSFER_COUNT, (char *)rx_buf, TRANSFER_COUNT, 0xF5 );
297
+ handle_ss (ss, true );
298
+ result = spi_master_block_write (&spi, (const char *)tx_buf, tx_cnt, (char *)rx_buf, rx_cnt, 0xF5 );
299
+ handle_ss (ss, false );
173
300
174
- for (int i = 0 ; i < TRANSFER_COUNT ; i++) {
301
+ for (int i = 0 ; i < rx_cnt ; i++) {
175
302
TEST_ASSERT_EQUAL (i & sym_mask, rx_buf[i]);
176
303
}
177
- TEST_ASSERT_EQUAL (TRANSFER_COUNT, result);
304
+
305
+ for (int i = rx_cnt; i < TRANSFER_COUNT; i++) {
306
+ TEST_ASSERT_EQUAL (0xFF , rx_buf[i]);
307
+ }
308
+
309
+ TEST_ASSERT_EQUAL (sym_count, result);
178
310
break ;
179
311
180
312
#if DEVICE_SPI_ASYNCH
@@ -187,58 +319,76 @@ void fpga_spi_test_common(PinName mosi, PinName miso, PinName sclk, PinName ssel
187
319
188
320
async_trasfer_done = false ;
189
321
322
+ handle_ss (ss, true );
190
323
spi_master_transfer (&spi, tx_buf, TRANSFER_COUNT, rx_buf, TRANSFER_COUNT, 8 , (uint32_t )spi_async_handler, SPI_EVENT_COMPLETE, DMA_USAGE_NEVER);
324
+
191
325
while (!async_trasfer_done);
326
+ handle_ss (ss, false );
192
327
193
328
for (int i = 0 ; i < TRANSFER_COUNT; i++) {
194
329
TEST_ASSERT_EQUAL (i & sym_mask, rx_buf[i]);
195
330
}
196
331
197
332
break ;
198
333
#endif
199
-
200
334
default :
201
335
TEST_ASSERT_MESSAGE (0 , " Unsupported transfer type." );
202
336
break ;
203
337
204
338
}
205
339
206
340
// Verify that the transfer was successful
207
- TEST_ASSERT_EQUAL (TRANSFER_COUNT , tester.get_transfer_count ());
341
+ TEST_ASSERT_EQUAL (sym_count , tester.get_transfer_count ());
208
342
TEST_ASSERT_EQUAL (checksum, tester.get_receive_checksum ());
209
343
210
344
spi_free (&spi);
211
345
tester.reset ();
212
346
}
213
347
214
- template <SPITester::SpiMode spi_mode, uint32_t sym_size, transfer_type_t transfer_type, uint32_t frequency, bool init_direct>
348
+ template <SPITester::SpiMode spi_mode, uint32_t sym_size, transfer_type_t transfer_type, uint32_t frequency, test_buffers_t test_buffers, bool auto_ss, bool init_direct>
215
349
void fpga_spi_test_common (PinName mosi, PinName miso, PinName sclk, PinName ssel)
216
350
{
217
- fpga_spi_test_common (mosi, miso, sclk, ssel, spi_mode, sym_size, transfer_type, frequency, init_direct);
351
+ fpga_spi_test_common (mosi, miso, sclk, ssel, spi_mode, sym_size, transfer_type, frequency, test_buffers, auto_ss, init_direct);
352
+ }
353
+
354
+ template <SPITester::SpiMode spi_mode, uint32_t sym_size, transfer_type_t transfer_type, uint32_t frequency, test_buffers_t test_buffers, bool auto_ss, bool init_direct>
355
+ void fpga_spi_test_common_no_ss (PinName mosi, PinName miso, PinName sclk)
356
+ {
357
+ PinName ssel = find_ss_pin (mosi, miso, sclk);
358
+
359
+ fpga_spi_test_common (mosi, miso, sclk, ssel, spi_mode, sym_size, transfer_type, frequency, test_buffers, auto_ss, init_direct);
218
360
}
219
361
220
362
Case cases[] = {
221
363
// This will be run for all pins
222
- Case (" SPI - init/free test all pins" , all_ports<SPIPort , DefaultFormFactor, fpga_spi_test_init_free>),
364
+ Case (" SPI - init/free test all pins" , all_ports<SPINoCSPort , DefaultFormFactor, fpga_spi_test_init_free>),
223
365
224
366
// This will be run for all peripherals
225
- Case (" SPI - basic test" , all_peripherals<SPIPort , DefaultFormFactor, fpga_spi_test_common <SPITester::Mode0, 8 , TRANSFER_SPI_MASTER_WRITE_SYNC, FREQ_1_MHZ, false > >),
226
- Case (" SPI - basic test (direct init)" , all_peripherals<SPIPort , DefaultFormFactor, fpga_spi_test_common <SPITester::Mode0, 8 , TRANSFER_SPI_MASTER_WRITE_SYNC, FREQ_1_MHZ, true > >),
367
+ Case (" SPI - basic test" , all_peripherals<SPINoCSPort , DefaultFormFactor, fpga_spi_test_common_no_ss <SPITester::Mode0, 8 , TRANSFER_SPI_MASTER_WRITE_SYNC, FREQ_1_MHZ, BUFFERS_COMMON, false , false > >),
368
+ Case (" SPI - basic test (direct init)" , all_peripherals<SPINoCSPort , DefaultFormFactor, fpga_spi_test_common_no_ss <SPITester::Mode0, 8 , TRANSFER_SPI_MASTER_WRITE_SYNC, FREQ_1_MHZ, BUFFERS_COMMON, false , true > >),
227
369
228
370
// This will be run for single pin configuration
229
- Case (" SPI - mode testing (MODE_1)" , one_peripheral<SPIPort, DefaultFormFactor, fpga_spi_test_common<SPITester::Mode1, 8 , TRANSFER_SPI_MASTER_WRITE_SYNC, FREQ_1_MHZ, false > >),
230
- Case (" SPI - mode testing (MODE_2)" , one_peripheral<SPIPort, DefaultFormFactor, fpga_spi_test_common<SPITester::Mode2, 8 , TRANSFER_SPI_MASTER_WRITE_SYNC, FREQ_1_MHZ, false > >),
231
- Case (" SPI - mode testing (MODE_3)" , one_peripheral<SPIPort, DefaultFormFactor, fpga_spi_test_common<SPITester::Mode3, 8 , TRANSFER_SPI_MASTER_WRITE_SYNC, FREQ_1_MHZ, false > >),
232
-
233
- Case (" SPI - symbol size testing (16)" , one_peripheral<SPIPort, DefaultFormFactor, fpga_spi_test_common<SPITester::Mode0, 16 , TRANSFER_SPI_MASTER_WRITE_SYNC, FREQ_1_MHZ, false > >),
234
-
235
- Case (" SPI - frequency testing (500 kHz)" , one_peripheral<SPIPort, DefaultFormFactor, fpga_spi_test_common<SPITester::Mode0, 8 , TRANSFER_SPI_MASTER_WRITE_SYNC, FREQ_500_KHZ, false > >),
236
- Case (" SPI - frequency testing (2 MHz)" , one_peripheral<SPIPort, DefaultFormFactor, fpga_spi_test_common<SPITester::Mode0, 8 , TRANSFER_SPI_MASTER_WRITE_SYNC, FREQ_2_MHZ, false > >),
237
-
238
- Case (" SPI - block write" , one_peripheral<SPIPort, DefaultFormFactor, fpga_spi_test_common<SPITester::Mode0, 8 , TRANSFER_SPI_MASTER_BLOCK_WRITE_SYNC, FREQ_1_MHZ, false > >),
239
-
371
+ Case (" SPI - mode testing (MODE_1)" , one_peripheral<SPINoCSPort, DefaultFormFactor, fpga_spi_test_common_no_ss<SPITester::Mode1, 8 , TRANSFER_SPI_MASTER_WRITE_SYNC, FREQ_1_MHZ, BUFFERS_COMMON, false , false > >),
372
+ Case (" SPI - mode testing (MODE_2)" , one_peripheral<SPINoCSPort, DefaultFormFactor, fpga_spi_test_common_no_ss<SPITester::Mode2, 8 , TRANSFER_SPI_MASTER_WRITE_SYNC, FREQ_1_MHZ, BUFFERS_COMMON, false , false > >),
373
+ Case (" SPI - mode testing (MODE_3)" , one_peripheral<SPINoCSPort, DefaultFormFactor, fpga_spi_test_common_no_ss<SPITester::Mode3, 8 , TRANSFER_SPI_MASTER_WRITE_SYNC, FREQ_1_MHZ, BUFFERS_COMMON, false , false > >),
374
+ Case (" SPI - symbol size testing (4)" , one_peripheral<SPINoCSPort, DefaultFormFactor, fpga_spi_test_common_no_ss<SPITester::Mode0, 4 , TRANSFER_SPI_MASTER_WRITE_SYNC, FREQ_1_MHZ, BUFFERS_COMMON, false , false > >),
375
+ Case (" SPI - symbol size testing (12)" , one_peripheral<SPINoCSPort, DefaultFormFactor, fpga_spi_test_common_no_ss<SPITester::Mode0, 12 , TRANSFER_SPI_MASTER_WRITE_SYNC, FREQ_1_MHZ, BUFFERS_COMMON, false , false > >),
376
+ Case (" SPI - symbol size testing (16)" , one_peripheral<SPINoCSPort, DefaultFormFactor, fpga_spi_test_common_no_ss<SPITester::Mode0, 16 , TRANSFER_SPI_MASTER_WRITE_SYNC, FREQ_1_MHZ, BUFFERS_COMMON, false , false > >),
377
+ Case (" SPI - symbol size testing (24)" , one_peripheral<SPINoCSPort, DefaultFormFactor, fpga_spi_test_common_no_ss<SPITester::Mode0, 24 , TRANSFER_SPI_MASTER_WRITE_SYNC, FREQ_1_MHZ, BUFFERS_COMMON, false , false > >),
378
+ Case (" SPI - symbol size testing (32)" , one_peripheral<SPINoCSPort, DefaultFormFactor, fpga_spi_test_common_no_ss<SPITester::Mode0, 32 , TRANSFER_SPI_MASTER_WRITE_SYNC, FREQ_1_MHZ, BUFFERS_COMMON, false , false > >),
379
+ Case (" SPI - buffers tx > rx" , one_peripheral<SPINoCSPort, DefaultFormFactor, fpga_spi_test_common_no_ss<SPITester::Mode0, 8 , TRANSFER_SPI_MASTER_BLOCK_WRITE_SYNC, FREQ_1_MHZ, BUFFERS_TX_GT_RX, false , false > >),
380
+ Case (" SPI - buffers tx < rx" , one_peripheral<SPINoCSPort, DefaultFormFactor, fpga_spi_test_common_no_ss<SPITester::Mode0, 8 , TRANSFER_SPI_MASTER_BLOCK_WRITE_SYNC, FREQ_1_MHZ, BUFFERS_TX_LT_RX, false , false > >),
381
+ Case (" SPI - frequency testing (200 kHz)" , one_peripheral<SPINoCSPort, DefaultFormFactor, fpga_spi_test_common_no_ss<SPITester::Mode0, 8 , TRANSFER_SPI_MASTER_WRITE_SYNC, FREQ_200_KHZ, BUFFERS_COMMON, false , false > >),
382
+ Case (" SPI - frequency testing (2 MHz)" , one_peripheral<SPINoCSPort, DefaultFormFactor, fpga_spi_test_common_no_ss<SPITester::Mode0, 8 , TRANSFER_SPI_MASTER_WRITE_SYNC, FREQ_2_MHZ, BUFFERS_COMMON, false , false > >),
383
+ Case (" SPI - frequency testing (capabilities min)" , one_peripheral<SPINoCSPort, DefaultFormFactor, fpga_spi_test_common_no_ss<SPITester::Mode0, 8 , TRANSFER_SPI_MASTER_WRITE_SYNC, FREQ_MIN, BUFFERS_COMMON, false , false > >),
384
+ Case (" SPI - frequency testing (capabilities max)" , one_peripheral<SPINoCSPort, DefaultFormFactor, fpga_spi_test_common_no_ss<SPITester::Mode0, 8 , TRANSFER_SPI_MASTER_WRITE_SYNC, FREQ_MAX, BUFFERS_COMMON, false , false > >),
385
+ Case (" SPI - block write" , one_peripheral<SPINoCSPort, DefaultFormFactor, fpga_spi_test_common_no_ss<SPITester::Mode0, 8 , TRANSFER_SPI_MASTER_BLOCK_WRITE_SYNC, FREQ_1_MHZ, BUFFERS_COMMON, false , false > >),
386
+ Case (" SPI - block write(one sym)" , one_peripheral<SPINoCSPort, DefaultFormFactor, fpga_spi_test_common_no_ss<SPITester::Mode0, 8 , TRANSFER_SPI_MASTER_BLOCK_WRITE_SYNC, FREQ_1_MHZ, BUFFERS_TX_ONE_SYM, false , false > >),
387
+ Case (" SPI - hardware ss handling" , one_peripheral<SPIPort, DefaultFormFactor, fpga_spi_test_common<SPITester::Mode0, 8 , TRANSFER_SPI_MASTER_WRITE_SYNC, FREQ_1_MHZ, BUFFERS_COMMON, true , false > >),
388
+ Case (" SPI - hardware ss handling(block)" , one_peripheral<SPIPort, DefaultFormFactor, fpga_spi_test_common<SPITester::Mode0, 8 , TRANSFER_SPI_MASTER_BLOCK_WRITE_SYNC, FREQ_1_MHZ, BUFFERS_COMMON, true , false > >),
240
389
#if DEVICE_SPI_ASYNCH
241
- Case (" SPI - async mode" , one_peripheral<SPIPort, DefaultFormFactor, fpga_spi_test_common<SPITester::Mode0, 8 , TRANSFER_SPI_MASTER_TRANSFER_ASYNC, FREQ_1_MHZ, false > >)
390
+ Case (" SPI - async mode (sw ss)" , one_peripheral<SPINoCSPort, DefaultFormFactor, fpga_spi_test_common_no_ss<SPITester::Mode0, 8 , TRANSFER_SPI_MASTER_TRANSFER_ASYNC, FREQ_1_MHZ, BUFFERS_COMMON, false , false > >),
391
+ Case (" SPI - async mode (hw ss)" , one_peripheral<SPIPort, DefaultFormFactor, fpga_spi_test_common<SPITester::Mode0, 8 , TRANSFER_SPI_MASTER_TRANSFER_ASYNC, FREQ_1_MHZ, BUFFERS_COMMON, true , false > >)
242
392
#endif
243
393
};
244
394
0 commit comments