Commit Graph
1251 Commits
Author SHA1 Message Date
László Monda 8c067b9190 Use UhkModuleDriverId_* enum values instead of magic numbers wherever possible. 2017-10-05 20:36:29 +02:00
László Monda bea13f063a UpperCamelCase UhkModuleStates now that it's a global. 2017-10-05 20:27:57 +02:00
László Monda 9842a6ff60 Merge UhkModuleVars into uhkModuleStates. Also make uhkModuleStates globally accessible because it must be accessed by other parts of the firmware, so it's unpractical to keep it private and write accessor functions for it. 2017-10-05 20:18:57 +02:00
László Monda f8e83b139d Rerequest transfer if CRC is invalid. 2017-10-05 20:02:12 +02:00
László Monda 6be45c4521 Add uhk_module_state_t->isEnumerated and maintain its state. 2017-10-05 19:56:26 +02:00
László Monda a9ba8a1907 Remove redundant module members. 2017-10-05 19:51:15 +02:00
László Monda 12c055aec7 Extract MODULE_ID. 2017-10-05 18:00:17 +02:00
László Monda 96eb2ef7a3 Make slaves send their protocol version to the master. 2017-10-05 17:55:59 +02:00
László Monda bd76fb44c2 Make slaves send their module id to the master. 2017-10-05 17:26:10 +02:00
László Monda 21beb59cb6 Add merge sensor state to getKeyboardState() 2017-10-05 14:21:37 +02:00
László Monda 3ed3272fa3 Write the validated user config area to the EEPROM, not the staging area. 2017-10-05 09:12:50 +02:00
László Monda 377fe4a2b2 Make EEPROM transfers receive an operation and a buffer id parameter. This allows reading and writing both staging and validated user configurations which will aid future debugging. This API is also cleaner. 2017-10-05 02:45:22 +02:00
László Monda 259f4d3299 Add config_buffer_id_t. 2017-10-04 23:57:43 +02:00
László Monda 8e420f8592 Rename and rearrange some variables in config_globals.c for better readability. 2017-10-04 22:39:40 +02:00
László Monda 63674e02b7 Now rename the other guard macro, too. I thought it was renamed by the IDE. 2017-10-04 22:36:27 +02:00
László Monda e27fb83693 Rename guard macro according to the filename. 2017-10-04 22:35:17 +02:00
László Monda b0e706d894 Remove redundant extern modifier before function. 2017-10-04 22:33:58 +02:00
László Monda 4295793fb9 Add ATTR_* macros in the newly created attributes.h and use them wherever possible for improved readability. 2017-10-04 22:26:48 +02:00
László Monda f348aec97a Rename UserConfigBuffer to ValidatedUserConfigBuffer. 2017-10-04 22:10:55 +02:00
László Monda 9ecdfc0b71 Improve the readability of ApplyConfig() 2017-10-04 22:06:45 +02:00
László Monda 1bca95d366 Don't stop execution upon starting a debugging session. 2017-10-04 19:31:28 +02:00
László Monda a84d184da4 Include stdio.h 2017-10-04 18:34:10 +02:00
László Monda c965fe185b Enable semihosting for the "uhk-left debug jlink" build. 2017-10-04 18:21:02 +02:00
László Monda af52c017d8 No need to assign a value to I2C_WATCHDOG. Just define it. 2017-10-04 13:02:40 +02:00
László Monda 316602bb02 Rename the obsoleted LED_DRIVER_FORCE_UPDATE macro to LED_DRIVER_STRESS_TEST. 2017-10-04 12:59:05 +02:00
László Monda 6658d62805 Group module phases. 2017-10-04 02:52:53 +02:00
László Monda c707f0e408 Transfer a synchronization message to make I2C recovery more robust. 2017-10-04 02:24:34 +02:00
László Monda efb0f982d2 Only try to recover I2C if SDA is low. 2017-10-04 01:22:22 +02:00
László Monda 2027940b4c Use the correct I2C_MAIN_BUS_{SDA,SCL}{PORT,PIN} macros at the right spots. 2017-10-04 01:04:56 +02:00
László Monda e5595bc757 Extract I2C recovery code to recoverI2c() 2017-10-03 23:59:27 +02:00
László Monda 72812724ef Now do send a STOP condition at the end of the I2C recovery which might make it more robust. 2017-10-03 23:37:16 +02:00
László Monda 1daf43b751 Set SDA as GPIO upon trying to recovering I2C, not just SDL. 2017-10-03 23:23:26 +02:00
László Monda 2804d3e447 Don't cycle SDA just before initialzing I2C. Merely pull it high to generate a STOP condition. 2017-10-03 22:05:42 +02:00
László Monda ff1d5dffaa Cycle through the I2C clock by using 20 cycles instead of 16. Should be a bit more reliable, although I can't see a definite improvement. 2017-10-03 21:56:08 +02:00
László Monda 5de396bb68 Don't mess around with SDA and SCL before cycling through the clock because it seems redundant. 2017-10-03 21:37:35 +02:00
László Monda 7af8042c93 Fine tune delay to match the I2C peripheral driven at 100kHz. 2017-10-03 21:06:04 +02:00
László Monda 51a9acbb68 Extract delay() from InitI2cMainBus() 2017-10-03 20:54:05 +02:00
László Monda f1a8d9a330 Toggle SCL from a loop. 2017-10-03 20:49:54 +02:00
László Monda b5f1bcc4d6 Split InitI2c() as InitI2cMainBus() and initI2cEepromBus() and invoke InitI2cMainBus() from PIT_I2C_WATCHDOG_HANDLER() 2017-10-03 20:43:26 +02:00
László Monda 7061345ec2 Fix hard faults by moving slaveConfig and slaveHandle out of InitI2c(), thereby making them always available for KSDK. Fixed by @santiagogf89. 2017-10-03 19:15:33 +02:00
László Monda 90bad68287 No need to explicitly initialize slaves before starting up the scheduler as the scheduler takes care of them. 2017-10-02 00:03:51 +02:00
László Monda f921753b63 Call slaveSchedulerCallback() instead of the update callback of the first slave to trigger the slave protocol scheduler. Given that the callback is involved from the start this should result in a more reliable startup state. 2017-10-01 23:54:46 +02:00
László Monda 724d72132a Rearrange slave_command_t enum values a bit to reflect their relative importance and rearrange a related case block too. 2017-10-01 22:21:00 +02:00
László Monda 858586ef2a Fix data size by using I2C_MESSAGE_MAX_TOTAL_LENGTH instead of I2C_MESSAGE_MAX_PAYLOAD_LENGTH. 2017-10-01 22:12:00 +02:00
László Monda ecc2d2db9a Use I2C_MESSAGE_HEADER_LENGTH instead of magic number. 2017-10-01 22:08:38 +02:00
László Monda 6edf4113a4 Make the slave check message integrity and only process if it's valid. 2017-10-01 22:05:20 +02:00
László Monda 1b1111e9da Rename I2C_BUFFER_MAX_LENGTH to I2C_MESSAGE_MAX_TOTAL_LENGTH. 2017-10-01 21:55:37 +02:00
László Monda b443b56357 Rename I2C_MESSAGE_MAX_LENGTH to I2C_MESSAGE_MAX_PAYLOAD_LENGTH. 2017-10-01 21:52:41 +02:00
László Monda 4ade25d739 Add I2C_MESSAGE_HEADER_LENGTH and use it in i2cSlaveCallback() instead of magic numbers. 2017-10-01 21:42:55 +02:00
László Monda 0ba979a658 Refactor i2cSlaveCallback(). 2017-10-01 21:38:02 +02:00