[NTLK] MP2x00 Internal Interconnect Breakout

Matthias Melcher mm at matthiasm.com
Tue Jan 6 06:52:44 EST 2015


> On Jan 6, 2015, at 2:28 AM, Jake Bordens <jake at allaboutjake.com> wrote:
> 
> 
>> Serial Port 0 uses gpSerPortSel on pin 8. When gpSerPortSel switches 
>> high, the card must respond with a low on DCD (5).
> 
> Did you read about this handshake somewhere or did you discover this by 
> experimentation?  This possibly explains a behavior I saw on my 
> oscilloscope.  When opening a serial connection (Serial0) in PT-100, the 
> SerPortSel0 pin goes high for 5 milliseconds.  I thought this might have 
> been some sort of reset of the LTC1323 driver.  Maybe this is the newton 
> waiting for a the modem to assert DCD low?  
> 
> One thing about this case is I'm not sure how it isolates the external 
> port-- for example, what happens if you've got an external modem connected 
> by the external port that's asserting DCD high during this process?  You 
> could do damage by having both devices trying to drive DCD.

Well, that's what the SerPortSel0 is for: as long as it is low, it selects the internal LTC1323. When it switches to high, the internal LTC1323 is disabled, leaving all serial pins including DCD at high impedance (probably pulled high by a resistor somewhere). SO this is the time when the modem card can (and should) interfere.

> I have to try this again and see if I see if this pulse happens when the 
> DOCK application tries to access the port.

I am pretty sure it does.

> I'm trying to understand how you would 
> select the external port with this handshake.  IF the modem always answers 
> with DCD low to this 5ms pulse, and the Newton keeps the SerPortSel0 high, 
> then how do you use the external port?  

The modem would use port 3, while the sync uses port 0. For SER-001 (as well as for my USB implementation), DCD is only pulled low if there is a cable and a connection on the board.

Also, from the view of the OS, this is merely an option. Even if DCD is pulled low, the OS can still pull SerPortSel0 to low, disabeling the serial port and switching back to the internal connector.

> We have a "use internal modem if 
> available" method, but not a "use external port, even if there's an 
> internal modem" method.  Not sure if I'm communicating this well.

I think I understood. With the modem, it's just the other way around, I'd guess (an external modem should have preference to an internal one). But then again, that's for the OS to decide.

>> TVoyagerPlatform::SerialPort0LineDriverConfig(unsigned char, unsigned 
>> char) writes to GPIO6 which is gpSerPortSel.
> 
> Yes, and TVoyagerPlatform::SerialPort3LineDriverConfig(unsigned char, 
> unsigned char) writes to DIO 0x22... which you can also see in Ekhart's 
> code.  What puzzles me here is the N2 docs don't mention DIOs greater than 
> 5.  I didn't realize that "2: available for configuration to the slot" 
> refers to the internal modem "slot".

The copy of the documentation was preliminary. Many field have not been filled, and there probably was a disclaimer that things can change without notice. Since Apple had the power over the Silicon as well, they may have easily added many more digital ports. I am sure that these docs were (and still are) under an NDA. It's a miracle that they "appeared". It would be great if we would have the latest copy, but since only Sharp licensed the ROM, I doubt that there will be any "leaks" in the future. And even at Sharp, probably nobody has a clue where those documents went.

> Unrelated: I never really paid attention to the timing diagrams in the N2 
> internal slot document, but they seem to talk to how you could use an 
> external clock for higher speeds.  I haven't fully parsed it, but that 
> would be really cool for my use of this for WiFi.  Much better than 
> 115200.  Though for my current attempt, I'm sticking to standard baud 
> rates.  One problem at a time...

Yeah, you may still be able to double that for ser0. OTOH, we already have timing issues with ser0 when using the regular serial protocol. You'd probably reach the end of what the DMA/Interrupt/Buffer setup of the serial port can handle. PCMCIA is at a great advantage here because it can map directly into memory.

Matthias





More information about the NewtonTalk mailing list