Why does the DVD show in black and white and how to fix it. What to do if the image from a digital set-top box is black and white

In order to flash a microcontroller in 95% of cases, a serial programmer is enough. The simplest is “5 wires” for the LPT port. But this scheme is not reliable. But the biggest disadvantage of this programmer is the lack of an LPT port on new computers.

The Gromov programmer is practically the same 5 wires, only for the COM port. This scheme is ten times more reliable. The author of this programmer is Gennady Gromov, creator of Algorithm Builder. Here is his diagram:

And so you need 3 diodes, any, for example CD522 or 1N4148. 7 resistors per 1 kOhm.

Here is an example of a board, I’ll say right away that there are 10 kOhm resistors, but it still works, I still recommend that you do it according to the diagram.

Well, I also use a probe for SO8 housings

For programming, the UniProf program from Nikolaev is used

UNIPROF- This ISP(in system programming) programmer for AV R microcontrollers (see list on the left). It has built-in debug exchange modules, which allow realtime debugging of the program using the same cable with which it was programmed (more about debugging). (hereinafter referred to as simply a programmer). The programmer allows:

  • Read/write/compare FLASH program memory and EEPROM;
  • Reading/writing/comparing FLASH is possible within the specified limits;
  • Read/write fuse and lock bits;
  • Read OSCCAL configuration bytes and, if necessary, place them in the EEPROM or FLASH buffer;
  • Manually adjust the contents of the EEPROM window and move FLASH blocks;
  • Works with files in HEX, BIN and generic formats;
  • It is possible to submit any command of the exchange protocol “manually”;
  • “Brake” mode for low clock speeds;

The programmer circuit and program are below in the attachment

Attachments

Of course, the need for a programmer immediately arose. The programmer on the LPT port did not suit me because there is a possibility of burning the computer port. It was possible, of course, to assemble a USB programmer, but it would also need to be flashed with something. Then I came across a diagram programmer Gromov and it was decided to collect it. They wrote that the programmer works with shells UniProf And avrdude. The scheme itself is very simple:


I downloaded the finished printed circuit board, modified it a little so that I could draw it with a marker, it turned out like this:

All resistors, except for the LED going from the cathode to ground (it has a nominal value of 470 Ohms) are 1 kOhm; there are a total of 7 resistors in the circuit. 1 kohm resistors are installed in order to suppress part of the voltage coming from the COM port from 12 volts to the 5 volts required for the microcontroller. I took the diodes KD522, 3 pieces. The circuit has a power indication on the LED, set in green, Soviet 5 mm in diameter. I had an extension cable in stock COM 9M/9F, just suitable for these purposes, the connector on the back of the cable was cut off by me.


The cable was shielded, which allows you to conveniently position the case with the programmer in any convenient place, as long as the length of the wires is sufficient, whereas in the case of unshielded wiring, if we used only the COM connector, the length is limited to half a meter, otherwise the programmer may not work properly.


Since the conductors coming out of the programmer and going, in my case, to the collet breadboard, on which I will assemble and debug the first devices, are recommended to be no more than 15 - 20 cm long, I made 15 cm long with an ordinary flexible multi-colored mounting wire. It was decided to attach the cable coming from the COM port to the board with a clamp, due to the fact that during operation of the programmer it could break out, since it is quite rigid. The wires coming out of the programmer and going to the microcontroller were also tied together with a wire clamp. The board was etched and tinned:

The simplest programmer option for AVR these are five wires soldered to the controller port and plugged into LPT port. I don't argue, it's possible. But I still don't recommend it this way. I won’t even give you a wiring diagram - if you need it, you can find it yourself. Since this method is not very stable, it is possible firmware crashes, the length of the wires is limited to twenty centimeters (if it’s more, it will be glitchy), so you’ll have to fumble around in your computer’s ass. Yes and LPT port is easy to burn. In general, I don’t rule.

Searching the Internet, I found an excellent programmer that works through RS232 aka COM port. And also a convenient program for flashing the controller UniProf from Nikolaev. The programmer circuit was invented by Gromov, the creator of Algorithm Builder.

To assemble the programmer you will need:

  • Three diodes, any of the low-power ones. For example 1N4148.
  • Seven 1kOhm resistors. I have resistors of size 1206
  • If you make it according to my printed circuit board, you can also buy 3 0 ohm resistors - jumpers, they don’t care.

The printed circuit board is either drawn with a marker, or, like mine, made using a laser iron.

I installed the DB9 connector in the photo for convenience. I have different flashing cords connected there, or an adapter like this:


The programmer is soldered, the controller is connected to it. It's time to make sure everything is done correctly.

Launch UniProf.exe and choose a number COM port to which you have the programmer connected. The controller type should immediately be determined and displayed above the left code window.

Did not work out? There are three options:

  • The programmer is soldered crookedly.
  • Dead controller.
  • I soldered the wiring to the microcontroller incorrectly.

Once again you check everything thoroughly and try again. It should work.

Next, if you have never worked with controllers before, you may need a test program. It won’t do anything useful, but it will allow you to be sure that everything you did before was done correctly.

Download Atmel AVR Studio is the official environment for developing programs for microcontrollers AVR. The studio supports all microcontrollers of the family Atmel AVR. You can find its latest version on Atmel.com

Next, create a new project, select as the programming language Assembler and indicate the folder and name where your project will be located. Use it as a debugger AVR SIMULATOR and indicate which controller you will work with. Then enter a simple program into the text window.

Here is its example text:

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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 .INCLUDE "m16def.inc" ; this includes a list of macro definitions; without it, the compiler will not know which one; it is the processor that we assemble the program; if you have a different controller, then substitute it; corresponding inclusion. They are in; AVR Studio folder at; "AVR Tools\AvrAssembler\Appnotes\" .MACRO outi LDI R16,@1 OUT @0,R16 .ENDMACRO ; We set a very convenient macro that allows; write an arbitrary given number to any; registers in one line of code. .CSEG .ORG 0x0000 RJMP RESET .ORG 0x0030 ; The directive starts the code from address 0x0030; the address was taken with a large margin, because; different AVRs have different table sizes; interrupts. So for sure! RESET: ; start label OUTI DDRA,0xFF OUTI DDRB,0xFF OUTI DDRC,0xFF OUTI DDRD,0xFF ; We configure the output port directions; If this controller does not have, for example, a port; C, then this line should be commented out. OUTI PORTA,0xAA OUTI PORTB,0xAA OUTI PORTC,0xAA OUTI PORTD,0xAA ; We output 10101010 to get; a clear picture of what happened at the ports; changes. After completing the program; at the microcontroller outputs in a checkerboard pattern; There will be either supply voltage or ground. What; easily checked either with a voltmeter or with a simple one; LED probe. RJMP RESET ; We loop the program.

INCLUDE "m16def.inc" ; this includes a list of macro definitions; without it, the compiler will not know which one; it is the processor that we assemble the program; if you have a different controller, then substitute it; corresponding inclusion. They are in; AVR Studio folder at; "AVR Tools\AvrAssembler\Appnotes\" .MACRO outi LDI R16,@1 OUT @0,R16 .ENDMACRO ; We set a very convenient macro that allows; write an arbitrary given number to any; registers in one line of code. .CSEG .ORG 0x0000 RJMP RESET .ORG 0x0030 ; The directive starts the code from address 0x0030; the address was taken with a large margin, because; different AVRs have different table sizes; interrupts. So to be sure! RESET: ; start mark OUTI DDRA,0xFF OUTI DDRB,0xFF OUTI DDRC,0xFF OUTI DDRD,0xFF ; We configure the output port directions; If this controller does not have, for example, a port; C, then this line should be commented out. OUTI PORTA,0xAA OUTI PORTB,0xAA OUTI PORTC,0xAA OUTI PORTD,0xAA ; We output 10101010 to get; a clear picture of what happened at the ports; changes. After completing the program; at the microcontroller outputs in a checkerboard pattern; There will be either supply voltage or ground. What; easily checked either with a voltmeter or with a simple one; LED probe. RJMP RESET ; We loop the program.

Next, click on the compile button (or F7) and go to your project folder. It should already be waiting for you there ****.hex firmware file.
Launch UniProf.exe, click on the button with an open folder and the inscription HEX. Select your freshly compiled project and press ok.
Second window UniProf will ask you to enter data EEPROM, we have EEPROM not used, so press cancel.
That's it, now you can flash it. Click on the red arrow with the inscription Prog and wait. When finished, you can click read and see what was written to your controller - it should show the same thing that was already loaded into the window.

Now all you have to do is apply power to your microcontroller and see what appears on the ports. Did you see a “comb” of high and low voltage levels? Great! You've flashed your first controller in your life! Now you can dive headfirst into learning about AVR microcontrollers.

If it doesn’t work, then here are possible problems and solutions.

  • Modern computers, with gigahertz processors, newfangled Vistas and Sevens, are very poor friends with this programmer. Not only may you simply not have a COM port, but even if this happens, it’s not a fact that everything will work as it should. For radio engineering experiments, I recommend building something like a PIII 800/Windows’98 from scraps at hand. It won’t be a problem to dig up such a miracle for free, and you don’t mind burning it if something goes wrong
  • This scheme does not work through adapters USB-COM or it works, but VERY slowly. Let's say the firmware of one microcontroller can last an hour and a half.
  • For the first time, it is best to take food from the computer block. Less likely to burn anything or make a mistake
  • Check the diagram 3-4 times! Because, judging by the comments, most of the problems are due to crooked installation.
  • Before starting the program in MK YOU NEED TO DISABLE THE PROGRAMMER and apply +5 volts to the RESET input through a 1..10 kOhm resistor. Nothing will work with the connected programmer, because... it presses RESET and does not allow the crystal to start.
  • If UniProf does not detect the MK, your computer may be too fast. To compensate for this “disadvantage” you need to enable "Brake" checkbox It shows up if you turn it off unchecking EEPROM EEPROM data display panel.
  • If the Brake checkbox did not help, then try on another computer. Because here the COM port is processed in an abnormal mode, which means it is not a fact that your COM port will understand everything correctly.
  • At worst, if all else fails, try a 5-wire programmer or another flashing program, such as avrdude. Keep the wires as short as possible! 10-15 centimeters is the MAXIMUM!
  • Read the comments on the post. Many of the jambs there had already been sorted out. Perhaps yours will be among them.

Addition from Outsider:
1. If there is no COM port connector on the back of the computer, this does not 100% mean that there is no such port on the motherboard in principle. There are still connectors on motherboards with 9 pins in two rows - for more details, you need to look at the documentation for the motherboard. I found it on my ASUS P5K SE and successfully used it.

2. Yes, +5 and GND are not ground and a contact from the COM port, but external power. The easiest way to get it is on your computer - +5 is in the red wire on any of the connectors that power the hard drives. And GND is on the body of the computer itself. Or on the black wire of the same connector.

3. If something doesn’t work with UniProf, then you can try avrdude. To do this, you need to write the following in avrdude.conf:

programmer
id = "nikolaew";
desc = "serial port banging, reset=dtr sck=rts mosi=txd miso=cts";
type = serbb;
reset = 4;
scck = 7;
mosi = 3;
miso = 8;
;

And then run avrdude with the following parameters:

avrdude -n -c nikolaew -P com1 -p m16

If everything is in order, the program will say:
avrdude: AVR device initialized and ready to accept instructions

Addition from Riko
It was experimentally found that for proper operation this programmer The MK supply voltage must be at least 5 volts(but not higher than 5.5!!!). That is, if the MK is connected to three AA batteries, then you are broke, since there are 4.5 volts! Power it from your computer!!!

Addition from SLY_DEr
Didn't work. I changed the resistors from 3k (they weren’t on 1k) to 460 ohm ones - it worked, but with errors.
I decided, purely for the sake of sport, to reduce com port speed in device manager and oh, miracle, everything worked as it should. I reduced the port speed from 9600k to 4800k and also reduced the receive and transmit buffer (ibid.) to values ​​of 4 and 6, respectively.

If anything is unclear, don’t hesitate to ask me in the comments.

ZY
If it doesn’t work out at all, then maybe your motherboard doesn’t support such non-standard handling of the COM port and it’s worth trying other programmers? For example, or. Although they are more complicated, they work more correctly, without distortions.

The Gromov programmer is a simple and inexpensive device to manufacture that operates via a COM port. It is more reliable than programmers working with an LPT port, which can easily become faulty if handled carelessly.
Designed for programming Atmel microcontrollers. The principle of the programmer is to coordinate the levels between the programmable microcontroller and the COM port of the computer. Works with programs and avrdude. The developer of the programmer circuit is Gennady Gromov. Author's website: http://algrom.net/russian.html

Schematic diagram of the Gromov programmer


Double sided PCB


The PCB layout was made by EAGLE CAD. If the paths are not wide enough or something else is wrong, you can adjust everything in the project to suit you.

To make a programmer you will need:

1. Female connector for DB-9F cable (9 pin).


2. Housing DP-9C (9 pin).


3. Manufactured double-sided printed circuit board. Textolite thickness 1 mm.


4. SMD resistors 7 pcs. standard size 0805, power 0.125 W, nominal 1 kOhm.


5. Diodes 3 pcs. any pulsed ones with a recovery time of no more than 50 ns. in SOD-80 housing. I'm using LL4148 diodes.


6. Wire or cable for subsequent connection to the microcontroller.


The installed programmer board inside the case will look like this


The edges of the board for installation in the case were adjusted using an emery block. You need to solder the board to the connector installed in part of the case so that they are aligned with each other in the case.
To prevent the wires soldered to the board from coming off during intensive use, you need to make a loop and secure it with a metal clamp that comes with the case.

Video for the article:

When a new TV shows in black and white, first of all, it is recommended to contact a warranty service center (if the device was purchased from official distributors). In accordance with the purchase and sale agreement, they are obliged to solve the problem, replace broken ones with original spare parts taken from their own warehouse, or completely change the equipment.

The screen of a new TV does not display correctly if the connection is made incorrectly. The colors of the plugs correspond to their intended purpose:

  1. Red, white - mono and stereo audio (all audio tracks).
  2. Yellow - composite analog video signal (showing pictures without sound). In standard mode, it receives and transmits video signals of PAL, SECAM and NTSC standards. The colors are transmitted together, the removal of the fork completely removes the color.
  3. Green, blue - component video signals. They are transmitted without sound (connected separately), and served separately (unlike the previous option). The separation of the socket plug is characterized by partial and single loss.

Factory defects also cause black and white footage to appear.

The appearance of some black and white channels on the TV indicates outdated software. The human factor does not actually play any role here, except that you can forget about updating the firmware. Modern equipment itself finds the source of the problem and prompts the user to update. All you need to do is click “OK” and wait a while.

Older equipment cannot be updated on its own. You will need to search for the necessary software on the Internet, download it to a flash drive and update it manually.

Self-diagnosis and repair

If the TV turns black and white, you need to check the color rendition in the menu using PU. This approach is logical if all channels show the same. When only one of them lacks color, then the problem is not in your technique. You need to call the operator of the television company so that they can debug the normal operation of the transmission.

You should also check antenna. Its signal is damaged in many cases:

  • the cable is torn or partially exposed;
  • the plug came off;
  • The outdoor antenna is broken.

When the settings go wrong regularly, qualified intervention will be required. You will not be able to troubleshoot your Sony or Philips on your own without the appropriate skills. Also, repairing a TV with your own hands is dangerous to health, since some components accumulate a charge and release it when touched.

Advantages of contacting the TV-Fix service center

Our TVF service center is open daily from 8 a.m. to 10 p.m., without weekends or holidays. The experts provide professional services; they understand both the software of modern equipment and its technical components. You can submit an application for a visit from a qualified specialist via the Internet. Diagnostic procedures are carried out at home, then the professional begins work on repairs, software updates, and flashing the device. Most importantly, we provide a guarantee because we are confident in the qualifications of our workers, the quality of the parts and the performance of the tools used.