上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.-- -- l スポンサー広告 l top
シリアル通信機能を動かしました。

TeraTERMで受信したところ。分かりにくいですが上2行はアダプタ自身のメッセージ、それ以後はichigojamからの出力がスルーで出ています。(この画面実はLISTを出したところで処理が間に合っていなくて止まっています。処理性能は全体にこれから改善なので今は目をつぶっています。)


回路も修正しました。

主な変更点:
  ・RxD,TxDの配線見直し。デバッグのためUSB-シリアルにichigojamのTxDを出すかアダプタのTxDを出すかの
   スイッチを付けました。デバッグ中はアダプタの方を出力します。
  ・RGB分圧抵抗を小さくしました。CXA1645のデータシートに「ここのインピーダンスはできるだけ小さく」
   とあったためです。これで色ずれがすこし改善されたと思います。
  ・ichigojamに5Vを供給しました。3.3Vだけで良いと思っていましたが、キーボードに5Vが必要だったためです。


「スポンサードリンク」

style="display:block"
data-ad-client="ca-pub-0620260288102702"
data-ad-slot="9773401572"
data-ad-format="auto">





表示ジッタがまだ残っていて、波形を見たところではどうもichigojam信号の取りこみタイミングで微妙な同期ずれが有るためのようです。ずれといってもほんの数10nsで、LCD表示のためキャプチャしていた時は問題なかったのですが、やっぱりカラーコンポジットは厳しいみたいですね。ichigojamとアダプタをハード的に同期してしまうしかないかと考えているところです。ソフトが有る程度できたらやってみます。

現状はこんな感じです。またごちゃつき具合が増しています。


まだ機能限定ですがソフトもアップします。


/*
* File: main.c
*
* ichigojam color adopter test version
* Created on 2015/06/26
*/

#include
#include
#include
#include


#pragma config PMDL1WAY = OFF
#pragma config IOL1WAY = OFF
#pragma config FUSBIDIO = OFF
#pragma config FVBUSONIO = OFF
#pragma config FPLLIDIV = DIV_1
#pragma config FPLLMUL = MUL_15
#pragma config FPLLODIV = DIV_1
#pragma config FNOSC = FRCPLL
#pragma config POSCMOD = XT
#pragma config OSCIOFNC = OFF
#pragma config FPBDIV = DIV_1
#pragma config FCKSM = CSDCMD
#pragma config WDTPS = PS1
#pragma config WINDIS = OFF
#pragma config FWDTEN = OFF
#pragma config FWDTWINSZ = WINSZ_50
#pragma config DEBUG = OFF
#pragma config JTAGEN = OFF
#pragma config ICESEL = RESERVED
#pragma config PWP = OFF
#pragma config BWP = OFF
#pragma config CP = OFF

#define PROC_ONE_PIXEL4 LATB = (PORTAbits.RA1*FC)|0x08;asm volatile("NOP");asm volatile("NOP");asm volatile("NOP");asm volatile("NOP");


void uart_putc (unsigned char);
unsigned int uart_getc(void);
void uart_puttext(unsigned char *);

//************ MAIN ******************

int main() {

int lines = 0;
int BC,FC;
int x,t;
unsigned int rcv_data;

SYSTEMConfigPerformance(120000000);
ANSELB = 0;
ANSELA = 0;
TRISB = 0x0002000; // RB3-0 VIDEO OUTPUT , RB13= RXD1
TRISA = 0x0000007; // RA1-0 VISEO INPUT
ODCA = 0;
RPB15R =0x0001; // RB15 = TXD1
U1RXR =0x0003; // RB13= RXD1

U1MODE = 0x0000;
U1STAbits.UTXEN = 1; // enable transmit pin
U1STAbits.URXEN = 1; // enable receive pin
U1BRG = 30000000 / 16 / 115200 - 1;
U1STAbits.OERR=0;
U1MODEbits.ON = 1; // enable UART

LATB = 0x08;

uart_puttext("***** ICHIGOJAM COLOR ADOPTER *****************\n");
uart_puttext("STRATED.\n");

while(1) {

while(PORTAbits.RA0 == 1) {} // Wait for BLANKING
LATBbits.LATB3= 0;t=0;
while(PORTAbits.RA0 == 0) {t++;}
LATBbits.LATB3= 1;
if (t<100) { // If HBLANK
if ((lines < 0)||(lines >=192)) {
LATB=0x08;
while(PORTAbits.RA0 == 1) {
if (U1STAbits.URXDA) {
uart_putc(U1RXREG);
}
} // while displaying
lines++;
}else{
asm("NOP");asm("NOP");asm("NOP");asm("NOP");
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;

PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;

PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;

PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;

PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;PROC_ONE_PIXEL4;
LATB=0x08;
lines++;
FC = (((lines/8)%7)+1) | 0x08;
if (U1STAbits.URXDA) {
uart_putc(U1RXREG);
}
}
}else{
lines = -21; // if VBLANK
BC = 0x08 ; FC = 0x0f;
}
}
}


void uart_putc (unsigned char c)
{
while (U1STAbits.UTXBF); // wait for trasmit buffer enmpty
U1TXREG = c; // set data
}

void uart_puttext(unsigned char *c)
{
unsigned char *c0;
c0 = c;
while (*c0 != 0x00) {
while (U1STAbits.UTXBF); // wait for trasmit buffer enmpty
U1TXREG = *c0; // set data
c0++;
}
}

unsigned int uart_getc(void)
{
if (!U1STAbits.URXDA) {
return 0xffff;
}else{
return ((unsigned int)(U1RXREG)&0x00ff);
}
}


土日ソフト更新予定でしたが、予定外のお仕事が入ったためできなそうです。。。。

<



2015.06.27 Sat l 未分類 l コメント (0) l top

コメント

コメントの投稿












上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。