Awesome, great find! Thanks! I assumed it was 16 bits, but now when I looked back at the document (not straight forward since the I2CXBRG register data is in another section and XC16 I2C examples are hard to find through Microchip) I found the register table and it is indeed a 9-bit register limiting me to 31KHz (0x1FF) I2C clock. I re-verified my I2C clock outputs for 0x1FF and I get about 28 KHz and retried 0x63D or 0x03D and got about 242 KHz (original Oscilloscope measurement was off, due to the way I scaled it). All checks-out.
With Fcy set to 16MHz, are you using an internal clock rate at 32MHz? I assume this not worth changing to accommodate my speed requirements. Maybe I'll look into using a serial to I2C interface. On Thursday, March 13, 2014 9:22:52 PM UTC-7, Ytai wrote: > > Aha! The BRG register is 9-bits, so your 0x63D became 0x3D => 250KHz (not > sure why you got 100KHz). So apparently you cannot go so low @ 16MHz. The > lowest setting would be 0x1FF => 31KHz. > > Not sure why BT got messed up for you. Does it work with the stock v5.00 > firmware for you? If so, something must be problematic with the build. I > don't regularly build with XC16. > As a side note, you probably want to use IOIOLib v5.03 and IOIODude v1.01 > for a happier life (many little bug fixes in addition to the new features). > > > On Thu, Mar 13, 2014 at 4:40 PM, Rich <[email protected] > <javascript:>>wrote: > >> . . . I'm quite sure I'm running the Firmware I compiled. In one build I >> verified that I can generate 1MHz signal using the Rate_1MHz setting (BRG >> values{ 0x063D, 0x25, 0x0D }). I then I updated the firmware for the 3rd >> BRG element ({ 0x063D, 0x25, 0x063D }) and received about 100KHz when >> setting Rate to Rate_1MHz again. >> >> I first compiled everything in the firmware using MPLAB X and XC16. >> Secondly, I used "tools/make-ioio-bundle firmware/app_layer_v1/dist/ >> I2C_FirmWare.ioioapp IOIO0030" to create the bundle to download. >> And finally I used "../IOIODude-0100/ioiodude --port=/dev/ttyACM0 --reset >> write I2C_FirmWare.ioioapp" to download the firmware to the IOIO board. >> This wrote to the device since there was Fingerprint mismatch. >> >> The Firmware I used was pulled from ioio-master. I modified the IOIO >> Simple APP under IOIO400 to test the changes. I added the twi commands to >> the button switch of which I could see output on the I2C lines with my >> oscilloscope and verify the clock rates. >> >> I also noticed that my bluetooth dongle no longer flashed on, so I had to >> wire directly to my cellphone. >> >> >> >> On Thursday, March 13, 2014 1:26:40 PM UTC-7, Rich wrote: >>> >>> May have replied directly with my reply and didn't post properly . . . >>> please re-post question here if you got it, else I'll put it back up. >>> Thanks. >>> >>> On Thursday, March 13, 2014 8:43:39 AM UTC-7, Ytai wrote: >>>> >>>> This seems the right place to change. Are you sure you are actually >>>> running the firmware that you've modified? How did you install it on the >>>> IOIO? >>>> >>>> >>>> On Wed, Mar 12, 2014 at 8:06 PM, Rich <[email protected]> wrote: >>>> >>>>> Hello, >>>>> >>>>> I was wondering, has anyone (users and/or the IOIO inventor) >>>>> experimented with modifying the I2C clock rates below and beyond the >>>>> currently supported rates (100KHz, 400kHz, 1MHz)? >>>>> >>>>> I have a device that can only run at 10KHz . . . I updated line 129 in >>>>> the i2c.c IOIO firmware source (static const unsigned int brg_values[] = >>>>> { >>>>> 0x063D, 0x25, 0x0D }; //first element updated from 0x9D for 10KHz), >>>>> compiled and downloaded the firmware. Using the correct enum RATE value, >>>>> I >>>>> received about 100KHz on my oscilloscope showing the incorrect clock rate >>>>> not the new 10KHz. I also built another firmware version updating all of >>>>> the brg_values to 0x063D to ensure that the changes were being passed >>>>> properly and I confirmed that when I set the TWI rate to 1MHz for >>>>> instance, >>>>> I also receive 100KHz. >>>>> >>>>> Does the internal clock runs at 32 MHz? Any possible issues with >>>>> modifying these values? I don't see anything in the PIC24 datasheet >>>>> showing >>>>> that I am limited to these three clock rates. Can anyone confirm? >>>>> >>>>> >>>>> Thanks for your help and assistance. >>>>> >>>>> Best, >>>>> Rich >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "ioio-users" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> To post to this group, send email to [email protected]. >>>>> Visit this group at http://groups.google.com/group/ioio-users. >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> -- >> You received this message because you are subscribed to the Google Groups >> "ioio-users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected]<javascript:> >> . >> Visit this group at http://groups.google.com/group/ioio-users. >> For more options, visit https://groups.google.com/d/optout. >> > > -- You received this message because you are subscribed to the Google Groups "ioio-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/ioio-users. For more options, visit https://groups.google.com/d/optout.
