Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Comments on AD5941 GPIO2 cannot act as general-purpose output — any workaround without a board respin?

Parent

AD5941 GPIO2 cannot act as general-purpose output — any workaround without a board respin?

+1
−2

I'm using the AD5941 (CPZ-RL7) and driving 3 external mux address lines from its GPIO0, GPIO1, and GPIO2 pins. This IC has only 3 GPIO's. Firmware engineer reported that GPIO2 cannot act as general-purpose output. I also did not check the datasheet in detail while doing the schematic. Now board fabrication and assembly is going on.

Below is the table from the datsheet of AD5941.

Image_alt_text

So GPIO2 can't be toggled as a normal output bit the way GPIO0/GPIO1 can. My board is already built with GPIO2 wired to the MSB of a 3-bit mux address, and I need all 8 address combinations.

Image_alt_text

Has anyone found a way to get GPIO2 to behave as a software-controlled static/toggleable level?

Appreciate any war stories or patterns from anyone who's hit something like this before.

History

1 comment thread

War stories... (1 comment)
Post
+1
−1
I also did not check the datasheet in detail while doing the schematic. Now board fabrication and assembly is going on.

Yeah, that was a dumb and lazy thing to do. Hopefully you've learned a lesson.

At least this mistake was caught early in the process. Read the datasheet and work with the software engineer to see which pins they can use, then rework the boards to move the third address line to another pin. Fix it for real in the next revision.

This IC has only 3 GPIOs.

The table you copied into the question clearly shows 8 GPIOs, but I don't see any GPIO pins coming out of the part in your schematic. It is unclear what is really going on.

Some possible fixes:

  • Use a different part with more GPIO.
  • Use a separate microcontroller.
  • Use an IIC digital output expander. Those only require two lines to control.
History

2 comment threads

Hii.. Olin, My firmware engineer told me that he is able to toggle GIPIO via a sync register. (1 comment)
AD5941 has 3 GPIO's. AD5940 has 8 GPIO's. The datasheet is same for both the IC's. For my board I use... (1 comment)
AD5941 has 3 GPIO's. AD5940 has 8 GPIO's. The datasheet is same for both the IC's. For my board I use...
newbie‭ wrote 3 months ago

AD5941 has 3 GPIO's. AD5940 has 8 GPIO's. The datasheet is same for both the IC's. For my board I used AD5941 with 3 GPIO's.