module sk6812drv (
input clk,rst,
input en,
input [31:0] clr,
input fn,
output wire data, rd
);
parameter wait_time = 3800;
parameter TP = 62; // unstable 52
parameter T0H = 16; // unstable 13
parameter T1H = 32; // unstable 26
reg dat;
reg [31:0] clr_reg;
reg rdr;
reg [5:0] ccn;
reg [7:0] bcn;
reg [15:0] fncn;
assign data = dat;
assign fl = bcn==TP-1;
assign fb = ccn==31&fl;
assign rd = rdr;
always@(posedge clk) begin
clr_reg[31:0] <= en? {clr[24],clr[25],clr[26],clr[27],clr[28],clr[29],clr[30],clr[31],clr[16],clr[17],clr[18],clr[19],clr[20],clr[21],clr[22],clr[23],clr[0],clr[1],clr[2],clr[3],clr[4],clr[5],clr[6],clr[7],clr[8],clr[9],clr[10],clr[11],clr[12],clr[13],clr[14],clr[15]}: clr_reg;
ccn <= rst? 0: en? 0: fb? 0: fl? ccn+1: ccn;
bcn <= rst? 0: en? 0: fl? 0: bcn+1;
fncn <= rst? wait_time: fn? 0: fncn==wait_time? fncn: fncn+1;
dat <= rst? 0: fncn!=wait_time? 0: clr_reg[ccn]&bcn<T1H? 1: clr_reg[ccn]&bcn>=T1H? 0: !clr_reg[ccn]&bcn<T0H? 1: !clr_reg[ccn]&bcn>=T0H? 0: 0;
rdr <= (fncn==wait_time&ccn==31&bcn==TP-4)|(fncn==wait_time-1);
end
endmodule
icon_core icon_inst (
.CONTROL0(ilaw), // INOUT BUS [35:0]
.CONTROL1(viow) // INOUT BUS [35:0]
);
ila_core ila_inst (
.CONTROL(ilaw), // INOUT BUS [35:0]
.CLK(clk), // IN
.TRIG0(ldcn[8:0]), // IN BUS [8:0]
.TRIG1(cn), // IN BUS [9:0]
.TRIG2(clr), // IN BUS [31:0]
.TRIG3(bcn_), // IN BUS [7:0]
.TRIG4(ccn_), // IN BUS [4:0]
.TRIG5(en), // IN BUS [0:0]
.TRIG6(rd), // IN BUS [0:0]
.TRIG7(fn), // IN BUS [0:0]
.TRIG8(data) // IN BUS [0:0]
);
vio_core vio_inst (
.CONTROL(viow), // INOUT BUS [35:0]
.CLK(clk),
.SYNC_OUT(vioi) // IN BUS [47:0]
);
+174 |
3587
80
|
+61 |
1751
27
|
+35 |
2950
62
|
+102 |
3748
72
|
Но ПЛИС…
А насчет с работы… Вот у меня лежит там пара десятков плат мертвых. На 90% — без шансов на восстановление. Их уже списали. А на каждой пара ПЛИСин (пусть старенькие Циклон2), ARM7, SRAM, кучка всяких стабилизаторов… Причем большая часть микросхем исправна. Ну, или почти исправна. Вот, давеча, пытался восстановить. Все отлично, но не работает CAN — что-то там с с этой ногой. Но остальные 143 работают. Для какой-то поделки ARM7… Хех, почему бы и нет?
В «моем» варианте в любой точке ленты будет 1R.
В «вашем» варианте — 1/4 будет на самом дальнем конце. В других точках — будет другое сопротивление. Так? Ну и как это будет способствовать равномерности свечения ленты? Никак.
В «моем» варианте — в любой точке будет 1/2R. Т.е. на все светодиоды придет одинаковое напряжение. Да, оно будет ниже, чем в «вашем» варианте в самой дальней точке. Но равномерность достигается постоянством параметров по всей длине. а не максимальным напряжением…
Ну сами посчитайте — в каком варианте все вольтметры покажут одинаковое напряжение?
Или, где я ошибаюсь?
p.s. ссылка немного порезалась, 5050, warm, ip67.
сейчас по той ссылке уже ничего конечно нет :(
Она до сих пор служит мне для фоновой подсветки в комнате — я ее пустил по периметру окна. Занавеска прекрасно рассеивает свет
тут можно глянуть —
www.youtube.com/watch?v=CJ0vYvfOghQ
контролера который в комплекте мне вполне хватает — поигрался немного режимами и в итоге осталось 2-3 которые периодически использую
чаще всего это плавная смена цветов как в ролике поэтому пульт использую очень редко а контроллер помнит последний режим
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.