What we know so far:
The USB controller IP is an FOTG210
There are some drivers for Linux here: http://lxr.free-electrons.com/source/drivers/usb/gadget/udc/fotg210-udc.c
(from WikiTI)
Port Bits Information
000F FF Bit 6 is reset if Type A plug is in the USB port
3104 FF In peripheral mode, the low 7 bits are the USB device address, and the upper bit is set.

Physical address range 0x92200000 ~ 0x92200FFF (4095)
Virtual address range compiler 0xF9220000 ~ 0xF9220FFF (4095)
Port # 3000-7095
http://lxr.free-electrons.com/source/drivers/usb/gadget/udc/fotg210.h#L107

If I find anything, I'll update this thread. If you find anything, please post below.
That post you made has pretty much all the information you need. We know that USB is in the 0x3000 port range, which is memory mapped to the 0xE20000-0xE2FFFF mmio, with every 0x200 bytes mirrored. Using the online driver documentation, you can determine the offsets for each USB function, and how to work with it. Note also that the 0xD000 range (0xF80000-0xF8FFFF, mirrored every 0x80 bytes) is also a part of the USB controller; this appears to be the master control though. The USB buffer is 1Kb in size. In addition, port 0x000F has the upper bit set if USB is inserted, and bit 6 is reset if there is a A type plug inserted.

Perhaps this thread could also discuss the potential system calls available? A lot of them look to be a C style library implementation to directly interact with the USB controller.
I suspect that system calls will make our lives a lot easier, especially if we don't yet know exactly how to initialize the controller, set up endpoints, start and end transfers, poll for and send messages, and so on. Thanks for starting the exploration into this, KingInfinity!
This is a lot of information, but... what does it all mean? I understand the information gotten from WikiTI, but how can we use this to manipulate calc-to-calc (or calc-to-computer) communication?
Hactar wrote:
This is a lot of information, but... what does it all mean? I understand the information gotten from WikiTI, but how can we use this to manipulate calc-to-calc (or calc-to-computer) communication?

I'm not sure. I just did the research hoping that someone with more knowledge would pick it up, seeing it already jump started. I couldn't really find much information relating to the USB IP, however, I'll keep looking. The information above was extracted from a driver written by the manufacturer.
There's also this driver here, written in C.
  
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