Citation: 1B_378/2019 E. B

Agissant par la voie du recours en matière de droit pénal, A.________ demande principalement au Tribunal fédéral d'admettre sa demande de libération et de le libérer immédiatement. Il conclut subsidiairement à sa libération moyennant des mesures de substitution (dépôt des documents d'identité et interdiction de s'approcher à moins de 100 m du domicile ou du lieu de résidence de B.________ et d'avoir des contacts avec celle-ci). Encore plus subsidiairement, il sollicite l'annulation de l'ordonnance du 12 juillet 2019 et le renvoi du dossier à l'autorité inférieure pour nouvelle décision dans le sens des considérants. Il requiert aussi l'assistance judiciaire. Le Ministère public du canton du Valais et le Tribunal cantonal renoncent à se déterminer et se réfèrent à l'arrêt attaqué. Le recourant a répliqué par courrier du 13 août 2019.