Can anyone tell me if there is a way to increase the voltage on the TI84+C USB?

Here is my minimal USB Host init code:

Code:

 xor a
 out ($5b),a
 ld a,$44
 out ($54),a
 ld a,8
 out ($4c),a
 ld a,1
 out ($8f),a


It puts out 3.22V on the regular TI84 but only 2.58V on the +C. Is that the max limit?
You're not initializing the voltage pump correctly. The TI-84+ series uses resistive voltage regulators to drop the voltage to 3.3 volts, and then a charge pump boosts it back up to 5.0 for USB.

BrandonW believes that the TI-84+ series may have more than one version of the voltage pump. All the WikiTI stuff about there being multiple USB versions may refer to the voltage pump and not the USB buffering and signaling circuits. This would explain why the OS USB initialization branches depending on the low three bits of the GPIO port, but is mostly the same thereafter.
Cool, this topic is actually exactly what I need, and I found it on Google by searching for "out ($8F),a". I'm trying to power a 5V device (my GPS module) off of the calculator's USB OTG port, and I eventually found my way to WikiTI's Port $8F page. If that's the incorrect sequence to initialize the charge pump, what is the correct sequence?

Edit: The code above gives me exactly 0.342V on the VBUS line. Neutral I'm sure I'm making a similar charge-pump-related mistake.
So, careful examination of certain documentation reveals that the USB core TI licensed has its own voltage pump circuits. Yet, it also allows you to use an external voltage pump. (The external voltage pump may actually be located in the ASIC, being external in the sense that it's not part of the licensed section of silicon.) BrandonW suggested that if you're using the internal voltage pump, you have to go through a complex initialization sequence involving a number of ports. However, if an external voltage pump is present (indicated by a set bit in the GPIO read port), then all you have to do is fire up the voltage pump by writing to the GPIO port.

I suggest you consult the other documentation on the TI-84+ hardware so you know what port numbers to look for in OS disassemblies. Disassemblies are really the best place to get information.

You could also try looking in the USB8X source, but IIRC, that differs USB initialization to the OS. Although, it might provide a good starting point for locating relevant OS code.
Annoyingly, I can't even get anything above ~330mV from using USB8x directly, let alone USB8x's initialization code put into my own program with some minor modifications to make it not care what kind of peripheral is connected. I'll try with an older calculator; mine is a 2009 model with Boot Code 1.02, which USB8x appears to care about.

Edit: Note to future readers of this topic: make sure you are using a mini-USB A plug, not a B plug! If you have a B plug, you'll have to solder pins 4 and 5 togethers, otherwise the calculator's controller will shut off VBUS power after a fraction of a second. Also, if you use BCALL 5290, the OS will probably turn off power after about 2.0 seconds if you don't have a valid USB (ie, not power-only) device connected. I ended up using a stripped-down version of Linky's USB host initialization code, with many thanks to BrandonW for his patience, and DrDnar for his assistance as well.

Here is a bluetooth dongle I made for the TI-84+C. I planned to improve on the apps and I built a vacuum forming rig to make a proper case for it but the project died pretty quickly. I thought I was going to exhibit at the NCMakerFaire but I've been pouring alot of money into a new computer and a man-cave.

The USB host routine is from usb8x so many thanks to Dan Englender, Brandon Wilson, and Michael Vincent.

I thought that I could sneak by with just the bare minimum to put the calc into host mode, all I wanted was some asynchronous serial comm and some power! But DrDnar was there to let me know it doesn't work like that (DrDnar knows all!) so big thanks to him! Unfortunately I have failed him as I still don't fully understand the USB. It will come in time though.
That's still cool work, even if you're not exactly sure how USB works on the calculators; even BrandonW and DrDnar don't get 100% of how it functions. I hope you'll find the time and funds to resume this project at some point in the future, not least because it could help inspire you to pursue further hardware-related projects for the calculators.
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement