Golborne Vintage Radio

Full Version: Building a Standards Converter
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
Sorry, I should have included a photo.
Please see attachment.

Note the supports made of (thick) wire, soldered to the pcb on both sides of the flying connector, to prevent pushing the connector inwards into the cabinet.
It does not look too neat because the protective layer had to be sanded away, but it works just fine.

Jac

p.s. the soldering of the thick support wires is fine, but it looks bad because of the light reflections...
I have released Version V05.
This rectifies slight misalignment of pedestal and non pedestal video. Enforced blanking before broad pulses has been removed.
Added static  and scrolling caption to the test card. Firmware version can now be viewed on screen by switching from grey scale to test card.
The firmware version is in the form of a scrolling message "HEDGHOG STANDARDS CONVERTER V05" photos below.

Frank
Always useful for a FPGA to be able to identify itself, especially its version number. I do something like this on my professional designs.

I really ought to see if my Xilinx JTAG probe and software will program the Hedghog. I know it's capable of seeing any JTAG devices, not just Xilinx. I also know it will program non-Xilinx memories becauase I've done it on Aurora SCRF. The Xilinx FPGA int he SCRF is booted from a non-Xilinx flash memory.

This will have to wait for a week or 2 as the bench is still very busy with work, including using the Xilinx probe for its intended purpose.
Hi Jeffrey
I think there is a good chance it would work as the boot loader is contained in the .jic file. I guess it will be down to if the software recognises the file as been non Xilinx and rejects it.
I think the Altera and Xilinx connectors are different

Frank
I think I'm on a loser here. The EPCS4I8 flash memory isn't connected to the JTAG port. So my chances of being able to program it with the Xilnx probe and software are very low.
Hi Jeffrey
On the board there is also an active serial port which I believe connects directly to the flash memory. I am fairly sure the blaster is able to use this port too. I expect the firmware can be converted to a version that can be used on this port but I don't know what file type that is.

Frank
The problem is that the flash memory doesn't have a JTAG interface. So unless somebody has written software to interace the Xilinx probe to whatever protocol is needed by the memory, it won't work. I suppose I'd better buy a Altera USB blaster.
These Altera USB blasters  are not expensive, but things from China can have long lead times. Sometimes 2 months, but you can be lucky.

Here is one just over 2 £: ebay item 152919205278

Jac
success with changing modulator settings !

Both modulators (vision and sound) are programmed via I2C, and the appropriate bit sequences to be generated by the
FPGA are found in Frank's program. He helped me understand what is what.

As a preparation for a different standard, I tried to program the modulators for different modulation and RF frequencies.
With Frank's help and carefully studying the modulator IC's datasheet I eventually managed to understand how the bit-sequences should be for my particular needs, and I managed (with trial and error - a good way to learn something) to get the wanted RF frequencies and other settings. The block diagram of the modulator IC (found in the data sheet) helped a lot in understanding the internal dividers and pre-scaler.

The 567 line standard has FM sound, and the vision to sound carrier distance is 4.5 MHz.
Luckily this value was directly possible in the used MC44BS373 modulator IC.
IC5 is the only modulator IC that is required to work for the 567 line standard. In the case of 405 lines, AM modulation of the sound carrier at 3.5 MHz is required, which the MC44BS373 cannot generate. So for that an additional IC (IC4) is used. It is achieved the same way in the Aurora standards converter.
But not required for 567 lines also.

IC4 (the original sound modulator IC) kan be switched off with DIP-switch SW8B.
This works fine.
But I also want(ed) to switch off IC4 in the software.
Frank has helpfully sent me some information and I am now studying the program lines, but so far I have not been able to achieve what I would like to.
Until I manage to get this working, I just put the RF frequencies of IC4 out of harm's way by programming well out of band RF settings. So even when the audio-modulator DIP-switch SW8B is OFF (i.e. unwanted RF generated by the "sound" modulator IC4), there is no interference in the wanted signal.

Eventually I hope to understand how the relevant program lines are working exactly and be able to switch off IC4 in the program itself.

I have aligned my three working 567 line sets to receive and display 625 line pictures at channel E3 or E4, so these channels are also useful to have. E3 and E4 are also very handy to use the Hegdhog just as a modulator for my 625 line sets.
By the way, the definite required 567 RF frequencies are very close to channel E4, but with 4.5 MHz i.s.o. 5.5 MHz V-S distance.
The 4.5 MHz V-S distance also now works well. I could confirm this on a Panasonic TR1001S micro TV which has the possibility to receive USA VHF channels (they have the 4.5 MHz V-S). The continuous tuning of the older TVs helps in this, because the channel frequencies are different for various standards.

A simple test picture (internally generated by the MC44BS373) on channel E4 - was my first result:
[attachment=18641]

In the end I will program a small range of frequencies around the center frequency, to have a kind of fine tune.
The local oscillator in the 567 line sets has a relatively large drift during the first half hour of warming up, and a possibility to adapt the modulator RF frequency (sound mainly) is welcome during this period.
The required step size will be defined experimentally. The MC44BS373 can only generate frequencies at certain distance, but the step size is small enough for this purpose.

More to come (most likely with lots of additional help).

Thanks again Frank for all your support!

Jac
Hi Jac
If you replace the following lines from the i2c_com file:

   if CH_HEX = "0000" then V_RF_ON_DATA <= '1'; A_RF_ON_DATA <= '1';
       else V_RF_ON_DATA <= not V_RF_ON; A_RF_ON_DATA <= not A_RF_ON;
   end if;
 
   RF_CF_DATA_SEND(4)                     <= RF_CF_DATA(4);
   RF_CF_DATA_SEND(3) (15 downto 7) <= RF_CF_DATA(3) (15 downto 7);
   RF_CF_DATA_SEND(3) (6)                 <= V_RF_ON_DATA; -- turn off video rf oscillator
   RF_CF_DATA_SEND(3) (5)                 <= V_RF_ON_DATA; -- turn off video rf modulator
   RF_CF_DATA_SEND(3) (4 downto 0)     <= RF_CF_DATA(1) (4 downto 0);
   RF_CF_DATA_SEND(2)                     <= RF_CF_DATA(2);
   RF_CF_DATA_SEND(1) (15 downto 7) <= RF_CF_DATA(1) (15 downto 7);
   RF_CF_DATA_SEND(1) (6)                 <= A_RF_ON_DATA; -- turn off audio rf oscillator
   RF_CF_DATA_SEND(1) (5)                 <= A_RF_ON_DATA; -- turn off audio rf modulator
   RF_CF_DATA_SEND(1) (4 downto 0)     <= RF_CF_DATA(1) (4 downto 0);  



with

  if CH_HEX = "0000" then V_RF_ON_DATA <= '1'; A_RF_ON_DATA <= '1';
       else V_RF_ON_DATA <= not V_RF_ON; A_RF_ON_DATA <= not A_RF_ON;
   end if;

   RF_CF_DATA_SEND(4)                     <= RF_CF_DATA(4);
   RF_CF_DATA_SEND(3) (15 downto 7) <= RF_CF_DATA(3) (15 downto 7);

   if RF_CF_DATA(3) (6) = '0' and RF_CF_DATA(3) (5) = '0' and V_RF_ON_DATA = '0' then
   RF_CF_DATA_SEND(3) (6)                 <= '0'; -- turn on video rf oscillator
   RF_CF_DATA_SEND(3) (5)                 <= '0'; -- turn on video rf modulator
   else
   RF_CF_DATA_SEND(3) (6)                 <= '1'; -- turn off video rf oscillator
   RF_CF_DATA_SEND(3) (5)                 <= '1'; -- turn off video rf modulator
   end if;

   RF_CF_DATA_SEND(3) (4 downto 0)     <= RF_CF_DATA(1) (4 downto 0);
   RF_CF_DATA_SEND(2)                     <= RF_CF_DATA(2);
   RF_CF_DATA_SEND(1) (15 downto 7) <= RF_CF_DATA(1) (15 downto 7);

   if RF_CF_DATA(1) (6) = '0' and RF_CF_DATA(1) (5) = '0' and A_RF_ON_DATA = '0' then
   RF_CF_DATA_SEND(1) (6)                 <= '0'; -- turn on audio
   RF_CF_DATA_SEND(1) (5)                 <= '0'; -- turn on audio rf modulator
   else
   RF_CF_DATA_SEND(1) (6)                 <= '1'; -- turn off audio rf oscillator
   RF_CF_DATA_SEND(1) (5)                 <= '1'; -- turn off audio rf modulator
   end if;


   RF_CF_DATA_SEND(1) (4 downto 0)     <= RF_CF_DATA(1) (4 downto 0);  

You should then be able to turn off the audio or video modulators within the channel data sets.
For example after substituting the above lines if you then change the channel 1 dataset from:

constant  CH1_CF_DATA      : ic2_data_array := ("0010110100000000", "1011001110000000", "0010100110000000", "1011001010000000"); -- modulators channel 1

to:

constant  CH1_CF_DATA      : ic2_data_array := ("0010110100000000", "1011001110000000", "0010100110000000", "1011001010100000"); -- modulators channel 1

the audio modulator should be turned off when channel 1 is selected.

Frank
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36