今天遇到一个非常奇怪的问题,CH549的新板子使用测试过的代码怎么也连接不上外设了。经检查,外设不会向CH549回报ACK。但是相同的外设在电脑或者max3421e的板子上都是可以的回报ACK的。外设是一台噪声计,拆开检查是atmega168主控,应该是软件模拟USB。
之后我发现是USB信号的速率有误差,第一片CH549时钟速率为标准值的98.6%,外设完全不会返回ACK。第二片CH549时钟速率为标准值的99.4%,外设在第六次左右请求会返回ACK。第三片CH549时钟速率为标准值的99.7%,外设在第一次左右请求就会返回ACK。
现在问题是板子使用的的封装是SOP16,无法外接晶振。请问在不更换芯片封装的情况下,是否可以通过再次校正的方式,提升时钟精度。虽然手册上好像没写,但还是希望有办法调整校准字之类的方法。