{"id":182,"date":"2008-09-05T00:55:26","date_gmt":"2008-09-05T07:55:26","guid":{"rendered":"http:\/\/mightyohm.com\/blog\/?p=182"},"modified":"2022-12-27T15:59:25","modified_gmt":"2022-12-27T23:59:25","slug":"generating-analog-rgb-video-with-a-pic-microcontroller","status":"publish","type":"post","link":"https:\/\/mightyohm.com\/blog\/2008\/09\/generating-analog-rgb-video-with-a-pic-microcontroller\/","title":{"rendered":"Generating Analog RGB Video with a PIC Microcontroller"},"content":{"rendered":"<p>Here is a <a href=\"http:\/\/www.microchip.com\/wwwproducts\/Devices.aspx?dDocName=en010209\">PIC16F628 microcontroller<\/a> clocked at 20MHz generating an analog RGB video signal with composite sync.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/mightyohm.com\/files\/flickr\/2830216800_9a86edacb1.jpg\" border=\"0\" alt=\"PIC Microcontroller RGB Video\" width=\"500\" height=\"375\" \/><\/p>\n<p>This project was inspired by <a href=\"http:\/\/www.rickard.gunee.com\/projects\/video\/pic\/howto.php\">Rickard Gunee&#8217;s PIC Video Howto<\/a> which gave me a big headstart in writing the code.\u00a0 Thanks Rickard!\u00a0 I have been wanting to work on this project since reading the tutorial several years ago, and finally got a chance to start it last week.<\/p>\n<p>There are few fundamental differences in my approach compared to Rickard&#8217;s and others I have seen in the past.\u00a0 His tutorial was written a few years ago before 20MHz PICs were commonly available (it uses an overclocked <a href=\"http:\/\/www.microchip.com\/wwwproducts\/Devices.aspx?dDocName=en010229\">PIC16F84<\/a>.)\u00a0 He also focuses on generating composite video to drive a standard television (using the AV inputs).\u00a0 I am generating RGB video which will interface with the Sharp LCD I had sitting on the shelf.\u00a0 RGB is a little different in that it uses a separate sync signal (composite horizontal and vertical sync on one inverted TTL line) and each color is brought out as a separate 0.7Vpp signal.\u00a0 These two differences make the RGB interface considerably easier (in my opinon) to work with, especially since the approach to composite video Rickard uses is limited to black and white.<\/p>\n<p>So far the biggest challenges have been with getting the video timing right.\u00a0 I am writing the whole program in PIC assembly and every clock cycle counts.<\/p>\n<p>More on this project soon, but until then, there are a few <a href=\"http:\/\/www.flickr.com\/photos\/mightyohm\/sets\/72157607122118335\/\">more photos on flickr<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here is a PIC16F628 microcontroller clocked at 20MHz generating an analog RGB video signal with composite sync. This project was inspired by Rickard Gunee&#8217;s PIC Video Howto which gave me a big headstart in writing the code.\u00a0 Thanks Rickard!\u00a0 I have been wanting to work on this project since reading the tutorial several years ago, &hellip; <a href=\"https:\/\/mightyohm.com\/blog\/2008\/09\/generating-analog-rgb-video-with-a-pic-microcontroller\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Generating Analog RGB Video with a PIC Microcontroller<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[10],"tags":[46,502,44,47,45],"class_list":["post-182","post","type-post","status-publish","format-standard","hentry","category-microcontrollers","tag-lcd","tag-microcontrollers","tag-pic","tag-rgb","tag-video"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pioCd-2W","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":235,"url":"https:\/\/mightyohm.com\/blog\/2008\/09\/pic-rgb-video-technical-details\/","url_meta":{"origin":182,"position":0},"title":"PIC RGB Video &#8211; Technical Details","author":"Jeff","date":"September 15, 2008","format":false,"excerpt":"This page summarizes the technical details behind my PIC LCD video project.\u00a0 This is a basic tutorial on how to generate analog RGB video using a PIC16F628 microcontroller. Previous posts on this project: PIC Microcontroller RGB Video - Animations! Space Invaders! Generating Analog RGB Video with a PIC Microcontroller Materials\u2026","rel":"","context":"In &quot;Microcontrollers&quot;","block_context":{"text":"Microcontrollers","link":"https:\/\/mightyohm.com\/blog\/category\/microcontrollers\/"},"img":{"alt_text":"Schematic","src":"https:\/\/i0.wp.com\/mightyohm.com\/blog\/wp-content\/uploads\/2008\/09\/lcd_video-300x244.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":216,"url":"https:\/\/mightyohm.com\/blog\/2008\/09\/pic-microcontroller-rgb-video-animations\/","url_meta":{"origin":182,"position":1},"title":"PIC Microcontroller RGB Video &#8211; Animations!","author":"Jeff","date":"September 10, 2008","format":false,"excerpt":"Update: For those who are interested in seeing how this is done, I have posted schematics and source along with some technical details about this project.\u00a0 Click here to learn more. After two days of straight coding, this is the result - two more aliens and an animation routine that\u2026","rel":"","context":"In &quot;Microcontrollers&quot;","block_context":{"text":"Microcontrollers","link":"https:\/\/mightyohm.com\/blog\/category\/microcontrollers\/"},"img":{"alt_text":"Still images from space invaders animation","src":"https:\/\/i0.wp.com\/mightyohm.com\/files\/flickr\/2845579559_4a81f1af7d_m.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":710,"url":"https:\/\/mightyohm.com\/blog\/2008\/11\/composite-video-with-arduino-daily-duino\/","url_meta":{"origin":182,"position":2},"title":"Composite Video with Arduino (Daily Duino)","author":"Jeff","date":"November 30, 2008","format":false,"excerpt":"Having had some experience generating RGB video signals with the PIC, I have a deep appreciation for the work these guys did in not only generating composite video with an Arduino, but also making a Pong game.\u00a0 The daily duino (need to bookmark that one) has a simpler example based\u2026","rel":"","context":"In &quot;Microcontrollers&quot;","block_context":{"text":"Microcontrollers","link":"https:\/\/mightyohm.com\/blog\/category\/microcontrollers\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/dailyduino.com\/wp-content\/uploads\/2008\/11\/dailyduino_tv.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":723,"url":"https:\/\/mightyohm.com\/blog\/2008\/12\/programming-and-customizing-picmicro-microcontrollers-by-myke-predko\/","url_meta":{"origin":182,"position":3},"title":"Programming and Customizing PICmicro Microcontrollers, by Myke Predko","author":"Jeff","date":"December 24, 2008","format":false,"excerpt":"Programming & Customizing PICmicro Microcontrollers, by Myke Predko, is probably the best book out there for someone who is starting out with the PIC series of microcontrollers from Microchip.\u00a0 I used Myke's book as both a tutorial and reference when I created my PIC RGB Video Display.\u00a0 Since then, I\u2026","rel":"","context":"In &quot;Books and Resources&quot;","block_context":{"text":"Books and Resources","link":"https:\/\/mightyohm.com\/blog\/category\/books-and-resources\/"},"img":{"alt_text":"","src":"http:\/\/www.assoc-amazon.com\/e\/ir?t=mightyohm-20&l=as2&o=1&a=0071361723","width":350,"height":200},"classes":[]},{"id":205,"url":"https:\/\/mightyohm.com\/blog\/2008\/09\/space-invaders\/","url_meta":{"origin":182,"position":4},"title":"Space Invaders!","author":"Jeff","date":"September 6, 2008","format":false,"excerpt":"More progress using a PIC microcontroller to generate video.\u00a0 What next?\u00a0 Color is easy.\u00a0 Animations perhaps? PS: If you start looking, these guys are everywhere.","rel":"","context":"In &quot;Microcontrollers&quot;","block_context":{"text":"Microcontrollers","link":"https:\/\/mightyohm.com\/blog\/category\/microcontrollers\/"},"img":{"alt_text":"Space Invaders!!!","src":"https:\/\/i0.wp.com\/mightyohm.com\/files\/flickr\/2835124664_3346a3cd42.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":2024,"url":"https:\/\/mightyohm.com\/blog\/2009\/06\/microchip-internet-radio-demonstration-board\/","url_meta":{"origin":182,"position":5},"title":"Microchip Internet Radio Demonstration Board","author":"Jeff","date":"June 23, 2009","format":false,"excerpt":"Microchip Technology, makers of the PIC microcontroller, have released a demo board for the 8-bit PIC18F67J60 that is pre-programmed to function as an internet radio receiver. Anyone familiar with the blog knows that I have a special love for internet streaming radio, so it shouldn't be a surprise that this\u2026","rel":"","context":"In &quot;Electronics&quot;","block_context":{"text":"Electronics","link":"https:\/\/mightyohm.com\/blog\/category\/electronics\/"},"img":{"alt_text":"Microchip Internet Radio Demonstration Board","src":"https:\/\/i0.wp.com\/mightyohm.com\/blog\/wp-content\/uploads\/2009\/06\/95837-1.png?resize=350%2C200","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/posts\/182","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/comments?post=182"}],"version-history":[{"count":11,"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/posts\/182\/revisions"}],"predecessor-version":[{"id":15764,"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/posts\/182\/revisions\/15764"}],"wp:attachment":[{"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/media?parent=182"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/categories?post=182"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mightyohm.com\/blog\/wp-json\/wp\/v2\/tags?post=182"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}