mirror of
https://github.com/dougg3/mac-rom-simm-programmer.git
synced 2024-09-27 02:54:28 +00:00
Finished testing the new functions I made for chip identification. It works well
This commit is contained in:
parent
8865d0c00f
commit
651c3a4be7
@ -35,109 +35,26 @@ void USBSerial_Init(void)
|
||||
USB_Init();
|
||||
}
|
||||
|
||||
static int gotChar = 0;
|
||||
void USBSerial_Check(void)
|
||||
{
|
||||
if (USB_DeviceState == DEVICE_STATE_Configured)
|
||||
/*if (USB_DeviceState == DEVICE_STATE_Configured)
|
||||
{
|
||||
if (CDC_Device_BytesReceived(&VirtualSerial_CDC_Interface))
|
||||
{
|
||||
CDC_Device_ReceiveByte(&VirtualSerial_CDC_Interface);
|
||||
|
||||
/*#define BUFSIZE 128UL
|
||||
static uint32_t readBuf[BUFSIZE];
|
||||
struct ChipID chips[4];
|
||||
ExternalMem_IdentifyChips(chips);
|
||||
char tmp[20];
|
||||
|
||||
int x;
|
||||
for (x = 0; x < 512UL * 1024UL / BUFSIZE; x++)
|
||||
for (x = 0; x < 4; x++)
|
||||
{
|
||||
ExternalMem_Read(x*BUFSIZE, readBuf, BUFSIZE);
|
||||
|
||||
if (CDC_Device_SendData(&VirtualSerial_CDC_Interface, (const char *)readBuf, BUFSIZE*4) != ENDPOINT_RWSTREAM_NoError)
|
||||
{
|
||||
PORTD |= (1 << 7);
|
||||
}
|
||||
}*/
|
||||
|
||||
// Start out in programming state...
|
||||
ExternalMem_DeassertCS();
|
||||
ExternalMem_DeassertOE();
|
||||
ExternalMem_DeassertWE();
|
||||
_delay_us(1);
|
||||
|
||||
// Write 0xAA to 0x555 (first byte of unlock sequence)
|
||||
// (The SST39SF040 asks for 0x5555 here -- but it doesn't matter, it's
|
||||
// just an alternating pattern of 1s and 0s and the chips will ignore
|
||||
// the bits above the value it asks for -- so I can just write a huge
|
||||
// alternating pattern and it will work with most/all chips)
|
||||
ExternalMem_SetAddressAndData(0x55555555UL, 0xAAAAAAAAUL);
|
||||
ExternalMem_AssertCS();
|
||||
ExternalMem_AssertWE();
|
||||
_delay_us(1);
|
||||
ExternalMem_DeassertWE();
|
||||
_delay_us(1);
|
||||
|
||||
// Write 0x55 to 0x2AA (second byte of unlock sequence)
|
||||
ExternalMem_SetAddressAndData(0xAAAAAAAAUL, 0x55555555UL);
|
||||
ExternalMem_AssertWE();
|
||||
_delay_us(1);
|
||||
ExternalMem_DeassertWE();
|
||||
_delay_us(1);
|
||||
|
||||
// Write 0x90 to 0x555 (autoselect command)
|
||||
ExternalMem_SetAddressAndData(0x55555555UL, 0x90909090UL);
|
||||
ExternalMem_AssertWE();
|
||||
_delay_us(1);
|
||||
ExternalMem_DeassertWE();
|
||||
//ExternalMem_DeassertCS();
|
||||
_delay_us(1);
|
||||
|
||||
// Now we can start reading...
|
||||
ExternalMem_SetAddress(0x0);
|
||||
ExternalMem_SetDataAsInput();
|
||||
ExternalMem_AssertOE();
|
||||
//ExternalMem_AssertCS();
|
||||
|
||||
_delay_us(1);
|
||||
|
||||
uint32_t result = ExternalMem_ReadData();
|
||||
|
||||
char test[20];
|
||||
sprintf(test, "%08lX ", result);
|
||||
CDC_Device_SendString(&VirtualSerial_CDC_Interface, test);
|
||||
|
||||
ExternalMem_SetAddress(0x1);
|
||||
result = ExternalMem_ReadData();
|
||||
sprintf(test, "%08lX\r\n", result);
|
||||
CDC_Device_SendString(&VirtualSerial_CDC_Interface, test);
|
||||
|
||||
// Exit back to normal mode...
|
||||
ExternalMem_DeassertOE();
|
||||
ExternalMem_SetAddressAndData(0x0, 0xF0F0F0F0UL);
|
||||
//ExternalMem_AssertCS();
|
||||
ExternalMem_AssertWE();
|
||||
_delay_us(1);
|
||||
ExternalMem_DeassertWE();
|
||||
//ExternalMem_DeassertCS();
|
||||
_delay_us(1);
|
||||
|
||||
// Now do normal read cycle to confirm we exited
|
||||
ExternalMem_SetAddress(0x0);
|
||||
ExternalMem_SetDataAsInput();
|
||||
ExternalMem_AssertOE();
|
||||
//ExternalMem_AssertCS();
|
||||
|
||||
_delay_us(1);
|
||||
|
||||
result = ExternalMem_ReadData();
|
||||
|
||||
sprintf(test, "%08lX ", result);
|
||||
CDC_Device_SendString(&VirtualSerial_CDC_Interface, test);
|
||||
|
||||
ExternalMem_SetAddress(0x1);
|
||||
result = ExternalMem_ReadData();
|
||||
sprintf(test, "%08lX\r\n", result);
|
||||
CDC_Device_SendString(&VirtualSerial_CDC_Interface, test);
|
||||
sprintf(tmp, "IC%d: M%02X, D%02X\r\n", x, chips[x].manufacturerID, chips[x].deviceID);
|
||||
CDC_Device_SendString(&VirtualSerial_CDC_Interface, tmp);
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
CDC_Device_USBTask(&VirtualSerial_CDC_Interface);
|
||||
USB_USBTask();
|
||||
|
Loading…
Reference in New Issue
Block a user