Maker Pro
Maker Pro

Checking communication with PDIUSBD12 - Schematic.pdf (0/1)

M

Mark

Checking communication with PDIUSBD12

Hello,

At the moment I am writing a C program with WINAVR to interface the
ATmega with the PDIUSBD12 USB chip. I have attached the schematic of
the USB part onto this message.
I rewrote the C-source of a project with the PDIUSBD11 (from
http://www.beyondlogic.org) and changed it for the PDIUSBD12. The code
works perfect with the PDIUSBD11, but the modified code doesn't work
with the PDIUSBD12. I don't even know if the AVR communicates properly
with PDIUSBD12. I noticed in the Philips PDIUSBD12 source that you can
read out the PDIUSBD12 chip ID (command 0xFD and read 2 bytes). What
response should I get from the PDIUSBD12 or how can I check that the
communication is correct between the AVR and PDIUSBD12?
I don't use the 'A0' pin from the PDIUSBD12 (since ALE is used and the
datasheet tells me to connect 'A0' with Vcc). Is the schematic
correct?
Thanks in advance for your help.

Regards,
Mark
 
R

Risto Sainio

Mark said:
Checking communication with PDIUSBD12

Hello,

At the moment I am writing a C program with WINAVR to interface the
ATmega with the PDIUSBD12 USB chip. I have attached the schematic of
the USB part onto this message.
I rewrote the C-source of a project with the PDIUSBD11 (from
http://www.beyondlogic.org) and changed it for the PDIUSBD12. The code
works perfect with the PDIUSBD11, but the modified code doesn't work
with the PDIUSBD12. I don't even know if the AVR communicates properly
with PDIUSBD12. I noticed in the Philips PDIUSBD12 source that you can
read out the PDIUSBD12 chip ID (command 0xFD and read 2 bytes). What
response should I get from the PDIUSBD12 or how can I check that the
communication is correct between the AVR and PDIUSBD12?
I don't use the 'A0' pin from the PDIUSBD12 (since ALE is used and the
datasheet tells me to connect 'A0' with Vcc). Is the schematic
correct?
Thanks in advance for your help.

Regards,
Mark
Mark,
I checked the website, but I could not find any relevant info about
PDIUSBD12. How do you initialize the chip. I normally initialize it this
way:
USB_CTRL = 0xf3; // set mode command
USB_DATA = 0x16; // Endpoint Configuration = 00 (Non-ISO)
// SoftConnect = 1 (ie attach to USB now)
// Interrupt Mode = 0 (only on good packets)
// Clock running = 1
// No LazyClock = 1
USB_DATA = 0x43; // 12 MHz clock


Then if you would read the interrupt register you could see something like
bus-reset interrupt.

Did you check the timing of the bus - this chip is rather slow and you
might need some wait states to get it going.

regards

Risto
 
Top