Estou com uma dúvida no MODULO I2c

Software e Hardware para uC STM

Moderadores: andre_luis, 51

Estou com uma dúvida no MODULO I2c

Mensagempor Guri » 04 Mai 2019 18:52

Meus colegas, estou com um problema e peço ajuda.

Eu liguei o módulo i2c do STM32F0, configurei o módulo i2c standart, tudo certinho...funciona legal.

Só que estou utilizando em uma rotina, alguns timers em interrupção....ai é que esta minha dúvida.

O módulo i2c do ARM, utiliza algum timer? Se usa, qual é esse timer?

Eu estou usando o mikroc pro arm.

Obrigado pela dica
DEUS SEJA LOUVADO
GURI (VonNilmam)
Guri
Byte
 
Mensagens: 457
Registrado em: 25 Abr 2010 09:05
Localização: Minas Gerais

Re: Estou com uma dúvida no MODULO I2c

Mensagempor Guri » 04 Mai 2019 18:55

...então, quando eu ligo esses timers no caso é o timer 0 e 1 (na interrupção)...o módulo i2c trava...fica doido...

Por isso minha dúvida se o módulo utiliza algum timer,
Estou usando B8 e 9 do arm modulo 1.
DEUS SEJA LOUVADO
GURI (VonNilmam)
Guri
Byte
 
Mensagens: 457
Registrado em: 25 Abr 2010 09:05
Localização: Minas Gerais

Re: Estou com uma dúvida no MODULO I2c

Mensagempor Guri » 08 Mai 2019 00:08

Então, como ninguém respondeu...mas mesmo assim eu agradeço.

Eu não sei porque cargas dágua, se liga qualquer interrupção junto com o módulo i2c 1 ou 2, (o módulo não esta na interrupção)...o processador indoida. Ou seja, a rotina que roda na interrupção fica instável, é como se desse uma interferência quando se liga o módulo...coisa de doido. Essa doideira só ocorre quando eu ligo o módulo....Testei no 103, no 051 e até no 407...Como eu tô ficando véio, devo estar comendo bola em alguma coisa, só ainda não consegui achar o erro e acabei contornando assim :arrow:

Bom eu acabei resolvendo, utilizando via soft i2c...

Segue abaixo como fazer a rotina, detalhe, serve para qualquer tamanho de eeprom até 16bits de endereço:

cpp code
/******************************************************
ROTINA VIA SOFTWARE I2C / DISABLE INTERRUPT ANTES:
*******************************************************/
void WriteMem(){ unsigned int ee_adr; unsigned char ee_data;
Soft_I2C_Start(); // Issue I2C start signal
Soft_I2C_Write(0xA2); // Send I2c Write Slave Address (of the 24c02)
ee_adr = wAddr;
Soft_I2C_Write(ee_adr); // Send EEPROM Word Address (here EEPROM place "2" will be written to)
ee_data = wData;
Soft_I2C_Write(ee_data); // Send data(data that will be written)
Soft_I2C_Stop(); // Issue I2C stop signal
Delay_ms(5); // wait for the maximum write time
}
void ReadMem(){ unsigned int ee_adr; unsigned char ee_data;
Soft_I2C_Start(); // Issue I2C start signal
Soft_I2C_Write(0xA2); // Send I2c Write Slave Address (of the 24c02)
ee_adr = wAddr;
Soft_I2C_Write(ee_adr); // Send EEPROM Word Address
Soft_I2C_Start(); // Issue I2Csignal repeated start
Soft_I2C_Write(0xA3); // Send I2c Read Slave Address (request data from EEPROM)
wData = Soft_I2C_Read(0); // Read the data, no ackcnowledge (last byte read)
Soft_I2C_Stop(); // Issue I2C_stop signal
}
DEUS SEJA LOUVADO
GURI (VonNilmam)
Guri
Byte
 
Mensagens: 457
Registrado em: 25 Abr 2010 09:05
Localização: Minas Gerais

Re: Estou com uma dúvida no MODULO I2c

Mensagempor vtrx » 08 Mai 2019 08:51

Não uso o MikroC,só Keil e tenho projetos testes usando o STM32F103,e uso o I2C para ler uma 24C02(que ja veio na placa teste) e interrupções ao mesmo tempo sem problemas,inclusive com USB HID ao mesmo tempo,mas uso I2C por Hardware e uso uma rotina(i2c) Bug fix que pegue na internet.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: Estou com uma dúvida no MODULO I2c

Mensagempor Guri » 08 Mai 2019 18:31

Eu devo estar errando em alguma coisa, só que ainda não entendi, onde esta o erro...Mas com certeza é erro meu.

Quando eu tiver tempo, vou fazer uns testes mais apurados.

Obrigado,
DEUS SEJA LOUVADO
GURI (VonNilmam)
Guri
Byte
 
Mensagens: 457
Registrado em: 25 Abr 2010 09:05
Localização: Minas Gerais


Voltar para STMicroelectronics

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x