@@ -24,83 +24,85 @@ NeoPixel LED Controller based on MAX10 FPGA.
2424| spi_miso_o | PIN_P9 | neopixel_code_o[ 1] | PIN_P3 | neopixel_code_o[ 9] | PIN_A5 |
2525| - | | neopixel_code_o[ 0] | PIN_M4 | neopixel_code_o[ 8] | PIN_B4 |
2626
27- * SPI slave mode: F_MAX=30MHz , CPOL=0, CPHA=0, MSB first
27+ * SPI slave mode: F_MAX=20MHz , CPOL=0, CPHA=0, MSB first
2828
2929## Commands
3030
3131### CONF_WR
3232
33- | Inst / Para | D/C | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | HEX |
34- | :---------: | --: | -: | -: | -: | -: | -: | -: | -: | -: | --: |
35- | CONF_WR | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 2Ah |
36- | 1st Param | 1 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
37- | 2nd Param | 1 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
38- | 3rd Param | 1 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
39- | 4th Param | 1 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
40- | 5th Param | 1 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
41- | 6th Param | 1 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
33+ | Inst / Para | D/C | R/W | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | HEX |
34+ | :---------: | --: | --: | - : | -: | -: | -: | -: | -: | -: | -: | --: |
35+ | CONF_WR | 0 | W | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 2Ah |
36+ | 1st Param | 1 | W | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
37+ | 2nd Param | 1 | W | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
38+ | 3rd Param | 1 | W | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
39+ | 4th Param | 1 | W | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
40+ | 5th Param | 1 | W | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
41+ | 6th Param | 1 | W | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
4242
4343* 1st Param: T0H time (10 ns), range: 0 - 255
4444* 2nd Param: T0L time (10 ns), range: 0 - 255
4545* 3rd Param: T1H time (10 ns), range: 0 - 255
4646* 4th Param: T1L time (10 ns), range: 0 - 255
47- * 5th Param: channel length, range: 0 - 255
48- * 6th Param: channel count, range: 0 - 15
47+ * 5th Param: Channel length, range: 0 - 255
48+ * 6th Param: Channel count, range: 0 - 15
4949
5050### ADDR_WR
5151
52- | Inst / Para | D/C | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | HEX |
53- | :---------: | --: | -: | -: | -: | -: | -: | -: | -: | -: | --: |
54- | ADDR_WR | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 2Bh |
55- | 1st Param | 1 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
56- | ... | 1 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
57- | Nth Param | 1 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
52+ | Inst / Para | D/C | R/W | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | HEX |
53+ | :---------: | --: | --: | - : | -: | -: | -: | -: | -: | -: | -: | --: |
54+ | ADDR_WR | 0 | W | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 2Bh |
55+ | 1st Param | 1 | W | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
56+ | ... | 1 | W | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
57+ | Nth Param | 1 | W | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
5858
59- * 1st Param: channel 0, the next pointer of the 1st color data, range: 0 - 255
60- * 2nd Param: channel 0, the next pointer of the 2nd color data, range: 0 - 255
59+ * 1st Param: Channel 0, the next pointer of the 1st color data, range: 0 - 255
60+ * 2nd Param: Channel 0, the next pointer of the 2nd color data, range: 0 - 255
6161* ...
6262* Nth Param: ...
6363
6464* N_MAX = 256 x 16 = 4096
6565
6666### DATA_WR
6767
68- | Inst / Para | D/C | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | HEX |
69- | :---------: | --: | -: | -: | -: | -: | -: | -: | -: | -: | --: |
70- | DATA_WR | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 2Ch |
71- | 1st Param | 1 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
72- | ... | 1 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
73- | Nth Param | 1 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
74-
75- * 1st Param: channel 0, the 1st color data, byte 2, range: 0 - 255
76- * 2nd Param: channel 0, the 1st color data, byte 1, range: 0 - 255
77- * 3rd Param: channel 0, the 1st color data, byte 0, range: 0 - 255
78- * 4th Param: channel 0, the 2nd color data, byte 2, range: 0 - 255
68+ | Inst / Para | D/C | R/W | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | HEX |
69+ | :---------: | --: | --: | - : | -: | -: | -: | -: | -: | -: | -: | --: |
70+ | DATA_WR | 0 | W | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 2Ch |
71+ | 1st Param | 1 | W | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
72+ | ... | 1 | W | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
73+ | Nth Param | 1 | W | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
74+
75+ * 1st Param: Channel 0, the 1st color data, byte 2, range: 0 - 255
76+ * 2nd Param: Channel 0, the 1st color data, byte 1, range: 0 - 255
77+ * 3rd Param: Channel 0, the 1st color data, byte 0, range: 0 - 255
78+ * 4th Param: Channel 0, the 2nd color data, byte 2, range: 0 - 255
7979* ...
8080* Nth Param: ...
8181
8282* N_MAX = 256 x 16 x 3 = 12288
8383
8484### INFO_RD
8585
86- | Inst / Para | D/C | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | HEX |
87- | :---------: | --: | -: | -: | -: | -: | -: | -: | -: | -: | --: |
88- | INFO_RD | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 3Ah |
89- | 1st Data | 1 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
90- | 2nd Data | 1 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
91- | 3rd Data | 1 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
92- | 4th Data | 1 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
93- | 5th Data | 1 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
94- | 6th Data | 1 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
95- | 7th Data | 1 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
96-
97- * 1st Data: RTL revision, major: {D7..D4}, minor: {D3..D0}
98- * 2nd Data: T0H time (10 ns), range: 0 - 255
99- * 3rd Data: T0L time (10 ns), range: 0 - 255
100- * 4th Data: T1H time (10 ns), range: 0 - 255
101- * 5th Data: T1L time (10 ns), range: 0 - 255
102- * 6th Data: channel length, range: 0 - 255
103- * 7th Data: channel count, range: 0 - 15
86+ | Inst / Para | D/C | R/W | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | HEX |
87+ | :---------: | --: | --: | -: | -: | -: | -: | -: | -: | -: | -: | --: |
88+ | INFO_RD | 0 | W | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 3Ah |
89+ | 1st Data | 1 | R | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 00h |
90+ | 2nd Data | 1 | R | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
91+ | 3rd Data | 1 | R | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
92+ | 4th Data | 1 | R | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
93+ | 5th Data | 1 | R | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
94+ | 6th Data | 1 | R | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
95+ | 7th Data | 1 | R | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
96+ | 7th Data | 1 | R | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | |
97+
98+ * 1st Data: Dummy byte, 0x00
99+ * 2nd Data: RTL revision, major: {D7..D4}, minor: {D3..D0}
100+ * 3rd Data: T0H time (10 ns), range: 0 - 255
101+ * 4th Data: T0L time (10 ns), range: 0 - 255
102+ * 5th Data: T1H time (10 ns), range: 0 - 255
103+ * 6th Data: T1L time (10 ns), range: 0 - 255
104+ * 7th Data: Channel length, range: 0 - 255
105+ * 8th Data: Channel count, range: 0 - 15
104106
105107## Preparing
106108
0 commit comments