(из лички)
FireFly писал(а):сорри, не уделил внимания сообщению
я свой пользую под ардуино - там поддержка есть, под другое юзаю обычный LPT STK200/300
этот работает под ардуино прекрасно, больше ни под чего его не проверял... надо попробовать, будут результаты - отпишуь, тока не скоро - банально некогда этим досконально заниматься
если разочаровал - прошу прощения.
Покопавшись немного в исходниках USBtinyISP я обнаружил наверное то, что и должно было там быть :
Команд, отвечающих за чтение/ запись фьюзов просто нет !!!
Вот листинг куска кода программатора (soft) AVR911
- Код: Выделить всё
bool AVRInSystemProg::readFuseBits( long * bits )
{
long low, high;
/* Use AVRISP's 4-byte universal command */
comm->sendByte( '.' );
comm->sendByte( 0x50 );
comm->sendByte( 0x00 );
comm->sendByte( 0x00 ); // Dummy.
comm->sendByte( 0x00 ); // Dummy.
comm->flushTX();
low = comm->getByte();
if( comm->getByte() != '\r' ) // Check return code from command.
throw new ErrorMsg( "Low fuse byte readout failed! "
"Programmer did not return CR after '.'-command." );
/* Use AVRISP's 4-byte universal command */
comm->sendByte( '.' );
comm->sendByte( 0x58 );
comm->sendByte( 0x08 );
comm->sendByte( 0x00 ); // Dummy.
comm->sendByte( 0x00 ); // Dummy.
comm->flushTX();
high = comm->getByte();
if( comm->getByte() != '\r' ) // Check return code from command.
throw new ErrorMsg( "Low fuse byte readout failed! "
"Programmer did not return CR adter '.'-command." );
/* Put low and high together */
*bits = (high << 8) | low;
return true; // Indicate supported command.
}
А вот поддерживаемые команды USBtinyISP :
- Код: Выделить всё
// ======================================================================
// Control a parallel port AVR programmer (avrdude type "bsd") via USB.
//
// Copyright (C) 2006 Dick Streefland
//
// This is free software, licensed under the terms of the GNU General
// Public License as published by the Free Software Foundation.
// ======================================================================
#include <avr/io.h>
#include "usb.h"
enum
{
// Generic requests
USBTINY_ECHO, // echo test
USBTINY_READ, // read byte
USBTINY_WRITE, // write byte
USBTINY_CLR, // clear bit
USBTINY_SET, // set bit
// Programming requests
USBTINY_POWERUP, // apply power (wValue:SCK-period, wIndex:RESET)
USBTINY_POWERDOWN, // remove power from chip
USBTINY_SPI, // issue SPI command (wValue:c1c0, wIndex:c3c2)
USBTINY_POLL_BYTES, // set poll bytes for write (wValue:p1p2)
USBTINY_FLASH_READ, // read flash (wIndex:address)
USBTINY_FLASH_WRITE, // write flash (wIndex:address, wValue:timeout)
USBTINY_EEPROM_READ, // read eeprom (wIndex:address)
USBTINY_EEPROM_WRITE, // write eeprom (wIndex:address, wValue:timeout)
USBTINY_DDRWRITE, // set port direction
USBTINY_SPI1 // a single SPI command
};
то бишь драйвер просто не понимает передаваемых из CVAvr команд.(по крайней мере я так думаю).
Может у кого-нибудь есть мысли по поводу того, как добавить такой функционал ?