add: FPC connector skeleton usart. Not working but if will be a starting point for those who might want to help out with it.

This commit is contained in:
Chris
2018-07-30 09:54:44 +02:00
parent 08d9d9daf9
commit bacf8aff0f
8 changed files with 384 additions and 32 deletions

View File

@@ -1053,6 +1053,21 @@ void UsbPacketReceived(uint8_t *packet, int len) {
}
#endif
#ifdef WITH_FPC
case CMD_FPC_SEND: {
// char header[] = {"*** Iceman Usart ***"};
// uint32_t res = usart_writebuffer((uint8_t *)header, sizeof(header), 10000);
//temp++;
uint8_t got = usart_read(10000);
if ( got > 0 ) {
Dbprintf("got %02x", got);
usart_write(got, 10000);
}
cmd_send(CMD_ACK,0,0,0,0,0);
break;
}
#endif
case CMD_BUFF_CLEAR:
BigBuf_Clear();
break;
@@ -1292,7 +1307,7 @@ void UsbPacketReceived(uint8_t *packet, int len) {
switch(c->arg[0]) {
case 0: SetAdcMuxFor(GPIO_MUXSEL_LOPKD); break;
case 2: SetAdcMuxFor(GPIO_MUXSEL_HIPKD); break;
#ifndef WITH_FPC
#ifndef WITH_FPC
case 1: SetAdcMuxFor(GPIO_MUXSEL_LORAW); break;
case 3: SetAdcMuxFor(GPIO_MUXSEL_HIRAW); break;
#endif
@@ -1307,12 +1322,6 @@ void UsbPacketReceived(uint8_t *packet, int len) {
break;
case CMD_PING:
cmd_send(CMD_ACK,0,0,0,0,0);
#ifdef WITH_FPC
char header[] = {"*** Iceman Usart ***"};
uint32_t res = usart_writebuffer((uint8_t *)header, sizeof(header), 100000);
Dbprintf("after sending FPC [%x]", res);
#endif
break;
#ifdef WITH_LCD
case CMD_LCD_RESET:
@@ -1406,6 +1415,7 @@ void __attribute__((noreturn)) AppMain(void) {
#ifdef WITH_SMARTCARD
I2C_init();
#endif
#ifdef WITH_FPC
usart_init();
#endif

View File

@@ -145,7 +145,7 @@ void FpgaSetupSscExt(uint8_t clearPCER) {
// clock comes from TK pin, no clock output, outputs change on falling
// edge of TK, sample on rising edge of TK, start on positive-going edge of sync
AT91C_BASE_SSC->SSC_TCMR = SSC_CLOCK_MODE_SELECT(2) | SSC_CLOCK_MODE_START(5);
AT91C_BASE_SSC->SSC_TCMR = SSC_CLOCK_MODE_SELECT(2) | SSC_CLOCK_MODE_START(5);
// tx framing is the same as the rx framing
AT91C_BASE_SSC->SSC_TFMR = AT91C_BASE_SSC->SSC_RFMR;
@@ -462,9 +462,11 @@ void SetAdcMuxFor(uint32_t whichGpio) {
GPIO_MUXSEL_HIRAW;
LOW(GPIO_MUXSEL_HIPKD);
LOW(GPIO_MUXSEL_LOPKD);
#ifndef WITH_FPC
LOW(GPIO_MUXSEL_HIRAW);
LOW(GPIO_MUXSEL_LORAW);
LOW(GPIO_MUXSEL_LOPKD);
#endif
HIGH(whichGpio);
}