Page 1 of 1

Fundamental issues with AVR-Doper, but usb & wiring ok

Posted: Sun Sep 02, 2007 7:11 pm
by duni
I've just build AVR-Doper, the original one from the obdev.at website. I flashed the mega8-16 with a simple parallel programmer including the both fuse bytes.
Now AVR-Doper connects in both modes and is being recognized:

usb 2-1: new low speed USB device using ohci_hcd and address 2
usb 2-1: configuration #1 chosen from 1 choice
drivers/hid/usbhid/hid-core.c: ctrl urb status -75 received
hiddev96: USB HID v1.01 Device [obdev.at AVR-Doper] on usb-0000:02:00.0-1
--> in HID-mode

usb 2-1: new low speed USB device using ohci_hcd and address 3
usb 2-1: configuration #1 chosen from 1 choice
usbcore: registered new interface driver cdc_acm
drivers/usb/class/cdc-acm.c: v0.25:USB Abstract Control Model driver for USB modems and ISDN adapters
--> in COM-mode

But when I execute avrdude -c stk500v2 -P avrdoper -p t45 -U flash:w:firmware.hex:i , I get:
Warning: cannot query manufacturer for device: error sending control message: Operation not permitted
avrdude: avrdoper_open(): I/O Error.

--> in HID mode and
avrdude -c stk500v2 -P /dev/ttyACM0 -p t45 -U flash:w:firmware.hex:i
avrdude: stk500v2_command(): command failed
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override
this check.

--> in COM mode
(The last message I get in both modes under windows).

About the voltages:
The HVSP voltage is 12.47V. Very very strange is, that the MOSI,SCK,MISO,RST lines are 0V. I want to program my target - tiny45 - in the HVSP socket, but although the 12.47 voltage is ok all voltages in the both sockets stay at 0V.
In the first test I've overseen that 3 traces under the 20 pin HVSP are connected, because they were not entirely etched. Those were pin1&2 from the connector - the ground, the hvsp reset and atmega's pin17, witch trace passes by. So I got 0V on the D3 diode. Now everything is fine, but my concerns are, whether the avr's pin is fine, but the 13V were "grounded"...

Could this be the problem for the programmers entire behavior?
What else could cause such problems and where should I start to look for them?

Posted: Sun Sep 02, 2007 9:23 pm
by duni
Well, the kind avrdude: stk500v2_command(): command failed message is now replaced by
avrdude: ser_send(): write error: Invalid argument.
This was the error I got at the beginning, too.
I'm just trying to find something, but I have no clue how the proper signals/voltages have to be.
Any tips for critical points I have to check?

Posted: Mon Sep 03, 2007 12:07 pm
by duni
So I'm still searching and trying and I got so far:
the atmega8 is ok, I can read it's flash and fuses with a parallel port programmer - this means that the pin 17- the data output is alright, otherwise I couldn't be able to read it.
I measured and noted all the significant voltages on my board:
Image
I can't understand the behavior of T1 and T3 - shouldn't there be something on the emitter instead of 0V? I have BC548B and BC558B in TO92 package by the way. Am I connecting them right?
Is there something strange/unusual with the other values?

Thank You in advance!

PS: By the way what is the purpose of pin 3 of the ISP connector - it has to be GND or NC on other boards?

EDIT: Now I have something:
on my laptops usb ports the COM-mode isn't functioning. But on my desktop it is, and when the tiny45 is connected to the ISP, not the HVSP, it's working! The device is recognized and readable. I haven't tried to flash it so far.
And in Windows the HID mode is working, too. Now I can't figure out why avrdude is making problems in Linux!?! I've compiled the newest 5.4 and still no connection:
Warning: cannot query manufacturer for device: error sending control message: Operation not permitted
avrdude: avrdoper_open(): I/O Error.

That's not the standard avrdoper_open(): Device not found error...
Obviously the hardware, accept maybe the HVSP part, is OK.

EDIT2: Well, I can't be that stupid... I have to have root prevs to open the device... And it works... I have to configure it for normal users too.
But the HVSP issue remains - are the voltages/transistor right?

NEXT EDIT(btw. I don't want to bump my topic, so I'll just edit my last message)
I've checked all connections again. All transistors passed the hFE test, they are all OK.
When the avrdude check for t45 fails the SCK pin on the HVSP socket gets active for <1s - so it really wants to read something.
I still don't understand why the transistors T1 and T3 don't supply the voltages needed - that's the problem as far as I see - I just don't get the 12V on the reset pin and the 5V Vcc. With them everything will be alright, I suppose. What could be wrong?

NEXT EDIT
Slowly I'm figuring the things out by myself - I now understand that I have to use
avrdude -c stk500hvsp instead of -c stk500v2.
A note in the Doper's Readme file will be very useful for newbies. And maybe a note with the ISP connector's pinout, since it differs from the stk500's original one.

The new problem with HVSP I have to solve is the following:

avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.04s

avrdude: Device signature = 0xffffff
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.

The signature is not always "0xffffff", but it consists of many "f's", though.

Posted: Tue Sep 04, 2007 8:53 pm
by duni
Note that if no device is connected the signature reads 0x000000, instead of giving rc-1 error as in ISP mode.
Here is the whole avrdude -vvvv output:

sudo avrdude -c stk500hvsp -P avrdoper -p t45 -vvvv

avrdude: Version 5.3.1, compiled on Mar 2 2007 at 11:28:00
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/

System wide configuration file is "/etc/avrdude/avrdude.conf"
User configuration file is "/home/duni/.avrduderc"
User configuration file does not exist or is not a regular file, skipping

Using Port : avrdoper
Using Programmer : stk500hvsp
Warning: could not set configuration: could not set config 1: Device or resource busy
Received 29 bytes data chunk of total 0
Send: 7 bytes: 1b 01 00 01 0e 01 14 "......."
Sending 7 bytes data chunk
Received 29 bytes data chunk of total 17
Receive: 1 bytes: 1b "."
Receive: 1 bytes: 01 "."
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 0b "."
Receive: 1 bytes: 0e "."
Receive: 1 bytes: 01 "."
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 08 "."
Receive: 1 bytes: 53 "S"
Receive: 1 bytes: 54 "T"
Receive: 1 bytes: 4b "K"
Receive: 1 bytes: 35 "5"
Receive: 1 bytes: 30 "0"
Receive: 1 bytes: 30 "0"
Receive: 1 bytes: 5f "_"
Receive: 1 bytes: 32 "2"
Receive: 1 bytes: 02 "."
avrdude: stk500v2_getsync(): found STK500 programmer
Received 29 bytes data chunk of total 0
AVR Part : ATtiny45
Chip Erase delay : 4500 us
PAGEL : P00
BS2 : P00
RESET disposition : possible i/o
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 200
StabDelay : 100
CmdexeDelay : 25
SyncLoops : 32
ByteDelay : 0
PollIndex : 3
PollValue : 0x53
Memory Detail :

Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
eeprom 65 6 4 0 no 256 4 0 4000 4500 0xff 0xff
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
flash 65 6 32 0 yes 4096 64 64 4500 4500 0xff 0xff
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
lock 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
lfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
hfuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
efuse 0 0 0 0 no 1 0 0 9000 9000 0x00 0x00
Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
calibration 0 0 0 0 no 2 0 0 0 0 0x00 0x00

Programmer Type : STK500HVSP
Description : Atmel STK500 V2 in high-voltage serial programming mode
Programmer Model: STK500
Send: 8 bytes: 1b 02 00 02 0e 03 90 86 "........"
Sending 8 bytes data chunk
Received 29 bytes data chunk of total 9
Receive: 1 bytes: 1b "."
Receive: 1 bytes: 02 "."
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 03 "."
Receive: 1 bytes: 0e "."
Receive: 1 bytes: 03 "."
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 01 "."
Receive: 1 bytes: 16 "."
Send: 8 bytes: 1b 03 00 02 0e 03 91 86 "........"
Sending 8 bytes data chunk
Received 29 bytes data chunk of total 9
Receive: 1 bytes: 1b "."
Receive: 1 bytes: 03 "."
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 03 "."
Receive: 1 bytes: 0e "."
Receive: 1 bytes: 03 "."
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 02 "."
Receive: 1 bytes: 14 "."
Send: 8 bytes: 1b 04 00 02 0e 03 92 82 "........"
Sending 8 bytes data chunk
Received 29 bytes data chunk of total 9
Receive: 1 bytes: 1b "."
Receive: 1 bytes: 04 "."
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 03 "."
Receive: 1 bytes: 0e "."
Receive: 1 bytes: 03 "."
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 04 "."
Receive: 1 bytes: 15 "."
Hardware Version: 1
Firmware Version: 2.04
Send: 8 bytes: 1b 05 00 02 0e 03 9a 8b "........"
Sending 8 bytes data chunk
Received 29 bytes data chunk of total 9
Receive: 1 bytes: 1b "."
Receive: 1 bytes: 05 "."
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 03 "."
Receive: 1 bytes: 0e "."
Receive: 1 bytes: 03 "."
Receive: 1 bytes: 00 "."
Receive: 1 bytes: aa "."
Receive: 1 bytes: ba "."
Topcard : STK501
Send: 8 bytes: 1b 06 00 02 0e 03 94 86 "........"
Sending 8 bytes data chunk
Received 29 bytes data chunk of total 9
Receive: 1 bytes: 1b "."
Receive: 1 bytes: 06 "."
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 03 "."
Receive: 1 bytes: 0e "."
Receive: 1 bytes: 03 "."
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 30 "0"
Receive: 1 bytes: 23 "#"
Vtarget : 4.8 V
Send: 8 bytes: 1b 07 00 02 0e 03 98 8b "........"
Sending 8 bytes data chunk
Received 29 bytes data chunk of total 9
Receive: 1 bytes: 1b "."
Receive: 1 bytes: 07 "."
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 03 "."
Receive: 1 bytes: 0e "."
Receive: 1 bytes: 03 "."
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 02 "."
Receive: 1 bytes: 10 "."
Send: 8 bytes: 1b 08 00 02 0e 03 95 89 "........"
Sending 8 bytes data chunk
Received 29 bytes data chunk of total 9
Receive: 1 bytes: 1b "."
Receive: 1 bytes: 08 "."
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 03 "."
Receive: 1 bytes: 0e "."
Receive: 1 bytes: 03 "."
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 1d "."
Send: 8 bytes: 1b 09 00 02 0e 03 96 8b "........"
Sending 8 bytes data chunk
Received 29 bytes data chunk of total 9
Receive: 1 bytes: 1b "."
Receive: 1 bytes: 09 "."
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 03 "."
Receive: 1 bytes: 0e "."
Receive: 1 bytes: 03 "."
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 01 "."
Receive: 1 bytes: 1d "."
Send: 8 bytes: 1b 0a 00 02 0e 03 97 89 "........"
Sending 8 bytes data chunk
Received 29 bytes data chunk of total 9
Receive: 1 bytes: 1b "."
Receive: 1 bytes: 0a "."
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 03 "."
Receive: 1 bytes: 0e "."
Receive: 1 bytes: 03 "."
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 02 "."
Receive: 1 bytes: 1d "."
Varef : 0.0 V
Oscillator : 1.229 MHz
SCK period : 2.2 us

Send: 39 bytes:
1b 0b 00 21 0e 2d 4c 0c 1c 2c 3c 64 74 66 68 78 "...!.-L..,<dtfhx"
68 68 7a 6a 68 78 78 7d 6d 0c 80 40 20 10 11 08 "hhzjhxx}m..@ ..."
04 02 03 08 04 00 bc "......."
Sending 39 bytes data chunk
Received 29 bytes data chunk of total 8
Receive: 1 bytes: 1b "."
Receive: 1 bytes: 0b "."
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 02 "."
Receive: 1 bytes: 0e "."
Receive: 1 bytes: 2d "-"
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 31 "1"
Send: 15 bytes:
1b 0c 00 09 0e 30 64 00 06 01 01 19 00 32 69 ".....0d......2i"
Sending 15 bytes data chunk
Received 29 bytes data chunk of total 8
Receive: 1 bytes: 1b "."
Receive: 1 bytes: 0c "."
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 02 "."
Receive: 1 bytes: 0e "."
Receive: 1 bytes: 30 "0"
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 2b "+"
avrdude: AVR device initialized and ready to accept instructions

Reading | | 0% 0.00s
avrdude: stk500hv_read_byte(.., signature, 0x0, ...)
avrdude: stk500hv_read_byte(): Sending read memory command: Send: 8 bytes: 1b 0d 00 02 0e 3b 00 21 ".....;.!"
Sending 8 bytes data chunk
Received 29 bytes data chunk of total 9
Receive: 1 bytes: 1b "."
Receive: 1 bytes: 0d "."
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 03 "."
Receive: 1 bytes: 0e "."
Receive: 1 bytes: 3b ";"
Receive: 1 bytes: 00 "."
Receive: 1 bytes: ff "."
Receive: 1 bytes: df "."
avrdude: stk500hv_read_byte(.., signature, 0x1, ...)
avrdude: stk500hv_read_byte(): Sending read memory command: Send: 8 bytes: 1b 0e 00 02 0e 3b 01 23 ".....;.#"
Sending 8 bytes data chunk
Received 29 bytes data chunk of total 9
Receive: 1 bytes: 1b "."
Receive: 1 bytes: 0e "."
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 03 "."
Receive: 1 bytes: 0e "."
Receive: 1 bytes: 3b ";"
Receive: 1 bytes: 00 "."
Receive: 1 bytes: ff "."
Receive: 1 bytes: dc "."
Reading | ################# | 33% 0.03s
avrdude: stk500hv_read_byte(.., signature, 0x2, ...)
avrdude: stk500hv_read_byte(): Sending read memory command: Send: 8 bytes: 1b 0f 00 02 0e 3b 02 21 ".....;.!"
Sending 8 bytes data chunk
Received 29 bytes data chunk of total 9
Receive: 1 bytes: 1b "."
Receive: 1 bytes: 0f "."
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 03 "."
Receive: 1 bytes: 0e "."
Receive: 1 bytes: 3b ";"
Receive: 1 bytes: 00 "."
Receive: 1 bytes: ff "."
Receive: 1 bytes: dd "."
Reading | ################################################## | 100% 0.04s

avrdude: Device signature = 0xffffff
avrdude: Yikes! Invalid device signature.
Double check connections and try again, or use -F to override
this check.

Send: 9 bytes:
1b 10 00 03 0e 31 0f 0f 37 ".....1..7"
Sending 9 bytes data chunk
Received 29 bytes data chunk of total 8
Receive: 1 bytes: 1b "."
Receive: 1 bytes: 10 "."
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 02 "."
Receive: 1 bytes: 0e "."
Receive: 1 bytes: 31 "1"
Receive: 1 bytes: 00 "."
Receive: 1 bytes: 36 "6"

avrdude done. Thank you.