- 精华
- 3
- 帖子
- 1099
- 威望
- 9 点
- 积分
- 1351 点
- 种子
- 5 点
- 注册时间
- 2005-5-9
- 最后登录
- 2020-4-9
|
发表于 2010-9-29 13:51 · 澳大利亚
|
显示全部楼层
这个不错,atmega32/168(p)/328(p)/1280都能行,不过编译的时候要正确设置针脚和fuse;
这usbasp的电路图上已经有稳压二极管应该不错,要是哪个板子没稳压二极管的记得加上来增加稳定性和保护电路
3.6v的即可
denimjeans的说明,使用Timwu移植到v-usb上的psgroovedenimjeans2007 | September 25, 2010
schematic (new, with zener diodes):
http://img22.imagevenue.com/img.php?i...
ugly result :) :
http://img215.imagevenue.com/img.php?...
Finnaly it's working on a simple atmega, no special board required, only about 7?for all required parts ;-).
get sources from :
http://github.com/timwu/psgroove
get hex file (BM disabled) here soon...
atmega32 fuse bits: high=d1 low=bf
(it's maybe not required to disable jtag flag which the above setting does)
then make following changes:
-D = portd3
+D = portd4
Int = portd2
Leds = portc2,3
here is the config.h
#define USB_CFG_IOPORTNAME D
#define USB_CFG_DMINUS_BIT 3
#define USB_CFG_DPLUS_BIT 4
#define USB_CFG_PULLUP_IOPORTNAME D
#define USB_CFG_PULLUP_BIT 2
#define GREEN_LED_PORT C
#define RED_LED_PORT C
#define GREEN_BIT 2
#define RED_BIT 3
#endif // _PIN_CONFIG_H_
-----------
psgroove.c
you need to change to following:
//clock_prescale_set(clock_div_1);
/* Setup timer */
TCCR1B = 0x03; /* timer rate clk/64 */
TIMSK = 0x04;
good luck
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!
thanks to timwu for his great work and the psgroove team :)
This stuff is not intended to enable piracy. Just for the execution of unsigned
third-party apps and games on the PS3.
[quote]Gents! Finnaly I got it working on a simple atmega32 (without USB support, using timwu / psgroove) :)
checkout the *** video :)
http://www.***.com/watch?v=0rY8f1HmuGk
here is the config.h
#define USB_CFG_IOPORTNAME D
/* This is the port where the USB bus is connected. When you configure it to
* “B”, the registers PORTB, PINB and DDRB will be used.
*/
#define USB_CFG_DMINUS_BIT 3
/* This is the bit number in USB_CFG_IOPORT where the USB D- line is connected.
* This may be any bit in the port.
*/
#define USB_CFG_DPLUS_BIT 4
/* This is the bit number in USB_CFG_IOPORT where the USB D+ line is connected.
* This may be any bit in the port. Please note that D+ must also be connected
* to interrupt pin INT0! [You can also use other interrupts, see section
* "Optional MCU Description" below, or you can connect D- to the interrupt, as
* it is required if you use the USB_COUNT_SOF feature. If you use D- for the
* interrupt, the USB interrupt will also be triggered at Start-Of-Frame
* markers every millisecond.]
*/
/* ———————– Optional Hardware Config ———————— */
#define USB_CFG_PULLUP_IOPORTNAME D
/* If you connect the 1.5k pullup resistor from D- to a port pin instead of
* V+, you can connect and disconnect the device from firmware by calling
* the macros usbDeviceConnect() and usbDeviceDisconnect() (see usbdrv.h).
* This constant defines the port on which the pullup resistor is connected.
*/
#define USB_CFG_PULLUP_BIT 2
/* This constant defines the bit number in USB_CFG_PULLUP_IOPORT (defined
* above) where the 1.5k pullup resistor is connected. See description
* above for details.
*/
/* ———————– Optional MCU Description ———————— */
/* The following configurations have working defaults in usbdrv.h. You
* usually don’t need to set them explicitly. Only if you want to run
* the driver on a device which is not yet supported or with a compiler
* which is not fully supported (such as IAR C) or if you use a differnt
* interrupt than INT0, you may have to define some of these.
*/
/* #define USB_INTR_CFG MCUCR */
/* #define USB_INTR_CFG_SET ((1 |
|