Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
ich habe mir eine Ansteuerung für LEDs gebaut mit einem cPLD.
Da ich mich mit VHDL nicht wirklich auskenne könnte ich etwas hilfe gebrauchen.
Das Programm ist fertig und funktioniert auch im Prinzip. Nur werden sporadisch einzelne LEDs nicht angesteuert.
das ist für einen Lattice LC4064 mit ispLEVER übersetzt.
Ansteuerung für ein Rotorblatt mit 20 MHz SPI mit einem PIC32.
An der Ansteuerung kann es wahrscheinlich nicht liegen weil ich die schon länger mit anderen ICs benutze.
Das Schieberegister geht. Aber die Daten werden wahrscheinlich nicht richtig mit dem SET Signal übernommen.
Der Rest scheint auch wieder zu gehen. (3 Bit PWM)
Das in den Bild die Zeilen aussen fehlen ist ein anderes Problem.
Ich muss leider erst eine neue Leiterplatte bestücken weil meine schon eingebaut sind. In 14 Tagen wollen wir damit fliegen.
Das habe ich jetzt noch nicht verstanden.
-- if (Qreg = "111") then -- das passiert oben automatisch, darf hier nicht stehen da nicht synchron zu Z !
-- Qreg <= "000";
-- end if;
der Zaehler soll nur von 0 bis 6 zählen. bei 7 wieder zurück gesetzt werden.
Das scheint aber auch so zu funktionieren weil ich kein Problem mit der PWM habe.
Ich glaube da geht noch mehr nicht.
"Set" kann ich erst verwenden wenn SPI fertig ist weil ich den letzen Takt vom SPI nicht kenne. Geht ja beim µP automatisch.
Da kommt dann kein Takt mehr.
begin
process (SCL)
begin
if (faling_edge(SCL)) then !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
if(Set='0') then
data <= shift;
else
shift <= shift(22 downto 0) & SDI; -- left shift
-- shift <= SDI & (shift(23 downto 1); -- right shift
endif;
endif;
end process;