Commit Graph

25 Commits

Author SHA1 Message Date
Doug Brown
e2963070bc Added ability to tell programmer firmware to selectively unlock chips. 2013-07-04 12:10:18 -07:00
Doug Brown
bf583bf65b Fixed a couple of bugs -- first, I was reading the wrong datasheet.
Second, I was doing a bitwise AND when I was trying to do a modulo.
The firmware is now tested for erasing only a portion of the SIMM.
2012-10-16 21:25:15 -07:00
Doug Brown
3252f66749 Added untested support for erasing a specific portion of the SIMM
(in 256 KB increments). Won't be able to test it until I implement it in
the control software as well, but I think it should work.
2012-10-16 18:36:55 -07:00
Doug Brown
d484d126e5 Got rid of my weird "inverse data" hack for verification and turned on
the pull-up resistors on every read instead. That's a better technique
and also makes other things more consistent -- e.g. reading back 0xFF
if a chip identification is attempted when a chip isn't installed.
2012-09-30 20:58:07 -07:00
Doug Brown
2c8e7e7184 Fixed the problem that caused no chip present to verify OK after a write
The problem was that the data bus would "remember" the last data I wrote
to it if a chip was not driving the data bus on a read, so it would
think that the chip had returned the correct data. I fixed it by writing
the opposite data to the data bus before a verification read.
2012-09-30 16:27:01 -07:00
Doug Brown
667c2c5a2d Added verify during write. It seems to mostly work except when the chip
is completely removed from the SIMM -- in that case, the verification
still passes for some reason. I'm still debugging this one. Maybe the
data I had just written is still essentially on the bus because of the
floating pins and it reads it too fast? Maybe turning on pull-ups would
help with that?
2012-09-30 14:41:22 -07:00
Doug Brown
7acb3ffcc3 Added support for (untested yet) 8 MB ROM SIMM with chips that expect a
slightly different programming protocol.
2012-09-02 15:56:49 -07:00
Doug Brown
145487d388 Added GPL header to all of my source files. 2012-05-25 20:21:04 -07:00
Doug Brown
d0b50e15c9 Removed old dead code from external_mem.c 2012-05-13 17:06:57 -07:00
Doug Brown
540e04331a Fixed the ordering of the chips -- I had the bytes reversed. Now, when I write/read a continuous stream of data, the bytes will correspond with the correct chips. 2011-12-17 11:18:56 -08:00
Doug Brown
4f0d1a894c Optimized some of my routines and fixed a nasty, nasty bug that was causing the board to crash because of multiple things being outputs simultaneously. 2011-12-13 21:56:20 -08:00
Doug Brown
4adb0c4980 Started working on more optimizations, but something weird is happening and it's crashing...not sure why yet. 2011-12-11 21:48:26 -08:00
Doug Brown
1c07518ab0 Added electrical test option to my temporary command line.
Also experimented with skipping the SPI -- I left my test code in there, commented out, in case I want to do some more speed testing.
2011-12-11 15:52:04 -08:00
Doug Brown
7099218bf1 Added some optimization to remove the 1us delay on the write pulse, but I'm not sure that it matters much. 2011-12-11 13:45:17 -08:00
Doug Brown
b4eb6c3ddc Started getting writing working, as well as the ability to restrict to a specific set of chips to write to 2011-12-11 13:28:32 -08:00
Doug Brown
e0977a9339 Created read and write cycle functions, along with a block read function. I think this will look better...
I also changed the port module so it doesn't needlessly update the data direction register over SPI if it's being told to set the same value it had before.
2011-12-11 10:12:22 -08:00
Doug Brown
8865d0c00f I got the device identification working, and I'm in the middle of breaking it into its own set of functions for write cycles, read cycles, unlock sequence, etc. 2011-12-10 18:40:30 -08:00
Doug Brown
1540bcadd1 Tested reading the entire SIMM contents back to the computer (it works) 2011-12-10 13:53:43 -08:00
Doug Brown
7db22e08af Fixed a few stupid bugs -- it's now reading data correctly. 2011-12-10 13:02:21 -08:00
Doug Brown
2bc61f41aa Continued playing with USB serial stuff. I think it's working well now, but I'm running into problems reading from the SIMM, so I need to figure out why I'm not getting the data I expect. 2011-12-10 10:35:41 -08:00
Doug Brown
06a667d66d Fixed an inaccurate comment. 2011-11-27 23:06:02 -08:00
Doug Brown
0a52df645a - Fixed stupid bug of -1 instead of +1 in external_mem.c.
- Began writing an electrical test so I remember WTF I'm doing later
2011-11-27 00:09:29 -08:00
Doug Brown
1595c69890 OK -- so I separated the actual port code from the external memory controller code. I think this makes more sense.
It does add some complexity to the code. I may be going through a chain of calls just to turn the CS pin on, for instance. Hopefully I'm not going too crazy with this.

Anyway, this means that I can control the ports from a SIMM electrical test routine using the same types of functions that the actual programming  controlling code would use, without having to duplicate a bunch of port definitions and bit manipulation. I made sure to add all the functions I can think of needing to the ports module. We'll see if I got them all!
2011-11-27 00:01:29 -08:00
Doug Brown
34438a898e Oops -- I had assert and deassert backwards. 2011-11-25 23:12:58 -08:00
Doug Brown
407f6831a9 Initial import of my test code for the SIMM programmer board. Right now
it contains an (untested) MCP23S17 driver complete with AVR SPI support,
and an (untested) external memory interface driver that uses it.
2011-11-25 23:10:30 -08:00