From: Slavko K. <es...@gm...> - 2010-03-31 16:46:12
|
Hello... Today I pull my hear from head discoveryng why my EPP IO board is so slow. For measurment's I put 10 out cycles in write_board procedure.. static void write_board(void *arg, long period) { epp_board_t *board; board = arg; rtapi_outb(0, board->base_addr+3); rtapi_outb(0, board->base_addr+3); rtapi_outb(0, board->base_addr+3); rtapi_outb(0, board->base_addr+3); rtapi_outb(0, board->base_addr+3); rtapi_outb(0, board->base_addr+3); rtapi_outb(0, board->base_addr+3); rtapi_outb(0, board->base_addr+3); rtapi_outb(0, board->base_addr+3); rtapi_outb(0, board->base_addr+3); } Then start HallMeter and measure eppport.0.write.time The result is somewhere betwen 50 and 52uSec. If I remove outb lines then result is well under 0.1uS. So that's good. As I have base thread at 50uS and if write time is over 50uS then computer should hang. .. but run nicely... So to recheck measurment I connect real osciloscope in wait line of epp port and signal is aprox of half of measured with hallMeter. Calculated from hallmeter the pulse should be 5uS in lenght. Measured with real osciloscope is aprox 2.3uS (seems that my EPP support only 0.5Mbyte/sec). And real osciloscope clear show that 10 pulses least aprox 23us and then is silence for next 27uSec. So signal appear every 50uS as base thread is set. Seems that this is bug (or I made something wrong) Slavko. |