element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Avnet Boards Forums
  • Products
  • Dev Tools
  • Avnet Boards Community
  • Avnet Boards Forums
  • More
  • Cancel
Avnet Boards Forums
Software Application Development PS I2C ZedBoard
  • Forum
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Avnet Boards Forums to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Not Answered
  • Replies 3 replies
  • Subscribers 330 subscribers
  • Views 1472 views
  • Users 0 members are here
Related

PS I2C ZedBoard

Former Member
Former Member over 11 years ago

I am trying to get the I2C 0 Peripheral to work on the ZedBoard. I have set up I2C 0 to connect the MIO10 and MIO11 pins to the PMOD header. I then built the linux kernel using the linux-xlnx git source. When in linux any command that is used on the i2c times out.

The following are console outputs:

zynq> i2cdetect -l 0
i2c-0   i2c             XILINX I2C at e0004000            I2C adapter


zynq> i2cdetect 0
Error: Can't use SMBus Quick Write command on this bus

zynq> i2cdetect -r 0
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-0 using read byte commands.
I will probe address range 0x03-0x77.
Continue? [Y/n] y
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          xi2cps e0004000.ps7-i2c: timeout waiting on completion
-- xi2cps e0004000.ps7-i2c: timeout waiting on completion
-- xi2cps e0004000.ps7-i2c: timeout waiting on completion
-- xi2cps e0004000.ps7-i2c: timeout waiting on completion
-- xi2cps e0004000.ps7-i2c: timeout waiting on completion
-- xi2cps e0004000.ps7-i2c: timeout waiting on completion
-- xi2cps e0004000.ps7-i2c: timeout waiting on completion
-- xi2cps e0004000.ps7-i2c: timeout waiting on completion
-- xi2cps e0004000.ps7-i2c: timeout waiting on completion
-- xi2cps e0004000.ps7-i2c: timeout waiting on completion
-- xi2cps e0004000.ps7-i2c: timeout waiting on completion
-- xi2cps e0004000.ps7-i2c: timeout waiting on completion
-- xi2cps e0004000.ps7-i2c: timeout waiting on completion


...there is more but i cut it off

  • Sign in to reply
  • Cancel
Parents
  • jamestkennedy
    0 jamestkennedy over 11 years ago

    I have an I2C EEPROM fixture attached to Pmod JE accessed thru MIO (IC20 10,11, int 57, or IC21 12, 13 int 80). I can read and write from core0 using a bare metal app with the Xilinx driver code with interrupts.
    However when I set up the device tree and .config and rebuild the Linux kernel (from Speedway course V14.2), everything appears fine with the i2c-xilinx-ps driver getting attached. but using open, ioctl(slave EEPROM addr), writes (and reads) fail. With printk trace, I can see the registers programmed in the correct manner (as in Xilinx drivers), but the transfer complete interrupt never occurs and the status register remains zero.
    Has anyone encountered this problem and solved it or can anyone offer a suggestion where I may be awry.
    thanks in advance.
    My app is an AMP with Linux in core0 and bare metal in core1. I just found that, even in core1 bare metal, the Xilinx routines also fail, so it is somehow related to Linux running in core0.

    James

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Reply
  • jamestkennedy
    0 jamestkennedy over 11 years ago

    I have an I2C EEPROM fixture attached to Pmod JE accessed thru MIO (IC20 10,11, int 57, or IC21 12, 13 int 80). I can read and write from core0 using a bare metal app with the Xilinx driver code with interrupts.
    However when I set up the device tree and .config and rebuild the Linux kernel (from Speedway course V14.2), everything appears fine with the i2c-xilinx-ps driver getting attached. but using open, ioctl(slave EEPROM addr), writes (and reads) fail. With printk trace, I can see the registers programmed in the correct manner (as in Xilinx drivers), but the transfer complete interrupt never occurs and the status register remains zero.
    Has anyone encountered this problem and solved it or can anyone offer a suggestion where I may be awry.
    thanks in advance.
    My app is an AMP with Linux in core0 and bare metal in core1. I just found that, even in core1 bare metal, the Xilinx routines also fail, so it is somehow related to Linux running in core0.

    James

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Children
No Data
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube