I Dave
Glad you got it going. This reminds me of 8255 struggles from days long
gone.
Rayh
On Wed, 2007-09-26 at 06:30 -0500, [EMAIL PROTECTED] wrote:
> My ongoing troubles with using the ax5214h driver with an Acess DIO-48 card
> may be of assistance to some others.
> I checked the Axiom manual for the card, and discovered that the three
> most significant bits of the 8255 control reg. were pre-empted in some way
> on the board. This resulted in " dont care" status for those 3 bits. the
> Acess board uses the full register set of the 8255, So a simple mod to the
> driver:
> Snip;
> ====================================
> msg = rtapi_get_msg_level();
> rtapi_set_msg_level(RTAPI_MSG_WARN);
> retval = 0;
> config = 0; ( CHANGE TO: config = 0x80; )
> dir = board->dir_bits & 0x01;
> retval += export_port ( boardnum, 0, &(board->port_1A[0]), 8, dir );
> if ( dir == 0 ) {
> config |= 0x10;
> =====================================
> set the msb of the control port to allow direction configuration of ports
> a,b and c. ( do the same for second chip )
> IT WORKS!!
> Only trouble was: when I used halrun, and loadrt hal_ax5214h etc. etc,
> all the outputs came on.
> after making thread, addf etc, start, they react normally. ( frantic time
> trying to remember what to do as the power was
> temporarily on the i/o for testing )
> So back to the drawing board. The 8055 defaults to all inputs on
> power-up/reset , probably can't write to inputs,
> So - - - - a simple mod to the driver:
> Snip;
> =====================================
> /* initialize hardware - all outputs high
> (since outputs are active low) */
> ( NEW ) outb(board->port1config, board->base_addr+3);
> outb(0xff, board->base_addr+0);
> outb(0xff, board->base_addr+1);
> outb(0xff, board->base_addr+2);
> ( OLD ) outb(board->port1config, board->base_addr+3);
> ( NEW ) outb(board->port2config, board->base_addr+7);
> outb(0xff, board->base_addr+4);
> outb(0xff, board->base_addr+5);
> outb(0xff, board->base_addr+6);
> (OLD ) outb(board->port2config, board->base_addr+7);
> /* restore saved message level */
> rtapi_set_msg_level(msg);
> return retval;
> }
> =====================================
> Place the control register write before the initialisation bits. ( I guess )
> remove the old, and replace with the new lines. ( out with the old and in
> with the new ? )
> IT WORKS! Really works, all outputs are off on loading the driver, all i/o
> is as it is configured.
> My compile method? download source and GCC etc. and compile the whole
> shebang !!
> Aboriginal sledgehammer approach. But it works! (git er done
> ) Perserverance pays.
> ( It might be interesting if someone with the Axiom card found out what
> happens when they load the driver )
> hope all this helps someone.
> Dave
> Dave B.
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2005.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> Emc-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/emc-users
>
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Emc-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-users