-
Notifications
You must be signed in to change notification settings - Fork 193
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
servant: add iCESugar board support #37
Conversation
Thanks. This looks good, but did you solve the strange baud rate issue? |
Hm... I remember now that @imuguruza had a similar issue and got it fixed with this commit dd65d60 Looking at the fix now, I really can't understand how this works. It looks like the baud rate is increased from 43200 to 115200 by doubling the PLL output frequency from 16 to 32 MHz. It makes no sense to me. Perhaps you could just try to do the same thing and set out_freq to 32 and see if it's suddenly runs with baud rate 115200. Maybe it's some PLL issue I have missed |
This is exactly what I have observed! When the CPU runs at 16MHz, the baud rate is ~43200. As soon as I set the CPU clock to 32MHz, the baud rate magically becomes 115200. Doesn't make sense to me too... I'm going to use the logic analyzerr to find out the "real" CPU clock later! |
Please do. It would be very interesting to see the real clock frequency. I will search also to see if this is a known issue. In the meantime, I'm happy to accept the PR if you change frequency to 32 |
I think I found the problem now. Running
So, this means that it couldn't find parameters to create a 16MHz and had to choose a 15.938 MHz clock instead. Looking at the data sheets, the lowest allowed frequency is 16MHz so this is outside of spec and probably not supported. icepll and/or the FuseSoC icepll generator should fail here instead of producing non-working PLL settings |
You could also try to set freq_out to 17, which will produce a 16.875MHz clock which is hopefully close enough |
It turns out that the maximum sampling frequency of my logic analyzer is 24MHz, so I divided the clock by 16 with
With
Since there is a When changing to
The repetition is roughly two
The contributed |
Fantastic! Thanks for your contribution and for the detailed debugging. Picked and pushed |
Glad you have found the problem! I can confirms that Maybe we should also use |
Cool. Thanks for confirming. I don't have an icebreaker myself, but as you say, 17 is probably a safer choice. But I also sent a fix to icepll that I hope will take care of this the right way YosysHQ/icestorm#270 |
No description provided.