Hi friends,
I have finished a circuit that generates composite video and it's almost*** working perfectly. Apart from some ultra weird problem that is occurring when data is displayed. Basically the system sweeps the RAM from address 0 to a certain final address. Each line is 8 pixels in height. Basically it displays 6 lines, and then suddenly it stops displaying, then after a few lines, it starts displaying again.
I have checked the logic of my circuit and everything seems fine. I'm outputting VSYNC for 4 lines. Each line is 0.64us. So VSYNC is 256us long.
Each line has 4.5us HSYNC, and a few microseconds blank. At the end of a line, more blanks are added.
I am using a shift register that is loaded every 8 bits, and then clocked at 8MHz to display the pixels. It seems the shift register is not loading sometimes. Yet my logic for its loading is correct. Has this problem ever occurred with you? Do you have any ideas what this could be? Or any ideas of how I could troubleshoot this? I really don't know what to do anymore. I've checked all connections and they're all fine.
Here's a photo of what the TV is displaying right now. As you can see it goes nutty after 6 lines. It does look like a logic problem, that is, the shift register loading logic is flawed, but I have checked it and rechecked it and it seems correct.
Edit: I have found out that the Shift register is actually loading. But it's somehow loading wrong addresses. The address is generated with a counter, which increments everytime the shift register loads. The counter is working correctly. I am starting to think that the address pins on the ROM are somehow messed up? Could it be that the connections shown on the datasheet are incorrect? I am using the atmel AT28C256...
I have finished a circuit that generates composite video and it's almost*** working perfectly. Apart from some ultra weird problem that is occurring when data is displayed. Basically the system sweeps the RAM from address 0 to a certain final address. Each line is 8 pixels in height. Basically it displays 6 lines, and then suddenly it stops displaying, then after a few lines, it starts displaying again.
I have checked the logic of my circuit and everything seems fine. I'm outputting VSYNC for 4 lines. Each line is 0.64us. So VSYNC is 256us long.
Each line has 4.5us HSYNC, and a few microseconds blank. At the end of a line, more blanks are added.
I am using a shift register that is loaded every 8 bits, and then clocked at 8MHz to display the pixels. It seems the shift register is not loading sometimes. Yet my logic for its loading is correct. Has this problem ever occurred with you? Do you have any ideas what this could be? Or any ideas of how I could troubleshoot this? I really don't know what to do anymore. I've checked all connections and they're all fine.
Here's a photo of what the TV is displaying right now. As you can see it goes nutty after 6 lines. It does look like a logic problem, that is, the shift register loading logic is flawed, but I have checked it and rechecked it and it seems correct.
Edit: I have found out that the Shift register is actually loading. But it's somehow loading wrong addresses. The address is generated with a counter, which increments everytime the shift register loads. The counter is working correctly. I am starting to think that the address pins on the ROM are somehow messed up? Could it be that the connections shown on the datasheet are incorrect? I am using the atmel AT28C256...
Last edited: