The Extender uP Secondary FAQ By Bryan Rittmeyer (bryanr@pair.com) Version 1.50 --- Note: I wrote this a while ago, so a lot of it is outdated and somewhat anal. :-) Please E-Mail me if you have any questions... --- This file provides information for the hardware "hacker" regarding the Extender uP. The information included in this file is for educational purposes only -- No guarentee as to the accuracy or reliability of the features and functions described below is implied. Prior memory expansion products included only limited information. However, with the addition of complicated microcontrollers, it is important that those interested have some detailed knowledge about how a next-gen "expander" works. What is the Extender uP? ^^^^^^^^^^^^^^^^^^^^^^^^ The Extender uP is a device for the TI calculators that functions as a portable 512 KB "silicon hard drive." It connects via the TI calculator's link port, and speaks in the native TI low level protocol (described elsewhere.) It consists of a voltage regulation module, a PIC16F84 flash EEPROM microcontroller clocked by a 10 MHz resonator or crystal, an Atmel AT45D041JC 4 MBit serial flash EEPROM, and assorted required passives. Schematics are availible. Check the web site listed below. How does the firmware work? ^^^^^^^^^^^^^^^^^^^^^^^^^^^ The Extender uP firmware is the culmination of almost four months of hard work -- For obvious reasons, the source to the firmware has not been released. If you attempt to read the firmware out of the PIC16F84, you will get all "nop" instructions. However, many in the TI-H community are potentially interested in how it works. A basic description of how the firmware works will be provided for those interested. When turned on the PIC16F84 executes initialization code setting up the I/O pins for their respective functions (I.E. inputs/outputs.) Once initialized, the PIC will begin to look for a low on one of the two calculator lines. A low signifies the start of a TI low level protocol conversation. During this time, the serial flash array is disabled to conserve energy. When the Extender uP does detect an incoming bit, it proceeds to clock in one byte from the attached calculator (or PC.) It compares this byte with a list of preprogrammed op codes, which are listed below. If a match is found, the appropriate action is taken, and sleep mode is reentered when the process is complete. If a match is not found, the PIC ignores the byte, and reenters bit-scan mode. The EuP uses very little power. I have left the prototype unit on overnight and had it still have plenty of power left in the morning. This is because of the non-volatile technology employed in the EuP main array. Op Codes ^^^^^^^^ The op codes used by the PIC16F84 in the prototype match the op codes of the AT45D041JC to speed up processing. However, the op codes may be changed in future firmware revisions. Currently, only three op codes are implemented. These are Status Read ($57), Main Memory Page Program through Buffer 1 ($82) and Main Memory Page Read ($52.) The Status Read op code is not currently used by Extend92, however will be in the future. The Atmel DataFlash data sheet should be contacted for more information. Additional Goodies ^^^^^^^^^^^^^^^^^^ Currently, I have reduced the PIC firmware to bare-bones so that I can be sure it works perfectly before selling PICs (which I am doing now, please the EuP web site listed below). However, the beta firmwares have included 2400 baud serial output support, and input would be fairly easy to add. I could step the baud rate up, also. Basically, I could easily adapt the EuP into also working like an authentic graph link -- It would work with TI's own software, and could be used as a "TI Modem" like many have expressed an interest in. Basically, one ~$50 device could do it all. Boy, I bet TI will love to hear that. ;) Source Code ^^^^^^^^^^^ Currently, source code to the Extend92 driver is not availible. However, in the near future full source may be released to those honestly interested in writing drivers for other calculators. The source is copyrighted, and may not be used in any form with anything besides the Extender uP. I would like to openly release full source, but the EuP project is the culmination of months of work and I don't want to get screwed. :-\ URLs: * http://horizon.pair.com/ The Extender uP homepage. New versions of this document may be found there, in addition to more information and schematics and plans. More links are provided in the links section of this site. * http://www.atmel.com Manufacturers of the serial flash EEPROM used in the Extender uP. A datasheet is availible on their site, and is essential to a hardware hacker. * http://www.marshall.com Marshall Electronics, a speedy Atmel distributor with online ordering and somewhat outrageous shipping charges. :-\ --- Bryan Rittmeyer bryanr@pair.com