Doug Brown
147c2bfda3
Did some more splitting of responsibilities in the code
2011-12-26 15:02:39 -08:00
Doug Brown
e8999cfc54
Moved the programmer protocol to a different file in preparation for sharing it across all the various programs (bootloader, programmer, control program)
2011-12-26 11:31:45 -08:00
Doug Brown
258fb187ad
Added extra commands for moving back and forth between the bootloader and the actual program.
...
Disabled the flash erase capability on the main program while I'm working on the bootloader...
2011-12-24 20:09:39 -08:00
Doug Brown
035e7cce28
Updated fusebits to prepare for bootloader.
2011-12-20 21:50:14 -08:00
Doug Brown
e38269f879
Optimized the SIMM electrical test, fixed a few small bugs I had introduced in the previous commit. Added comments where necessary. Seems to work great now.
2011-12-18 14:55:08 -08:00
Doug Brown
a1ca591d60
The same short is never repeated twice with the same 2 pins now. However -- if there's a short between 1, 2, and 3 -- it will still show a short between 1 and 2, 1 and 3, and 2 and 3, even though that info is somewhat redundant. But the host software can iron all that out.
2011-12-18 14:18:49 -08:00
Doug Brown
9333b65cde
Fixed a tiny mistake -- forgot to say the name of one of my enums after the typedef.
...
Finished making the electrical test work -- I had failed to realize that I have to ignore the ground shorts once they have been found -- otherwise they reappear against EVERY tested pin (because they are always low and I'm testing for low pins -- duh!). Anyway, it was showing way too many shorts, and that's why. Now I independently can find shorts between separate pins without getting flooded with the ground shorts too. Only thing that's missing is the VCC shorts, but I can't do that without pullups (to my knowledge)
2011-12-18 12:00:22 -08:00
Doug Brown
beae025d1a
Oops, I was counting too many errors
2011-12-18 10:19:57 -08:00
Doug Brown
9054aaff0f
Started implementing electrical test that tells what pins are shorted to what
2011-12-18 10:18:30 -08:00
Doug Brown
52d33e077f
Broke out the SPI read/write into a single routine. Less code repetition -- easier to read and smaller.
2011-12-17 13:43:12 -08: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
b052bb62f8
Fixed a bug with how many bytes I was allowing to be written. It mostly works but it writes the chips in reverse...oops
2011-12-17 10:32:40 -08:00
Doug Brown
ca84a1d562
Kept working on the USB protocol
2011-12-16 20:13:34 -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
f45cc2c4d6
Started writing more command handling
2011-12-11 08:35:53 -08:00
Doug Brown
651c3a4be7
Finished testing the new functions I made for chip identification. It works well
2011-12-10 18:57:17 -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
1db6834da4
Added LUFA into the project, right now just for some demo stuff.
2011-12-09 22:11:31 -08:00
Doug Brown
f5bf5fed36
Commented the change I made to the DDR bit convention
2011-12-07 21:41:50 -08:00
Doug Brown
918b615654
Oops! the MCP23S17's DDR is backwards from the AVR. 1 = input, 0 = output. After swapping them, my electrical test is working!
2011-12-07 21:30:42 -08:00
Doug Brown
b475c28040
Fixed a bug in the address line tests, updated fusebits for now [with no bootloader yet], started working on getting all the tests working
2011-12-07 21:17:47 -08:00
Doug Brown
bfeadc7e3a
I had forgotten to check the control lines for ground shorts.
2011-12-04 17:09:57 -08:00
Doug Brown
65c6654660
Added delay "adapter" class to keep simm_electrical_test.c completely platform-independent.
...
Updated the electrical class to wait after setting up pins before reading them.
2011-12-04 16:30:26 -08:00
Doug Brown
fc44d70c4f
Finished writing the electrical test routine, and fixed a mistake in how I named a few functions in ports.c.
...
I'm not completely done with the electrical test because it only counts errors right now. So I need to implement a framework to determine which pins are shorted rather than just counting them.
2011-12-04 16:13:30 -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
4c51019e30
Moved the common "read/write register A and B together as a 16-bit
...
value" functionality into a read function and a write function. Also
added ability to set pull-ups.
2011-11-26 22:17:17 -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