| Author |
Message |
|
|
Posted: Apr 05, 2012 - 03:11 PM |
|

Joined: Dec 09, 2010
Posts: 154
Location: BW, Germany
|
|
Hi,
I try to generate CS signals for external components using the External memory interface of the AT90USB1287 and a 74HCT138N. I'm using the adressbits 12-14 of the XMEM and feed them to the Inputs of the 3 to 8 decoder. Adressbit 15 is used as G1 on the 3 to 8 decoder. I want to achieve the following outputs:
CS0 0xB000..0xBFFF - Y3
CS1 0xC000..0xCFFF - Y4
CS2 0xD000..0xDFFF - Y5
CS3 0xE000..0xEFFF - Y6
CS4 0xF000..0xFFFF - Y7
The 74HCT138 is connected as shown on the attached image.
When using adresses from 0xB000 to 0xFFFF I see the proper signals on the inputs of the 74HCT138. However I got a permanent High signal on every output.
The AVR is clocked with an external 16MHz Quarz scaled down to 2MHz using the CKDIV8 Fuse.
The XMEM interface is initialized without any special settings.
Code:
XMCRA = (1 << SRE);
XMCRB = 0x00;
Do you see any problem with the way the 74HCT138 is wired up? Or any other problem. |
Last edited by MannImMond on Apr 11, 2012 - 04:35 PM; edited 3 times in total
|
| |
|
|
|
|
|
Posted: Apr 05, 2012 - 03:24 PM |
|

Joined: Aug 29, 2002
Posts: 786
Location: Muenster, Germany
|
|
| That wiring is absolutely correct. If you see the correct levels at the 4 input lines A12-A15, then this circuit *must* provide the correct output. Did/can you test the circuit without actually use an AVR to generate the address signals? |
_________________ Einstein was right: "Two things are unlimited: the universe and the human stupidity. But i'm not quite sure about the former..."
|
| |
|
|
|
|
|
Posted: Apr 05, 2012 - 03:30 PM |
|

Joined: Dec 09, 2010
Posts: 154
Location: BW, Germany
|
|
| Hmm I may be able to test it after getting some longer wires for my breadboard since I currently don't have any at home. Is it possible that the pulses on the input of the Chip are too short for whatever reason(I only got a XProtolab at home and on that screen the pulses look really ugly). |
|
|
| |
|
|
|
|
|
Posted: Apr 05, 2012 - 04:26 PM |
|

Joined: Jul 19, 2011
Posts: 460
|
|
Mannin,
It all looks good to me too. I have used this type of memory decoding with a 138 on many different types of processors, but never the AT90USB1287. So, I can't say if there is something in the memory mapping set-up and/or external memory accessing of this processor that is maybe tripping you up.
In this processor is it possible to set-up the A12-A15 address pins as GPIOs? If so, do that, then write a simple loop to walk-thru the 16 state possiblilities which scoping or DVMing in a static, or near-static, condition. That exercise will at least tell you that your wiring matches your schematic. If there is a wiring mixup, you'll stand a better chance of deducing it under static conditions than with 16MHz pulses. |
|
|
| |
|
|
|
|
|
Posted: Apr 05, 2012 - 04:28 PM |
|

Joined: Dec 09, 2010
Posts: 154
Location: BW, Germany
|
|
|
Chuck-Rowst wrote:
Mannin,
[...]
In this processor is it possible to set-up the A12-A15 address pins as GPIOs? If so, do that, then write a simple loop to walk-thru the 16 state possiblilities which scoping or DVMing in a static, or near-static, condition. [...]
Great idea thanks I'll try that tonight. |
|
|
| |
|
|
|
|
|
Posted: Apr 06, 2012 - 03:17 AM |
|


Joined: May 04, 2007
Posts: 3529
Location: Geelong Australia, Home of the "Cats"
|
|
| What is the supply voltage of the AT90USB1287? It must be +5V to interface to the 74HCT138 which can only run on +5 (74HC138 can run on 3.3V) |
_________________ Charles Darwin, Lord Kelvin & Murphy are always lurking about!
Lee -.-
(If you haven't already done so, edit your PostNuke profile and let let us know where you are, what you do & what your interests are.)
|
| |
|
|
|
|
|
Posted: Apr 06, 2012 - 09:36 AM |
|

Joined: Dec 09, 2010
Posts: 154
Location: BW, Germany
|
|
| The AT90USB1287 is powered with +5V since I want to clock it with 16MHz at certain times. |
|
|
| |
|
|
|
|
|
Posted: Apr 07, 2012 - 07:44 AM |
|


Joined: May 04, 2007
Posts: 3529
Location: Geelong Australia, Home of the "Cats"
|
|
|
Quote:
When using adresses from 0xB000 to 0xFFFF I see the proper signals on the inputs of the 74HC138.
How are you measuring those?
Quote:
However I got a permanent High signal on every output.
One would normally deduce, that it is not enabled correctly on G1/G2A/G2B! |
_________________ Charles Darwin, Lord Kelvin & Murphy are always lurking about!
Lee -.-
(If you haven't already done so, edit your PostNuke profile and let let us know where you are, what you do & what your interests are.)
|
| |
|
|
|
|
|
Posted: Apr 07, 2012 - 11:30 AM |
|

Joined: Dec 09, 2010
Posts: 154
Location: BW, Germany
|
|
|
LDEVRIES wrote:
Quote:
When using adresses from 0xB000 to 0xFFFF I see the proper signals on the inputs of the 74HC138.
How are you measuring those?
I got one of these fantastic XProtolabs from Gabotronics which means I can only measure roughly at this frequency but I see peaks on the correct Pins.
Quote:
Quote:
However I got a permanent High signal on every output.
One would normally deduce, that it is not enabled correctly on G1/G2A/G2B!
Yes that's what I assumed aswell. G1 is tied to A15 and shows of course the same peak as the other Adress lines -> is that a problem? G2A and G2B are hardwired to Ground as shown in the schematic (and measured aswell). |
|
|
| |
|
|
|
|
|
Posted: Apr 07, 2012 - 01:17 PM |
|


Joined: Nov 01, 2005
Posts: 6323
Location: Hilversum - the Netherlands
|
|
Mr Moonlight, glitches on the outputs of the 138 are unevitable in this HW setup. You need some gating signal that tells when an address is valid.
It depends on what you plan to connect to the outputs of the 138.
Edit: if you use ALE as "address is valid"-signal, and connect it to G2A or G2B, you will have clean and glich-free outputs. |
_________________ Dragon broken ? Or problems with the Parallel Port Programmer ? Scroll down on my projects-page http://www.aplomb.nl/TechStuff/TechStuff.html for tips
Last edited by Plons on Apr 07, 2012 - 01:25 PM; edited 1 time in total
|
| |
|
|
|
|
|
Posted: Apr 07, 2012 - 01:17 PM |
|


Joined: May 04, 2007
Posts: 3529
Location: Geelong Australia, Home of the "Cats"
|
|
|
Quote:
I got one of these fantastic XProtolabs from Gabotronics which means I can only measure roughly at this frequency
While they are a nice device, I would not call it a definitive test.
Quote:
but I see peaks on the correct Pins.
But are the peaks valid logic signals?
Quote:
G1 is tied to A15 and shows of course the same peak as the other Adress lines -> is that a problem?
I suspect so! You could try connecting G1 to Vcc temporarily, which means you are at least 100% certain of enabling it and you should get at least one active output.
If that gives you you outputs, perhaps a pull-up(4.7-10K)on G1 might help ( and more than likely you will require them on A,B & C as well.
Nard brings up a good point if you are going to address memory. I can recall the E signal in MC6809 days(& earlier days) |
_________________ Charles Darwin, Lord Kelvin & Murphy are always lurking about!
Lee -.-
(If you haven't already done so, edit your PostNuke profile and let let us know where you are, what you do & what your interests are.)
|
| |
|
|
|
|
|
Posted: Apr 07, 2012 - 02:26 PM |
|

Joined: Dec 09, 2010
Posts: 154
Location: BW, Germany
|
|
|
Quote:
You need some gating signal that tells when an address is valid.
It depends on what you plan to connect to the outputs of the 138.
The output of the 138 controls the CS for an 8255A. A0-A1 are used as inputs to the 8255A on this extension card whereas A12-A15 are used to chose between different cards(different CS).
Plons wrote:
[...]
Edit: if you use ALE as "address is valid"-signal, and connect it to G2A or G2B, you will have clean and glich-free outputs.
That is a good idea.
Quote:
Quote:
but I see peaks on the correct Pins.
But are the peaks valid logic signals?
I can't test that at home. I will have the chance on Tuesday. |
|
|
| |
|
|
|
|
|
Posted: Apr 07, 2012 - 02:34 PM |
|


Joined: Nov 01, 2005
Posts: 6323
Location: Hilversum - the Netherlands
|
|
|
Quote:
The output of the 138 controls the CS for an 8255A. A0-A1 are used as inputs to the 8255A on this extension card whereas A12-A15 are used to chose between different cards(different CS).
Then my suggestion for using ALE on G2A or G2B will do fine. Rd and Wr on the 8255A will take care of the rest.
Btw, I had to consult an old Intel databook: 1983. And the typical smell brought back memories ....
Nard |
_________________ Dragon broken ? Or problems with the Parallel Port Programmer ? Scroll down on my projects-page http://www.aplomb.nl/TechStuff/TechStuff.html for tips
|
| |
|
|
|
|
|
Posted: Apr 07, 2012 - 09:21 PM |
|


Joined: Nov 01, 2005
Posts: 6323
Location: Hilversum - the Netherlands
|
|
| If the 8255 boards are more than 30-40 cm away from the AVR, put resistors in series and cap's to ground on all signals going to those boards: AVR's and HC(T)logic have larger slewrate values then the old stuff. |
_________________ Dragon broken ? Or problems with the Parallel Port Programmer ? Scroll down on my projects-page http://www.aplomb.nl/TechStuff/TechStuff.html for tips
|
| |
|
|
|
|
|
Posted: Apr 07, 2012 - 11:21 PM |
|

Joined: Dec 30, 2004
Posts: 8730
Location: Melbourne,Australia
|
|
| The OP may have to resort to using bit bashing to implement the bus interface. 8255 were not too fast at the gest of times. To see if the decoder is working, use a flipflip or d type latch clocked by the select output and put a led or two on the output. |
|
|
| |
|
|
|
|
|
Posted: Apr 08, 2012 - 07:41 AM |
|


Joined: Nov 01, 2005
Posts: 6323
Location: Hilversum - the Netherlands
|
|
|
Quote:
8255 were not too fast at the gest of times.
Indeed.
But I checked the Intel databook and the datasheet of the 1287; with the info that the 1287 is running at 2MHz, my conclusion is that Moonraker is in the clear  |
_________________ Dragon broken ? Or problems with the Parallel Port Programmer ? Scroll down on my projects-page http://www.aplomb.nl/TechStuff/TechStuff.html for tips
|
| |
|
|
|
|
|
Posted: Apr 11, 2012 - 01:19 PM |
|

Joined: Dec 09, 2010
Posts: 154
Location: BW, Germany
|
|
It seems that the 138 can't handle that speed. The highest speed that still worked was using 2 NOPs(At 2MHz) between toggling writing 0x0B -> 0x00 to the port. This seems way too slow for this device. This was measured when nothing was connected to the output of the 138. The NXP datasheet claims a max. propagation delay of 35/40 ns for 25°. Which would result in a frequency of 25MHz. Or is the propagation delay the wrong parameter?
Quote:
Quote:
The output of the 138 controls the CS for an 8255A. A0-A1 are used as inputs to the 8255A on this extension card whereas A12-A15 are used to chose between different cards(different CS).
Then my suggestion for using ALE on G2A or G2B will do fine. Rd and Wr on the 8255A will take care of the rest.
Do I really need to do this? G1 is already connected to A15. Only Adresses from 0xB000 - 0xFFFF are used in this System which means chip selects are only generated for valid adresses. |
|
|
| |
|
|
|
|
|
Posted: Apr 11, 2012 - 03:32 PM |
|


Joined: Nov 01, 2005
Posts: 6323
Location: Hilversum - the Netherlands
|
|
|
Quote:
Do I really need to do this?
Yes. The address-lines A8~A15 change level when ALE is high. Decoding without ALE to G2A or G2B will result in spikes on the outputs during level-change of A8~A15.
About the 74HTC138N (I assume you mean 74HCT138N): I checked the datasheet, and I see no reason for the need of a 2 NOP delay.
Can you post the complete schematic and the test SW ?
Edit: 2 NOP delay ?? Are you writing to the IO-ports instead of using the external memory interface ? And how do you set SRWn1 and SRWn0 ?? |
_________________ Dragon broken ? Or problems with the Parallel Port Programmer ? Scroll down on my projects-page http://www.aplomb.nl/TechStuff/TechStuff.html for tips
|
| |
|
|
|
|
|
Posted: Apr 11, 2012 - 04:30 PM |
|

Joined: Dec 09, 2010
Posts: 154
Location: BW, Germany
|
|
|
Plons wrote:
Quote:
Do I really need to do this?
Yes. The address-lines A8~A15 change level when ALE is high. Decoding without ALE to G2A or G2B will result in spikes on the outputs during level-change of A8~A15.
Ok I'll try that.
Quote:
About the 74HCT138N (I assume you mean 74HCT138N): I checked the datasheet, and I see no reason for the need of a 2 NOP delay.
Can you post the complete schematic and the test SW ?
Yes HCT. I'll fix it.
Both attached
Quote:
Edit: 2 NOP delay ?? Are you writing to the IO-ports instead of using the external memory interface ? And how do you set SRWn1 and SRWn0 ??
Yes I tested everything by writing to the IO-ports because it worked with static levels(as suggested by Chuck-Rowst) but it failed using the XMEM interface @2MHz that's why I lowered the delay between toggling the pins down to 2 Nops.
Using 16MHz Quarz with CKDIV8
Code:
Code:
#define F_CPU 2000000UL
#include <avr/io.h>
#include <stdint.h>
#include <stdio.h>
#include <util/delay.h>
#define OFFSET 0xB000
#define PIO_A_KANAL 0xB000
#define PIO_B_KANAL 0xB001
#define PIO_C_KANAL 0xB002
#define PIO_CTRL 0xB003
#define PIO_INIT 0x90
void test_init();
int main(void)
{
test_init();
while(1)
{
PORTC = 0xB0;
asm("Nop");
asm("Nop");
PORTC = 0x00;
_delay_ms(1000);
}
}
void test_init()
{
DDRC = 0xFF;
PORTC = 0xB0;
}
|
|
|
| |
|
|
|
|
|
Posted: Apr 11, 2012 - 04:46 PM |
|


Joined: Nov 01, 2005
Posts: 6323
Location: Hilversum - the Netherlands
|
|
|
Quote:
Yes I tested everything by writing to the IO-ports because it worked with static levels
But my dear fellow, direct accessing the IO-port is a completely different way of "cooking". You will need the external memory interface when you want to control the 8255A's.
With direct access to portC, ALE needs to be handled as well: portE.2
Thanks for posting what I asked for, I will have a further look into it tonight.
PS1 We need the underlying assembler code when we discuss timing
PS2 With the program as posted, can you post scope-picture of the 138 output ? |
_________________ Dragon broken ? Or problems with the Parallel Port Programmer ? Scroll down on my projects-page http://www.aplomb.nl/TechStuff/TechStuff.html for tips
|
| |
|
|
|
|
|
Posted: Apr 11, 2012 - 05:17 PM |
|


Joined: Nov 01, 2005
Posts: 6323
Location: Hilversum - the Netherlands
|
|
With an I/O-clock of 2 MHz, the period is 500ns. If the C-compiler uses the quickest way to set the I/O-register, there is always at least 500ns between the two instructions. And that should be no problem for the 138. No NOP's required.
The fact that you need the 2 NOP's points to an I/O-clock of 16 MHz. Are you positive about the setting of the CKDIV-fuse ? |
_________________ Dragon broken ? Or problems with the Parallel Port Programmer ? Scroll down on my projects-page http://www.aplomb.nl/TechStuff/TechStuff.html for tips
|
| |
|
|
|
|
|
Posted: Apr 11, 2012 - 05:25 PM |
|

Joined: Dec 09, 2010
Posts: 154
Location: BW, Germany
|
|
| Yes I'm sending out data using the UART(and delays in between). The 16MHz shouldn't be a problem for the 138 either right? |
|
|
| |
|
|
|
|
|
Posted: Apr 11, 2012 - 05:50 PM |
|


Joined: Nov 01, 2005
Posts: 6323
Location: Hilversum - the Netherlands
|
|
|
Quote:
Yes I'm sending out data using the UART(and delays in between).
Which should confirm that CKDIV is programmed ? What is the baudrate and what value is in the baudrate register ?
Quote:
The 16MHz shouldn't be a problem for the 138 either right?
Now you got me puzzled. I/O clock is what counts. And that should be 2MHz (as you mentioned earlier) because that is what you need for external memory timing. The 8255A's need appr. 300ns for read and write.
At 16MHz, the period is 62.5ns. With direct I/O port access as in the published SW, incl the 2 NOP's, the fastest way of writing gives 3 times the 62.5ns = 187.5ns.
I suggest you stick with assembler when sorting out things like this. Or at least have a look at the reulting assemblercode. |
_________________ Dragon broken ? Or problems with the Parallel Port Programmer ? Scroll down on my projects-page http://www.aplomb.nl/TechStuff/TechStuff.html for tips
|
| |
|
|
|
|
|
Posted: Apr 11, 2012 - 06:17 PM |
|

Joined: Dec 09, 2010
Posts: 154
Location: BW, Germany
|
|
|
Plons wrote:
Quote:
Yes I'm sending out data using the UART(and delays in between).
Which should confirm that CKDIV is programmed ? What is the baudrate and what value is in the baudrate register ?
Baudrate is 9600 the Registers are set accordingly(I hope so )
Code:
UCSR1A = 0x00;
UCSR1B = (1 << TXEN1);
UCSR1C = (1 << UCSZ11) | (1 << UCSZ10);
UBRR1 = 12;
But since my main routine with enabled UART is basically doing:
Code:
XMEM_READ/IO-Manipulation
UART transmit
delay of 1000ms
it should be easy to tell the difference between 1s delay(clock as expected) and 1/8s delay(Using 16MHz by mistake)
Quote:
Quote:
The 16MHz shouldn't be a problem for the 138 either right?
Now you got me puzzled. I/O clock is what counts. And that should be 2MHz (as you mentioned earlier) because that is what you need for external memory timing. The 8255A's need appr. 300ns for read and write.
At 16MHz, the period is 62.5ns. With direct I/O port access as in the published SW, incl the 2 NOP's, the fastest way of writing gives 3 times the 62.5ns = 187.5ns.
I suggest you stick with assembler when sorting out things like this. Or at least have a look at the resulting assemblercode.
All the IO-Port tests are done with the 8255A disconnected. To evaluate the problem with the 138 step by step. |
|
|
| |
|
|
|
|
|
Posted: Apr 11, 2012 - 06:29 PM |
|


Joined: Nov 01, 2005
Posts: 6323
Location: Hilversum - the Netherlands
|
|
Ah, that's nice: UBRR1 = 12 which results in 9600bd @ 2MHz
So we can be sure of the I/O-clock setting to 2 MHz.
Quote:
All the IO-Port tests are done with the 8255A disconnected. To evaluate the problem with the 138 step by step.
OK. Just wanted to make sure we're on the same track.
<dinnertime> |
_________________ Dragon broken ? Or problems with the Parallel Port Programmer ? Scroll down on my projects-page http://www.aplomb.nl/TechStuff/TechStuff.html for tips
|
| |
|
|
|
|
|
Posted: Apr 11, 2012 - 09:59 PM |
|


Joined: Nov 01, 2005
Posts: 6323
Location: Hilversum - the Netherlands
|
|
What scope picture do you get on Y3 of the 138 with this asm-loop:
Code:
LDI R25,&HA0
LDI R26,&HB0
Again:
OUT PortC,R26
OUT PortC,R25
NOP
NOP
RJMP Again
Y3 should be low for appr. 500ns and high for 2.5us (if I did the math right)
And becuase of the slow response: are you positive that the 138 is supplied with 5V and that there is a cap of 0.1uF over it's supplypins ? Common grounds ?
These questions may look silly but need to be asked. |
_________________ Dragon broken ? Or problems with the Parallel Port Programmer ? Scroll down on my projects-page http://www.aplomb.nl/TechStuff/TechStuff.html for tips
|
| |
|
|
|
|
|
Posted: Apr 12, 2012 - 06:38 AM |
|


Joined: Jan 03, 2006
Posts: 4410
Location: Hemel Hemsptead, UK
|
|
| I was indeed wondering whether the 138 was actually powered, and not just operating on leakage from its input logic signals. I get a lot of this sort of thing at work and it's quite confusing when you turn the power off on a unit and the damn thing keeps right on working... |
_________________ Neil Barnes
www.nailed-barnacle.co.uk
|
| |
|
|
|
|
|
Posted: Apr 12, 2012 - 02:54 PM |
|

Joined: Dec 09, 2010
Posts: 154
Location: BW, Germany
|
|
| It seems that it was only a soldering issue.... after soldering a new 1287 to the board the CSs are generated fine. However I'm still having issues interfacing the 8255A. Writing doesn't work at all and Reading works only for Bit0-Bit5. I'll open another thread for it tonight if I can't figure it out. |
|
|
| |
|
|
|
|
|
Posted: Apr 12, 2012 - 03:20 PM |
|


Joined: Nov 01, 2005
Posts: 6323
Location: Hilversum - the Netherlands
|
|
I just got it setup
Code:
$asm
LDI R25,&H30
LDI R26,&HB0
Again:
Out Porta , R25
Out Porta , R26
NOP
NOP
RJMP Again
$end Asm
Why not stick to this thread ? No need for a new one.
Quote:
However I'm still having issues interfacing the 8255A.
Did you connect G2A (or G2B) to ALE ? |
_________________ Dragon broken ? Or problems with the Parallel Port Programmer ? Scroll down on my projects-page http://www.aplomb.nl/TechStuff/TechStuff.html for tips
|
| |
|
|
|
|
|
Posted: Apr 12, 2012 - 03:49 PM |
|


Joined: Nov 01, 2005
Posts: 6323
Location: Hilversum - the Netherlands
|
|
How is the external memory setup in the 1287 ?
And how long are the wires from 1287 to the 8255A's ? |
_________________ Dragon broken ? Or problems with the Parallel Port Programmer ? Scroll down on my projects-page http://www.aplomb.nl/TechStuff/TechStuff.html for tips
|
| |
|
|
|
|
|
Posted: Apr 12, 2012 - 05:29 PM |
|

Joined: Dec 09, 2010
Posts: 154
Location: BW, Germany
|
|
Well I thought about a new thread because the 138 works now. However I got very weird behavior on the ALE Pin. Attached is a Screenshot from the scope
Trace1: CS(output of 74HCT138) -> goes to 8255A
Trace2: A0(Output of 74HCT537) -> goes to 8255A
Trace3: A1(Output of 74HCT537) -> goes to 8255A
Trace4: ALE(Output from 1287) -> goes to 74HCT537 and 74HCT138
This is only the initialization of the XMEM and the 8255A. I had a look at the dissassembly and found exactly what expected.
Code:
#define PIO_CTRL 0xC003
#define PIO_INIT 0x90
void xmem_init()
{
XMCRA = (1 << SRE);
XMCRB = 0x00;
uint8_t *l;
l = (uint8_t *) (PIO_CTRL);
*l = PIO_INIT;
}
I don't really understand the ALE Signal on this one.
After this initialization I am only able to read the XMEM interface. The AVR does not generate any addresses(measured at the output of the 537) when writing to the XMEM interface.(There is no CS generated by the 74HCT537 either).
The reading part works with one flaw only Bit 0-5 are valid Bit 6 and 7 always read as 0 and there is a really strange signal on those lines.(Screenshot2)
Trace1: CS (generated by 74HCT138)(Valid)
Trace2: Data on Bit0 (valid)
Trace3: Data on Bit7 invalid and strange
Note that this zoomed out really far(Still operating at 2MHz)
However I believe that this is another soldering issue or do you have any explanation for this kind of trace?
About the length of the wires: Probably about 20cm. |
Last edited by MannImMond on Apr 13, 2012 - 09:31 AM; edited 2 times in total
|
| |
|
|
|
|
|
Posted: Apr 12, 2012 - 05:54 PM |
|


Joined: Nov 01, 2005
Posts: 6323
Location: Hilversum - the Netherlands
|
|
When you write "137", do you mean the 74HCT138 ?
When you write "537", do you mean the 74HCT573, the octal latch ?
ALE is used to latch the lower address bits before portA is used as databus.
Have a look at your schematic: you are using ALE (PE2) also as bootloader switch input. With 10nF on that pin it will be tough for PE2 to generate ALE
And once again: did you connect ALE to G2A (last time I ask) ? |
_________________ Dragon broken ? Or problems with the Parallel Port Programmer ? Scroll down on my projects-page http://www.aplomb.nl/TechStuff/TechStuff.html for tips
|
| |
|
|
|
|
|
Posted: Apr 12, 2012 - 06:00 PM |
|

Joined: Dec 09, 2010
Posts: 154
Location: BW, Germany
|
|
|
Plons wrote:
When you write "137", do you mean the 74HCT138 ?
When you write "537", do you mean the 74HCT573, the octal latch ?
Yes to both I'll correct it
Quote:
ALE is used to latch the lower address bits before portA is used as databus.
Have a look at your schematic: you are using ALE (PE2) also as bootloader switch input. With 10nF on that pin it will be tough for PE2 to generate ALE
I'll remove the corresponding R and C.
Quote:
And once again: did you connect ALE to G2A (last time I ask) ?
Yes, did that just forgot to mention it sorry. |
|
|
| |
|
|
|
|
|
Posted: Apr 12, 2012 - 06:13 PM |
|


Joined: Nov 01, 2005
Posts: 6323
Location: Hilversum - the Netherlands
|
|
Okay. Next step.
The odd looking signal looks like a line that is tri-stated (floating) It was high during the /Cs
Before looking at the data, you need to make sure that the timing for the 8255A is correct.
To check that: write a small program that writes data to the 8255A, then reads data from it; then make it pause for 100us or so. And loop.
Put the channel with the trigger of the scope on the 8255A-/CS-pin, negative edge triggered. Channel 2 on 8255A-/Rd and Channel 3 on 8255A-/Wr. What is the width of the /Rd and /Wr pulse ?
And are the /Rd and /Wr pulse low during /Cs ?
/Cs must go low first; when true /Rd or /Wr can go low but all that time /Cs must be stable and low. So /Cs comes first, leaves last.
<dinner> |
_________________ Dragon broken ? Or problems with the Parallel Port Programmer ? Scroll down on my projects-page http://www.aplomb.nl/TechStuff/TechStuff.html for tips
|
| |
|
|
|
|
|
Posted: Apr 12, 2012 - 07:16 PM |
|

Joined: Dec 09, 2010
Posts: 154
Location: BW, Germany
|
|
|
Plons wrote:
Okay. Next step.
The odd looking signal looks like a line that is tri-stated (floating) It was high during the /Cs
Yeah that's what I suspected but I don't see the difference to the AD0-AD5. (This behaviour occurs regardless whether the 8255A is connected or not)
Quote:
[...]
Put the channel with the trigger of the scope on the 8255A-/CS-pin, negative edge triggered. Channel 2 on 8255A-/Rd and Channel 3 on 8255A-/Wr. What is the width of the /Rd and /Wr pulse ?
And are the /Rd and /Wr pulse low during /Cs ?
/Cs must go low first; when true /Rd or /Wr can go low but all that time /Cs must be stable and low. So /Cs comes first, leaves last.
<dinner>
Will try tomorrow since I currently don't have access to the scope.
Since I don't have access to the scope I tinkered with the SW a bit. The 8255A uses the High Active Reset. However the uC seems to try to init the 8255A too quickly(because they have different Reset signals). When I use a delay of 2secs at the very beginning of the program(before initializing the 8255A) I can write to the 8255 but can't read anymore. I hope the scope will shed some light on this.
Edit: Do I need a special SRW0 and SRW1 setting? Currently I'm using the default values(0) |
|
|
| |
|
|
|
|
|
Posted: Apr 12, 2012 - 08:13 PM |
|


Joined: Nov 01, 2005
Posts: 6323
Location: Hilversum - the Netherlands
|
|
|
Quote:
The 8255A uses the High Active Reset.
T1 does take care of that, if ST1-B22 is going to the 8255A's Reset.
Quote:
When I use a delay of 2secs at the very beginning of the program
That should be enough
Quote:
I can write to the 8255 but can't read anymore. I hope the scope will shed some light on this.
Yep, first we need to make sure that the timing of /Rd and /Wr are correct.
Quote:
Edit: Do I need a special SRW0 and SRW1 setting? Currently I'm using the default values(0)
I have no experience with the 1287 and the use of external memory. Will study the datasheet  |
_________________ Dragon broken ? Or problems with the Parallel Port Programmer ? Scroll down on my projects-page http://www.aplomb.nl/TechStuff/TechStuff.html for tips
|
| |
|
|
|
|
|
Posted: Apr 12, 2012 - 08:24 PM |
|

Joined: Dec 09, 2010
Posts: 154
Location: BW, Germany
|
|
|
Plons wrote:
Quote:
The 8255A uses the High Active Reset.
T1 does take care of that, if ST1-B22 is going to the 8255A's Reset.
Quote:
When I use a delay of 2secs at the very beginning of the program
That should be enough
Yeah just wanted to clear that up since I didn't post the shematic. I somehow assumed that the reset was quick enough to take place while the uC is still powering Up. It seems not... but I will measure the needed time aswell. |
|
|
| |
|
|
|
|
|
Posted: Apr 12, 2012 - 09:23 PM |
|


Joined: Nov 01, 2005
Posts: 6323
Location: Hilversum - the Netherlands
|
|
|
Quote:
Yeah that's why I put him there
You're right, the name ST1-B22 gave it away
But you do have indeed an issue with the Reset for the 8255A.
When the AVR is still in reset-mode, the 8255A is already out of it (when voltage on NRES rises above 0.8V, the Reset for the 8255A goes low). And since the AVR-pins are configured as inputs, that may cause all kins of oddities.
To fix that: you could tweak the circuit around T1, but better is to use an I/O-pin for that. Old technology mix with today's technology requires that. Use a pull-up of 4k7 and make the pin low when YOU (in SW) think it's time for the 8255A to come out of reset-mode.
Quote:
Do I need a special SRW0 and SRW1 setting? Currently I'm using the default values(0)
No, with 2MHz I/O-clock you're fine. But if you need more speed for the AVR and use f.i. a 4MHz max 5MHz crystal (CKDIV8 Fuse not set), SRWn1 = 0 and SRWn0 = 1 is needed to meet the 8255A timing requirements.
Nard |
_________________ Dragon broken ? Or problems with the Parallel Port Programmer ? Scroll down on my projects-page http://www.aplomb.nl/TechStuff/TechStuff.html for tips
|
| |
|
|
|
|
|
Posted: Apr 13, 2012 - 12:44 AM |
|


Joined: Nov 01, 2005
Posts: 6323
Location: Hilversum - the Netherlands
|
|
Btw, you *could* ditch the 74HCT573 alltogether: Connect A10 of the AVR to A0 of the 8255A's and A11 of the AVR to A1 of the 8255A's.
You'll find the first register of the first 8255A (the one on /Y3 of the 138) at:
address 0xB000 through 0xB3FF, the second register of that 8255A at address 0xB400 through 0xB7FF, etc.
This an old trick that many of the old farts here will know
And: having studied the External Memory interface of the 1287 and relatives: another feather on the head of the designers A and V for their splendid work  |
_________________ Dragon broken ? Or problems with the Parallel Port Programmer ? Scroll down on my projects-page http://www.aplomb.nl/TechStuff/TechStuff.html for tips
|
| |
|
|
|
|
|
Posted: Apr 13, 2012 - 09:36 AM |
|

Joined: Dec 09, 2010
Posts: 154
Location: BW, Germany
|
|
|
Plons wrote:
Quote:
Yeah that's why I put him there
You're right, the name ST1-B22 gave it away
But you do have indeed an issue with the Reset for the 8255A.
When the AVR is still in reset-mode, the 8255A is already out of it (when voltage on NRES rises above 0.8V, the Reset for the 8255A goes low). And since the AVR-pins are configured as inputs, that may cause all kins of oddities.
To fix that: you could tweak the circuit around T1, but better is to use an I/O-pin for that. Old technology mix with today's technology requires that. Use a pull-up of 4k7 and make the pin low when YOU (in SW) think it's time for the 8255A to come out of reset-mode.
What kind of tweak did you have in mind? Sacrificing an IO is next to impossible since I'm already lacking about 10 I/Os
Quote:
Quote:
Do I need a special SRW0 and SRW1 setting? Currently I'm using the default values(0)
No, with 2MHz I/O-clock you're fine. But if you need more speed for the AVR and use f.i. a 4MHz max 5MHz crystal (CKDIV8 Fuse not set), SRWn1 = 0 and SRWn0 = 1 is needed to meet the 8255A timing requirements.
Nard
Well since the 16MHz Quarz is fixed(working with USB) I'm working on 2MHz(with CKDIV8) which is sufficient for the tasks but thanks for the advice anyway.
Ditching the 537 might be an idea but I'm not sure about it yet because the A10 is used in combination with another Board. |
|
|
| |
|
|
|
|
|
Posted: Apr 13, 2012 - 12:51 PM |
|


Joined: Nov 01, 2005
Posts: 6323
Location: Hilversum - the Netherlands
|
|
|
Quote:
What kind of tweak did you have in mind?
There is no decent fix that ensures a reliable sequence of the reset-signals. You'd need a separate circuit for that. And since
Quote:
Sacrificing an IO is next to impossible since I'm already lacking about 10 I/Os
isn't it better then to take appropriate measures NOW rather than later in the design ? F.i., add another small AVR as an intelligent I/O expander and solve it all in one go.
Any news on the timing measurements ? |
_________________ Dragon broken ? Or problems with the Parallel Port Programmer ? Scroll down on my projects-page http://www.aplomb.nl/TechStuff/TechStuff.html for tips
|
| |
|
|
|
|
|
Posted: Apr 13, 2012 - 01:36 PM |
|

Joined: Dec 09, 2010
Posts: 154
Location: BW, Germany
|
|
| No still didn't have the time to do the measurements.. Will start them at 4pm. |
|
|
| |
|
|
|
|
|
Posted: Apr 13, 2012 - 03:29 PM |
|

Joined: Dec 09, 2010
Posts: 154
Location: BW, Germany
|
|
|
Plons wrote:
Okay. Next step.
The odd looking signal looks like a line that is tri-stated (floating) It was high during the /Cs
Before looking at the data, you need to make sure that the timing for the 8255A is correct.
To check that: write a small program that writes data to the 8255A, then reads data from it; then make it pause for 100us or so. And loop.
Put the channel with the trigger of the scope on the 8255A-/CS-pin, negative edge triggered. Channel 2 on 8255A-/Rd and Channel 3 on 8255A-/Wr. What is the width of the /Rd and /Wr pulse ?
And are the /Rd and /Wr pulse low during /Cs ?
/Cs must go low first; when true /Rd or /Wr can go low but all that time /Cs must be stable and low. So /Cs comes first, leaves last.
Alright took the screenshots
All the signals as above:
1: CS
2: /RD
3: /WR
First one is Init process(one write) to 0xB003
Second picture is one regular Write and Read as suggested(The read does not work though).
Third picture is zoomed to the write process
Fourth picture is zoomed to the read process(in next post) |
Last edited by MannImMond on Apr 13, 2012 - 03:30 PM; edited 1 time in total
|
| |
|
|
|
|
|
Posted: Apr 13, 2012 - 03:29 PM |
|

Joined: Dec 09, 2010
Posts: 154
Location: BW, Germany
|
|
| Fourth picture due to limitation... |
|
|
| |
|
|
|
|
|
Posted: Apr 13, 2012 - 03:59 PM |
|


Joined: Nov 01, 2005
Posts: 6323
Location: Hilversum - the Netherlands
|
|
Two important things:
1. /Rd and /Wr are 500ns in width: as expected AND within specification of the 8255A
2. Do yemember that I asked for the wirelength between 1287 and the 8255's ? Do you see the oscillations on the edges of all signals ? That may be (or become) a problem. It's due to the high slewrate nowadays technology is capable of, where the 1980 PPI 8255A wasn't aware of that speed.
But before that: when the systems are up and running, short the base of T1 to ground and release. Now make the 1287 do it's 8255 init and try a write and read once more. Still a bad read ?
Edit: what is your defenition for an unsuccessfull read ? |
_________________ Dragon broken ? Or problems with the Parallel Port Programmer ? Scroll down on my projects-page http://www.aplomb.nl/TechStuff/TechStuff.html for tips
|
| |
|
|
|
|
|
Posted: Apr 13, 2012 - 04:19 PM |
|

Joined: Dec 09, 2010
Posts: 154
Location: BW, Germany
|
|
|
Quote:
2. Do yemember that I asked for the wirelength between 1287 and the 8255's ? Do you see the oscillations on the edges of all signals ?
Yes and Yes
Quote:
That may be (or become) a problem. It's due to the high slewrate nowadays technology is capable of, where the 1980 PPI 8255A wasn't aware of that speed.
That means I have to lower the slewrate in some way?
Quote:
But before that: when the systems are up and running, short the base of T1 to ground and release. Now make the 1287 do it's 8255 init and try a write and read once more. Still a bad read ?
Will try that in a sec.
Quote:
Edit: what is your defenition for an unsuccessfull read ?
I'm reading back one of the values from switches connected to the 8255A and printing them via UART. The unsuccessful read means that I'm reading 0x00 instead of the expected value.
One really strange thing:
When switching read and write resulting in:
Read
delay(100us)
Write
delay(1s)
it works(read and write)
Edit: Grounding the Base of T1 before initiating it has no effect  |
Last edited by MannImMond on Apr 13, 2012 - 04:35 PM; edited 1 time in total
|
| |
|
|
|
|
|
Posted: Apr 13, 2012 - 04:34 PM |
|


Joined: Nov 01, 2005
Posts: 6323
Location: Hilversum - the Netherlands
|
|
|
Quote:
One really strange thing:
When switching read and write resulting in:
Read
delay(100us)
Write
delay(1s)
it works(read and write)
Yikes. But it could be due to the reset-issue.
I need to ask: are you familiar and comfortable with the 8255's ?
Do you have pull-ups on the Port I/O side ?
If the extra reset with shorting the base of T1 doesn't have effect, we must do something on the oscillations. Not knowing how your system setup looks like, I need to make an educated guess: add 330 Ohm resistors to /Cs, /Rd and /Wr. Put these resistors close to their source (so not at 8255-side) Check with your (nice) scope. Use 10x Probes and short groundleads. |
_________________ Dragon broken ? Or problems with the Parallel Port Programmer ? Scroll down on my projects-page http://www.aplomb.nl/TechStuff/TechStuff.html for tips
|
| |
|
|
|
|
|
Posted: Apr 13, 2012 - 04:42 PM |
|

Joined: Dec 09, 2010
Posts: 154
Location: BW, Germany
|
|
|
Plons wrote:
I need to ask: are you familiar and comfortable with the 8255's ?
Never worked with them before... read the datasheet though.
Quote:
Do you have pull-ups on the Port I/O side ?
There are no pull ups between the 8255A and the AVR.
Quote:
If the extra reset with shorting the base of T1 doesn't have effect, we must do something on the oscillations. Not knowing how your system setup looks like, I need to make an educated guess: add 330 Ohm resistors to /Cs, /Rd and /Wr. Put these resistors close to their source (so not at 8255-side) Check with your (nice) scope. Use 10x Probes and short groundleads.
I could only add those by extending all lines between AVR and 8255 by 20cm. |
|
|
| |
|
|
|
|
|
Posted: Apr 13, 2012 - 04:59 PM |
|


Joined: Nov 01, 2005
Posts: 6323
Location: Hilversum - the Netherlands
|
|
|
Quote:
There are no pull ups between the 8255A and the AVR.
I mean at PortA PortB and PortC of the PPI (8255)
Quote:
I could only add those by extending all lines between AVR and 8255 by 20cm.
O. But we need to do something on the oscillations.
I will PM you shortly. |
_________________ Dragon broken ? Or problems with the Parallel Port Programmer ? Scroll down on my projects-page http://www.aplomb.nl/TechStuff/TechStuff.html for tips
|
| |
|
|
|
|
|
Posted: Apr 13, 2012 - 05:00 PM |
|

Joined: Dec 09, 2010
Posts: 154
Location: BW, Germany
|
|
|
Quote:
Quote:
If the extra reset with shorting the base of T1 doesn't have effect, we must do something on the oscillations. Not knowing how your system setup looks like, I need to make an educated guess: add 330 Ohm resistors to /Cs, /Rd and /Wr. Put these resistors close to their source (so not at 8255-side) Check with your (nice) scope. Use 10x Probes and short groundleads.
I could only add those by extending all lines between AVR and 8255 by 20cm.
Ok added those and now the write works consistently but the read doesn't work at all anymore... Attached are write and read screenshots
CS
/RD
/WR
ALE |
|
|
| |
|
|
|
|
|
Posted: Apr 13, 2012 - 05:08 PM |
|


Joined: Nov 01, 2005
Posts: 6323
Location: Hilversum - the Netherlands
|
|
That looks much better.
Since the PPI's are Nmos, their busdriving-high capability is poor. Add 8 pull-ups to the databus, 3k3 ~ 4k7 should be fine. And this time I mean the databus between PPI and AVR.
PS there is no write-action in the pictures.
< cooking dinner > |
_________________ Dragon broken ? Or problems with the Parallel Port Programmer ? Scroll down on my projects-page http://www.aplomb.nl/TechStuff/TechStuff.html for tips
|
| |
|
|
|
|
|
Posted: Apr 13, 2012 - 05:22 PM |
|

Joined: Dec 09, 2010
Posts: 154
Location: BW, Germany
|
|
|
Plons wrote:
That looks much better.
Since the PPI's are Nmos, their busdriving-high capability is poor. Add 8 pull-ups to the databus, 3k3 ~ 4k7 should be fine. And this time I mean the databus between PPI and AVR.
Ok will do that and see what happens.
Quote:
PS there is no write-action in the pictures.
uploaded the wrong picture. The right one is attached here.
Just sent the mail. |
|
|
| |
|
|
|
|
|
Posted: Apr 13, 2012 - 06:18 PM |
|

Joined: Dec 09, 2010
Posts: 154
Location: BW, Germany
|
|
|
Plons wrote:
Okay. Next step.
The odd looking signal looks like a line that is tri-stated (floating) It was high during the /Cs
Do you have any idea what could cause this? Since I'm reading them wrong every time it is possible that the write process is also flawed which would result in the init of the 8255 going wrong(it is initialized with 0x90) which means with 0x10 in worst case.
The pullups didn't help. The lines which went down like a capacity now simply stay high at all times and the other lines behave as usual. |
|
|
| |
|
|
|
|
|
Posted: Apr 13, 2012 - 08:54 PM |
|


Joined: Nov 01, 2005
Posts: 6323
Location: Hilversum - the Netherlands
|
|
|
Quote:
Do you have any idea what could cause this?
It's a normal dataline behaviour when the bus goes tri-state. But I also see that D0 stays high while D7 behaves differently. Hmmm, ... bad/cold soldering joint ? Mis-wiring ?
Checking out gmail now ... |
_________________ Dragon broken ? Or problems with the Parallel Port Programmer ? Scroll down on my projects-page http://www.aplomb.nl/TechStuff/TechStuff.html for tips
|
| |
|
|
|
|
|
Posted: Apr 13, 2012 - 09:43 PM |
|


Joined: Nov 01, 2005
Posts: 6323
Location: Hilversum - the Netherlands
|
|
When you initialize with 0x90, the PPI goes into Basic Input/Output mode (no handshaking), PortA = input, PortB and PortC are configured as output. Agree ? And you write to 0xB003 ?
Be aware that reading from 0xB003 is an illegal action, according to the databook.
You are reading from 0xB000 I hope ....
(I need to cross-check the 1983 Intel databook since "1001 0000" is called mode#8, instead of mode#9) Update: On one of the gmail-pictures I see that the PPI is a uPD71055C: it's a CMOS device, with old-fashioned busdriving capabilities (400uA source to get the output at 0.7*Vcc .... we are sooo spoiled with the AVR output drivers )) but with a much faster Read and Write spec. So it performs better than the original Intel8255A. |
_________________ Dragon broken ? Or problems with the Parallel Port Programmer ? Scroll down on my projects-page http://www.aplomb.nl/TechStuff/TechStuff.html for tips
|
| |
|
|
|
|
|
Posted: Apr 13, 2012 - 10:23 PM |
|

Joined: Dec 09, 2010
Posts: 154
Location: BW, Germany
|
|
Yes the 0x90 is supposed to do exactly that(I've checked the old programs running on the 8051 with these commands.... everything is perfectly fine. And yes I'm only writing to 0xB003.
Quote:
Then on WP_000058.jpg : could one of those jumpers be loose ? Connector row A pin 7
That would explain the different behaviour of the AD7 signal, compared with AD0.
This is the exact same behaviour on AD6 and AD7. AD0-AD5 are fine though
I checked them but they are ok. I'm fairly sure the problem is somewhere on my board since the other boards work fine with the 8051. The board seen on the mentioned picture is just used as an extender anyway. I used it to get proper access to the bus for the scope and used it for the pullups on the Data lines(AD0-AD7) and the 330Ohm in series on /RD, /WR and /CS.
Going to resolder all points on AD6 and AD7.... |
|
|
| |
|
|
|
|
|
Posted: Apr 13, 2012 - 11:08 PM |
|

Joined: Dec 09, 2010
Posts: 154
Location: BW, Germany
|
|
It was the soldering I was resoldering the wrong pins all the time.... However one of the boards I was testing with was broken.... And without the 330Ohm in the /WR, /RD and CS line it still doesn't work... have to take that into consideration when redesigning the board.
Thanks alot for all this help Nard. One more question. It works without the suggested pullups on the data lines should I design them in anyway? |
|
|
| |
|
|
|
|
|
Posted: Apr 13, 2012 - 11:29 PM |
|


Joined: Nov 01, 2005
Posts: 6323
Location: Hilversum - the Netherlands
|
|
|
Quote:
It was the soldering  I was resoldering the wrong pins all the time.... However one of the boards I was testing with was broken.... And without the 330Ohm in the /WR, /RD and CS line it still doesn't work... have to take that into consideration when redesigning the board.
Bad solder-joints aside: the oscillation on the /WR, /RD, and the 5 /CS's needs to be eliminated. My 330 Ohm was a best guesstimate, but you need to look at these signals also when the AVR-board is in the 19" rack: to see if the 330 Ohm is sufficient.
Quote:
Thanks alot for all this help Nard. One more question. It works without the suggested pullups on the data lines should I design them in anyway?
You're welcome.
No, there is no need for the pull-ups on AD0 ~ AD7.
What is your plan on the shortage of I/O ? Do yourself a big favour and control the Reset for the PPI's with an I/O from the 1287. Then YOU are in control, not an unpredictable RC-network with schmitt-trigger.
Nard |
_________________ Dragon broken ? Or problems with the Parallel Port Programmer ? Scroll down on my projects-page http://www.aplomb.nl/TechStuff/TechStuff.html for tips
|
| |
|
|
|
|
|
Posted: Apr 13, 2012 - 11:35 PM |
|

Joined: Dec 09, 2010
Posts: 154
Location: BW, Germany
|
|
|
Plons wrote:
Bad solder-joints aside: the oscillation on the /WR, /RD, and the 5 /CS's needs to be eliminated. My 330 Ohm was a best guesstimate, but you need to look at these signals also when the AVR-board is in the 19" rack: to see if the 330 Ohm is sufficient.
Yes I will test that probably on monday which resistors give the best results.
Quote:
What is your plan on the shortage of I/O ? Do yourself a big favour and control the Reset for the PPI's with an I/O from the 1287. Then YOU are in control, not an unpredictable RC-network with schmitt-trigger.
I would favor a solution with a small helping AVR(Or maybe a UC3 like the ones on the Xplains handling the USB aswell?) However since this is supposed to be a learning system I have to find a solution which is very easy to understand and use. |
|
|
| |
|
|
|
|
|
Posted: Apr 14, 2012 - 02:22 PM |
|


Joined: Nov 01, 2005
Posts: 6323
Location: Hilversum - the Netherlands
|
|
|
Quote:
I would favor a solution with a small helping AVR(Or maybe a UC3 like the ones on the Xplains handling the USB aswell?) However since this is supposed to be a learning system I have to find a solution which is very easy to understand and use.
As an idea:
Ditch the External Memory interface on the 1287: that frees 19 I/O-pins. That solves your 10 I/O need as well. And with it: ditch the 138 and 573 as well.
Next, take a Mega48 or so, and let it communicate with the 1287 via SPI or UART. That requires just 2 (UART) or 3 (SPI) lines of the freed 19. So 16 left.
Implement a fast and mean protocol in the Mega48: 2 bytes will do.
Byte1: Bits 7, 6 and 5 select which PPI-board. Bits 4 and 3 define which register in the PPI, bit 2 defines read or write, bit 1 is spare, bit 0 defines the state of the reset-line for the PPI's.
Byte2: the data
Don't use <CR><LF>, that saves 2 bytes.
So fixed protocol, just the 2 bytes. The 48 handles the timing of the signals to the PPI-rack. Bitbang will do fine.
Use the same clock for both 1287 and 48. Use Clock-out option or full swing setting in the fuses.
From the 48 the control and data bus to the PPI-rack.
It will be a bit slower than the External Memory interface but it solves all the problems. And is quite transparent IMO.
As a bonus: the 1287 can now run at full speed. |
_________________ Dragon broken ? Or problems with the Parallel Port Programmer ? Scroll down on my projects-page http://www.aplomb.nl/TechStuff/TechStuff.html for tips
|
| |
|
|
|
|
|