Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
max7456_regs.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2013 Chris
3  *
4  * This file is part of paparazzi.
5  *
6  * paparazzi is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2, or (at your option)
9  * any later version.
10  *
11  * paparazzi is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with paparazzi; see the file COPYING. If not, write to
18  * the Free Software Foundation, 59 Temple Place - Suite 330,
19  * Boston, MA 02111-1307, USA.
20  *
21  */
22 
30 #ifndef MAX7456_REGS_H
31 #define MAX7456_REGS_H
32 
33 //OSD REGISTER ADDRESSES
34 #define OSD_VM0_REG 0x00
35 #define OSD_VM1_REG 0x01
36 #define OSD_DMM_REG 0x04
37 #define OSD_DMAH_REG 0x05
38 #define OSD_DMAL_REG 0x06
39 #define OSD_DMDI_REG 0x07
40 #define OSD_OSDBL_REG 0x6C
41 #define OSD_OSDBL_REG_R 0xEC
42 #define OSD_STAT_REG 0xA0
43 
44 //OSD BIT POSITIONS
45 #define OSD_VIDEO_MODE_PAL (1<<6) // Default = NTSC
46 #define OSD_SYNC_INTERNAL ((1<<5)|(1<<4)) // Default = AUTO
47 #define OSD_SYNC_EXTERNAL ((1<<5) // Default = AUTO
48 #define OSD_IMAGE_ENABLE (1<<3) // Default = OSD OFF
49 #define OSD_REFRESH_ON_NEXT_VSYNC (1<<2) // Default = immediately refresh video
50 #define OSD_RESET (1<<1) // VM0 reg, hardware set to 0 after reset
51 #define OSD_VOUT_DISABLE (1<<0) // default= VIDEO OUT ENABLED
52 #define OSD_8BIT_MODE (1<<6) // default= 16 BIT MODE
53 #define OSD_BLINK_CHAR (1<<4) // default= No BLINKING
54 #define OSD_INVERT_PIXELS (1<<3) // default= No INVERSION
55 #define OSD_CLEAR_DISPLAY_MEMORY (1<<2) // DMM reg, default = 0
56 #define OSD_AUTO_INCREMENT_MODE (1<<0) // default = NO AUTO INCREMENT
57 
58 //OSD STATUS REGISTER BIT POSITIONS
59 #define OSD_UNUSED_FLAG (1<<7) // It is not used.
60 #define OSD_RESET_BUSY_FLAG (1<<6) // 0=power on reset completed, 1=busy with reset.
61 #define OSD_NVRAM_BUSY_FLAG (1<<5) // 0=memory available, 1=memory busy
62 #define OSD_VSYNC_ABSENT_FLAG (1<<4) // 0=vertical sync active, 1= no vsync
63 #define OSD_HSYNC_ABSENT_FLAG (1<<3) // 0=Horizontal sync active, 1= no Hsync
64 #define OSD_LOS_ABSENT_FLAG (1<<2) // 0=sync active, 1= no sync
65 #define OSD_NTSC_PRESENT_FLAG (1<<1) // 0=No NTSC signal detected, 1=NTSC signal detected.
66 #define OSD_PAL_PRESENT_FLAG (1<<0) // 0=No PAL signal detected, 1=PAL signal detected.
67 
68 // MAX7456 VIDEO_MODE_0 register
69 #define VIDEO_MODE_0_WRITE 0x00
70 #define VIDEO_MODE_0_READ 0x80
71 #define VIDEO_MODE_0_40_PAL 0x40
72 #define VIDEO_MODE_0_20_NoAutoSync 0x20
73 #define VIDEO_MODE_0_10_SyncInt 0x10
74 #define VIDEO_MODE_0_08_EnOSD 0x08
75 #define VIDEO_MODE_0_04_UpdateVsync 0x04
76 #define VIDEO_MODE_0_02_Reset 0x02
77 #define VIDEO_MODE_0_01_EnVideo 0x01
78 // VIDEO MODE 0 bitmap
79 #define NTSC 0x00
80 #define PAL 0x40
81 #define AUTO_SYNC 0x00
82 #define EXT_SYNC 0x20
83 #define INT_SYNC 0x30
84 #define OSD_EN 0x08
85 #define VERT_SYNC_IMM 0x00
86 #define VERT_SYNC_VSYNC 0x04
87 #define SW_RESET 0x02
88 #define BUF_EN 0x00
89 #define BUF_DI 0x01
90 
91 // MAX7456 VIDEO_MODE_1 register
92 #define VIDEO_MODE_1_WRITE 0x01
93 #define VIDEO_MODE_1_READ 0x81
94 
95 // MAX7456 DM_MODE register
96 #define DM_MODE_WRITE 0x04
97 #define DM_MODE_READ 0x84
98 
99 // MAX7456 DM_ADDRH register
100 #define DM_ADDRH_WRITE 0x05
101 #define DM_ADDRH_READ 0x85
102 
103 // MAX7456 DM_ADDRL register
104 #define DM_ADDRL_WRITE 0x06
105 #define DM_ADDRL_READ 0x87
106 
107 // MAX7456 DM_CODE_IN register
108 #define DM_CODE_IN_WRITE 0x07
109 #define DM_CODE_IN_READ 0x87
110 
111 // MAX7456 DM_CODE_OUT register
112 #define DM_CODE_OUT_READ 0xB0
113 
114 // MAX7456 FM_MODE register
115 #define FM_MODE_WRITE 0x08
116 #define FM_MODE_READ 0x88
117 
118 // MAX7456 FM_ADDRH register
119 #define FM_ADDRH_WRITE 0x09
120 #define FM_ADDRH_READ 0x89
121 
122 // MAX7456 FM_ADDRL register
123 #define FM_ADDRL_WRITE 0x0A
124 #define FM_ADDRL_READ 0x8A
125 
126 // MAX7456 FM_DATA_IN register
127 #define FM_DATA_IN_WRITE 0x0B
128 #define FM_DATA_IN_READ 0x8B
129 
130 // MAX7456 FM_DATA_OUT register
131 #define FM_DATA_OUT_READ 0xC0
132 
133 // MAX7456 requires clearing OSD Black Level register bit 0x10 after reset
134 #define OSDBL_WR 0x6C
135 #define OSDBL_RD 0xEC
136 #define OSDBL_10_DisableAutoBlackLevel 0x10
137 
138 #endif //MAX7456_REGS_H