READ / WRITE E2PRPOM

Software e Hardware para uC STM

Moderadores: andre_luis, 51

READ / WRITE E2PRPOM

Mensagempor Guri » 15 Mar 2019 15:37

Olá a todos do forum.

Meus amigos, tenho uma dúvida que quero saber de vocês como devo proceder.

Eu estou utilizando um ARM 103 para LÊR e Escrever dados nela via i2c...

A minha questão é a seguinte, alguém aqui sabe me dizer se eu consigo jogar de forma simples os dados no DMA para fazer isso, e ainda mais, eu consigo fazer isso de forma "escalar" ou seja, consigo mandar 64 bytes de uma única vêz?
DEUS SEJA LOUVADO
GURI (VonNilmam)
Guri
Byte
 
Mensagens: 457
Registrado em: 25 Abr 2010 09:05
Localização: Minas Gerais

Re: READ / WRITE E2PRPOM

Mensagempor vtrx » 15 Mar 2019 17:25

O 103 tem um bug no I2C...
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: READ / WRITE E2PRPOM

Mensagempor cfreund » 15 Mar 2019 18:16

STM32F103? Sim, é possível.
Cláudio F
Avatar do usuário
cfreund
Word
 
Mensagens: 672
Registrado em: 14 Out 2006 14:02
Localização: São Paulo

Re: READ / WRITE E2PRPOM

Mensagempor Guri » 15 Mar 2019 23:32

Avi....ai eu choro :cry:

Qual é esse bug...Rapaiz, num diga.

Fiquei curioso, compartilha conosco, essa descoberta.

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

Re: READ / WRITE E2PRPOM

Mensagempor vtrx » 16 Mar 2019 07:23

https://electronics.stackexchange.com/questions/272427/stm32-busy-flag-is-set-after-i2c-initialization

https://github.com/ARMmbed/mbed-os/issues/4214

Eu achei um código funcional que contorna o problema,uso no compilador KEIL.
O problema é na leitura sequencial de endereços,onde o STM trava depois da primeira leitura,feita por Hardware.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: READ / WRITE E2PRPOM

Mensagempor cfreund » 16 Mar 2019 08:17

vtrx escreveu:https://electronics.stackexchange.com/questions/272427/stm32-busy-flag-is-set-after-i2c-initialization

https://github.com/ARMmbed/mbed-os/issues/4214

Eu achei um código funcional que contorna o problema,uso no compilador KEIL.
O problema é na leitura sequencial de endereços,onde o STM trava depois da primeira leitura,feita por Hardware.


Li por cima e me parece ser problema com as bibliotecas.

Se o problema for no hardware e acontecer apenas na primeira leitura, ainda assim é possível utilizar DMA.
Cláudio F
Avatar do usuário
cfreund
Word
 
Mensagens: 672
Registrado em: 14 Out 2006 14:02
Localização: São Paulo

Re: READ / WRITE E2PRPOM

Mensagempor cfreund » 16 Mar 2019 08:17

Guri escreveu:Avi....ai eu choro :cry:

Qual é esse bug...Rapaiz, num diga.

Fiquei curioso, compartilha conosco, essa descoberta.

Obrigado



Normal qualquer microcontrolador acompanhar um Errata Sheet.

Para o caso: página 21: https://www.st.com/content/ccc/resource ... 190234.pdf
Cláudio F
Avatar do usuário
cfreund
Word
 
Mensagens: 672
Registrado em: 14 Out 2006 14:02
Localização: São Paulo

Re: READ / WRITE E2PRPOM

Mensagempor vtrx » 16 Mar 2019 09:57

cfreund escreveu:
vtrx escreveu:https://electronics.stackexchange.com/questions/272427/stm32-busy-flag-is-set-after-i2c-initialization

https://github.com/ARMmbed/mbed-os/issues/4214

Eu achei um código funcional que contorna o problema,uso no compilador KEIL.
O problema é na leitura sequencial de endereços,onde o STM trava depois da primeira leitura,feita por Hardware.


Li por cima e me parece ser problema com as bibliotecas.

Se o problema for no hardware e acontecer apenas na primeira leitura, ainda assim é possível utilizar DMA.


Quando pesquisei o problema na época,lí em algum lugar que era problema dos capacitores internos de filtragem do I2C.
Quando voce usa rotinas por Hardware,voce consegue ler um endereço,mas se ler outro em seguida,o ACK fica travado,não permitindo a sequencia de leitura.
Pode ser por isso que a linha 103 é tão barata.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: READ / WRITE E2PRPOM

Mensagempor cfreund » 16 Mar 2019 10:02

vtrx escreveu:Quando pesquisei o problema na época,lí em algum lugar que era problema dos capacitores internos de filtragem do I2C.
Quando voce usa rotinas por Hardware,voce consegue ler um endereço,mas se ler outro em seguida,o ACK fica travado,não permitindo a sequencia de leitura.
Pode ser por isso que a linha 103 é tão barata.


Isso não tem no Errata. Mas pelos links que vc postou, parece que resolveram fazendo correções nas bibliotecas. Ainda deve ser possível usar DMA.

No errata, estão estimulando utilizar DMA.
Cláudio F
Avatar do usuário
cfreund
Word
 
Mensagens: 672
Registrado em: 14 Out 2006 14:02
Localização: São Paulo

Re: READ / WRITE E2PRPOM

Mensagempor Guri » 16 Mar 2019 15:27

Apesar de eu ser NOVATO...

Acredito que possa haver sim, erro no software!

Depois dessa! Vou tentar implementar na unha uma rotina de escrita e leitura e ver o que acontece...O melhor caminho para entender algo é fazendo do inicio!

Mas concordo em partes com o cfreund. Eu particularmente já peguei muitos erros e até achava que poderia ser o mcu com bug...mas no decorrer dos meus experimentos, pude notar que 99,999% dos erros era de software! Já possíveis erros de hardware, tinham uma janela para acerto ou correção por software, tal como a dica dele em relação ao DMA. Apesar de não ter feito ainda nenhum teste que seja...

Agora convenhamos que se fosse holtek.... :cry:


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

Re: READ / WRITE E2PRPOM

Mensagempor vtrx » 17 Mar 2019 07:51

Guri escreveu:Apesar de eu ser NOVATO...

Acredito que possa haver sim, erro no software!

Depois dessa! Vou tentar implementar na unha uma rotina de escrita e leitura e ver o que acontece...O melhor caminho para entender algo é fazendo do inicio!

Mas concordo em partes com o cfreund. Eu particularmente já peguei muitos erros e até achava que poderia ser o mcu com bug...mas no decorrer dos meus experimentos, pude notar que 99,999% dos erros era de software! Já possíveis erros de hardware, tinham uma janela para acerto ou correção por software, tal como a dica dele em relação ao DMA. Apesar de não ter feito ainda nenhum teste que seja...

Agora convenhamos que se fosse holtek.... :cry:


Obrigado pelas dicas,


Página 26 da errata;

https://www.st.com/content/ccc/resource/technical/document/errata_sheet/7d/02/75/64/17/fc/4d/fd/CD00190234.pdf/files/CD00190234.pdf/jcr:content/translations/en.CD00190234.pdf

Se voce usasse o KEIL,tenho a implementação disso.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: READ / WRITE E2PRPOM

Mensagempor cfreund » 17 Mar 2019 08:30

Guri escreveu:Apesar de eu ser NOVATO...

Acredito que possa haver sim, erro no software!

Depois dessa! Vou tentar implementar na unha uma rotina de escrita e leitura e ver o que acontece...O melhor caminho para entender algo é fazendo do inicio!


Deve ter sido corrigido nas libs do fabricante. E sim, para estudos ou dependendo da aplicação, vale a pena fazer sua própria lib. Não que utilizando STM32Cube não funcione, mas pode ser bantante otimizado. Eu, por "preciosismo", quando com um CI novo, perco dois dias de trabalho reinventando a roda, mas faço a minha lib do jeito que eu gosto de trabalhar, tento sempre procurar abstração, manter um padrão independente da plataforma.

Detalhe importante: Quando desenvolver a sua lib, SEMPRE LEIA O ERRATA.

Guri escreveu:Mas concordo em partes com o cfreund. Eu particularmente já peguei muitos erros e até achava que poderia ser o mcu com bug...mas no decorrer dos meus experimentos, pude notar que 99,999% dos erros era de software! Já possíveis erros de hardware, tinham uma janela para acerto ou correção por software, tal como a dica dele em relação ao DMA. Apesar de não ter feito ainda nenhum teste que seja...

Agora convenhamos que se fosse holtek.... :cry:


Obrigado pelas dicas,


Difícil um componente sobreviver no mercado com um defeito grave de hardware, que não possa ser contornado, ou que não seja corrigido nas próximas revisões.
Cláudio F
Avatar do usuário
cfreund
Word
 
Mensagens: 672
Registrado em: 14 Out 2006 14:02
Localização: São Paulo

Re: READ / WRITE E2PRPOM

Mensagempor Guri » 17 Mar 2019 16:29

Concordo com você Cfreund...

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

Re: READ / WRITE E2PRPOM

Mensagempor Guri » 26 Abr 2019 22:42

Olá a todos os amigos,

Como eu havia prometido, realizei os testes e não notei nenhum problema, talvez tenham corrigido o bug na i2c.

Eu usei a i2c1 e acabei usando a versão f103 com 128k.

Mas por medidas de segurança, acabei fazendo as coisas com uma implementação de buffer circular, também não usei o DMA, apenas o buffer que é chamado quando necessário, coisa bem simples...

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