TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Agustina en 09 de Septiembre de 2009, 02:45:47
-
Buenas! he aqui una duda sobre I2c
Estoy utilizando una memoria I2c en un 18f252 a 20mhz, utilizo i2c por soft, es decir, no utilizo los pines de SCL y SDA ya que no estan disponibles para este fin.
La duda es que cuando mido con un frecuencimetro en la patita de CLock, leo unos 10khz aproximadamente... porque tan bajo? no es posible operar a 100khz por lo menos?
en cuanto tiempo leeria un byte en 10khz?
esta es la configuracion que utilizo:
#use i2c(master, sda=EEPROM_SDA, scl=EEPROM_SCL, slow= 100000)
alguna sugerencia?
-
Estas trabajando en modo SLOW, este es el modo de baja velocidad. Rapido es FAST.
#use i2c(master, sda=EEPROM_SDA, scl=EEPROM_SCL, fast)
-
ya se que slow es lento.... pero la duda es porque a 10khz....
supuestamente slow es 100khz
-
Hola agustina! Podrias subir el codigo completo? Quizas esta mal la configuracion de los fuses o del clock.
saludos!
EDIT:
por lo q estuve leyendo, para q trabaje en modo fast, tenes q usar el bus por hardware. Creo q ahi esta tu problema. Y podes setear la velocidad de la siguiente forma:
#use i2c(Master, SDA=PIN_C4, SCL=PIN_C3, FORCE_HW, FAST=100000) //100khz
-
Pero por sofware no hay forma de hacer que trabaje mas rapido que 10khz?
gracias!! :g)
-
No te sabria dar una respuesta con certeza, pero por lo q lei en los foros de CCS parece q no se puede saludos!!